turingquant¶
turingquant
é uma biblioteca para coleta, análise e backtesting de ativos e estratégias financeiras.
O projeto está em desenvolvimento ativo pelos membros de Finanças Quantitativas do Grupo Turing.
A API de onde obtemos os dados fundamentalistas é a Alpha Vantage e você pode obter a chave de uso gratuitamente. Essa chave será necessária sempre que você utilizar as funções daily e intraday.
pip install turingquant
instala a última versão estável.
Módulos¶
turingquant.metrics |
Módulo para metrificação de ativos e retornos. |
turingquant.benchmark |
Módulo para comparação e benchmarking de ativos e retornos. |
turingquant.support |
Módulo para coletar informações de ações do mercado financeiro. |
Módulo metrics¶
Módulo para metrificação de ativos e retornos.
-
turingquant.metrics.
alpha
(start_price, end_price, dps)¶ Essa função, com o fornecimento do preço final, dos dividendos por ação e do preço inicial, a calcula o alfa de um ativo.
Parâmetros: - start_price (float) – preço inicial.
- end_price (float) – preço final.
- dps (float) – dividendos por ação.
Retorno: alpha do ativo
Tipo de retorno: float
-
turingquant.metrics.
beta
(returns, benchmark)¶ Essa função, a partir do fornecimento dos retornos do ativo e do benchmark, calcula o beta do ativo.
Parâmetros: - returns (pd.series) – série com o retorno do ativo.
- benchmark (pd.series) – série com o retorno do benchmark.
Retorno: Beta do ativo
Tipo de retorno: float
-
turingquant.metrics.
cumulative_returns
(returns, return_type)¶ Essa função permite o cálculo do retorno cumulativo ao longo do tempo.
Parâmetros: - returns (pd.Series) – série de retornos da ação ao longo do tempo;
- return_type (string) – tipo de retorno (simples - “simp” ou logarítmico - “log”) presente na série.
Retorno: série com os valores de retorno cumulativo ao longo do tempo
Tipo de retorno: cumulative_returns (pd.Series)
-
turingquant.metrics.
drawdown
(return_series, plot=True)¶ Calcula e plota o drawdown percentual para uma série de retornos.
Parâmetros: - return_series (pd.Series) – série de retornos para a qual será calculado o drawdown.
- plot (bool) – se True, plota o gráfico de underwater (drawdown consoante o tempo).
Retorno: uma série com os valores percentuais do Drawdown.
Tipo de retorno: pd.Series
-
turingquant.metrics.
ewma_volatility
(close_prices, return_type, window, plot=True)¶ Essa função possibilita a visualização da volatilidade a partir do cálculo da EWMA e da plotagem do gráfico dessa métrica ao longo de um período.
Parâmetros: - close_prices (pd.DataFrame) – série de preços de fechamento que será utilizado de base para o cálculo da EWMA;
- return_type (string) – tipo de retorno (simple - “simp” ou logarítmico - “log”) que será utilizado de base para cálculo;
- window (int) – janela móvel para cálculo da EWMA;
- plot (bool) – se True, plota o gráfico de linha da EWMA ao longo do tempo
Retorno: um dataframe indexado à data com os valores de EWMA dos últimos window dias
Tipo de retorno: ewma_volatility (pd.DataFrame)
-
turingquant.metrics.
garman_klass_volatility
(high_prices, low_prices, close_prices, open_prices, window, time_scale=1, plot=True)¶ Estima a volatilidade a partir dos seguintes preços: alta, baixa, abertura e fechamento
Parâmetros: - high_prices (pd.DataFrame) – série de preços de alta de uma ação
- low_prices (pd.DataFrame) – série de preços de baixa de uma ação
- close_prices (pd.DataFrame) – série de preços de fechamento de uma ação
- open_prices (pd.DataFrame) – série de preços de abertura de uma ação
- window (int) – janela das estimativa de volatilidade
- time_scale (int) – fator de escala da volatilidade, por padrão é 1 (diária)
- plot (bool) – se “True”, plota um gráfico da volatilidade móvel
Retorno: série das estimativas de volatildade
Tipo de retorno: garman_klass_vol (pd.Series)
-
turingquant.metrics.
parkinson_volatility
(high_prices, low_prices, window, time_scale=1, plot=True)¶ Estimando a volatilidade a partir dos preços de Alta e de Baixa
Parâmetros: - high (pd.DataFrame) – série de preços de alta de uma ação
- low (pd.DataFrame) – série de preços de baixa de uma ação
- window (int) – janela das estimativa de volatilidade
- time_scale (int) – fator de escala da volatilidade, por padrão é 1 (diária)
- plot (bool) – se “True”, plota um gráfico da volatilidade móvel
Retorno: série das estimativas de volatildade
Tipo de retorno: garman_klass_vol (pd.Series)
-
turingquant.metrics.
plot_allocation
(dictionary)¶ Essa função permite a visualização da distribuição de pesos em um portfolio através da plotagem de um gráfico de pizza.
Parâmetros: dictionary (dict) – dicionário com o nome da ação e sua respectiva porcentagem na carteira, no formato ação:porcentagem.
-
turingquant.metrics.
returns
(close_prices, return_type='log', cumulative=False)¶ Essa função permite o cálculo rápido do retorno de uma ação ao longo do tempo.
Parâmetros: - close_prices (pd.DataFrame) – série de preços de fechamento que será utilizada de base para o cálculo do retorno;
- return_type (string) – tipo de retorno (simples - “simp” ou logarítmico - “log”) a ser calculado;
- cumulative (bool) – se True, calculará o retorno cumulativo
Retorno: série com os valores do retorno ao longo do tempo
Tipo de retorno: returns (pd.Series)
-
turingquant.metrics.
rolling_beta
(returns, benchmark, window=60, plot=True)¶ Plota o beta móvel para um ativo e um benchmark de referência, na forma de séries de retornos.
Parâmetros: - returns (array) – série de retornos para o qual o beta será calculado.
- benchmark (array) – série de retornos para usar de referência no cálculo do beta.
- window (int) – janela móvel para calcular o beta ao longo do tempo.
- plot (bool) – se True, plota um gráfico de linha com o beta ao longo do tempo.
Retorno: uma série com os valores do Beta para os últimos window dias. A série não possui os window primeiros dias.
Tipo de retorno: pd.Series
-
turingquant.metrics.
rolling_sharpe
(returns, window, risk_free=0, plot=True)¶ Plota o sharpe móvel para um ativo e um benchmark de referência, na forma de séries de retornos.
Parâmetros: - returns (array) – série de retornos para o qual o Sharpe Ratio será calculado.
- window (int) – janela móvel para calcular o Sharpe ao longo do tempo.
- risk_free (float) – valor da taxa livre de risco para cálculo do Sharpe.
- plot (bool) – se True, plota um gráfico de linha com o Sharpe ao longo do tempo.
Retorno: uma série com os valores do Sharpe para os últimos window dias. A série não possui os window primeiros dias.
Tipo de retorno: pd.Series
-
turingquant.metrics.
rolling_std
(close_prices, return_type, window, plot=True)¶ Essa função possibilita a visualização da volatilidade a partir do cálculo da desvio padrão móvel e da plotagem do gráfico dessa métrica ao longo de um período.
Parâmetros: - close_prices (pd.DataFrame) – série de preços de fechamento que será utilizado de base para o cálculo do desvio padrão móvel;
- return_type (string) – tipo de retorno (simples - “simp” ou logarítmico - “log”) que será utilizado de base para cálculo;
- window (int) – janela móvel para cálculo do desvio padrão móvel;
- plot (bool) – se True, plota o gráfico de linha do desvio padrão móvel ao longo do tempo
Retorno: um dataframe indexado à data com os valores de desvio padrão móvel dos últimos window dias
Tipo de retorno: rolling_std (pd.DataFrame)
-
turingquant.metrics.
sharpe_ratio
(returns, risk_free=0)¶ Essa função, a partir da definição do parâmetro de retorno, fornece o sharpe ratio do ativo, com base na média histórica e desvio padrão dos retornos. O risk free considerado é nulo.
Parâmetros: - returns (pd.series) – série com o retorno do ativo.
- risk_free (float) – risk free utilizado para cálculo do sharpe ratio.
Retorno: índice de sharpe do ativo.
Tipo de retorno: float
Módulo benchmark¶
Módulo para comparação e benchmarking de ativos e retornos.
-
turingquant.benchmark.
benchmark
(ticker, start: datetime.datetime, end: datetime.datetime, source='yahoo', plot=True)¶ Essa função fornece um plot de retorno acumulado de um ativo ao longo de um dado intervalo de tempo, definido pelos parâmetros start e end. Os dados são coletados da API do yahoo, caso haja dados faltantes, os retornos são contabilizados como nulos.
Parâmetros: - ticker (str) – recebe o ticker do papel que será obtido.
- start (datetime) – início do intervalo.
- end (datetime) – final do intervalo.
- plot (bool) – opcional; exibe o gráfico caso True.
Retorno: uma série de ativos indexados com o tempo com o retorno cumulativo para o período.
Tipo de retorno: pd.series
-
turingquant.benchmark.
benchmark_ibov
(start: datetime.datetime, end: datetime.datetime, source='yahoo', plot=True)¶ Essa função produz um plot da evolução do Índice Bovespa ao longo de um dado intervalo, definido pelos parâmetros start e end.
Parâmetros: - start (datetime) – início do intervalo.
- end (datetime) – final do intervalo.
- plot (bool) – opcional; exibe o gráfico caso True.
Retorno: uma série temporal com o retorno acumulado do Ibovespa para o período.
Tipo de retorno: pd.series
-
turingquant.benchmark.
benchmark_sp500
(start: datetime.datetime, end: datetime.datetime, source='yahoo', plot=True)¶ Essa função produz um plot da evolução do Índice S&P500 ao longo de um dado intervalo, definido pelos parâmetros start e end.
Parâmetros: - start (datetime) – início do intervalo.
- end (datetime) – final do intervalo.
- plot (bool) – opcional; exibe o gráfico caso True.
Retorno: uma série temporal com o retorno acumulado do S&P500 para o período.
Tipo de retorno: pd.series
Módulo support¶
Módulo para coletar informações de ações do mercado financeiro.
-
turingquant.support.
daily
(key, ticker, br=True)¶ Essa função entrega a cotação dia a dia de um produto negociado em bolsa com melhor formatação de dados que a biblioteca alpha_vantage.
Parâmetros: - key (str) – recebe a chave de uso do AlphaVantage
- ticker (str) – recebe o ticker do papel que será obtido
- br (str) – se True, adiciona «.SA» ao final do ticker, necessário para papéis brasileiros
Retorno: um dataframe contendo a cotação dia a dia do ativo.
Tipo de retorno: pd.DataFrame
-
turingquant.support.
get_annual_hpr
(ticker, period=252)¶ Essa função calcula o holding period return anual de junho
-
turingquant.support.
get_fundamentus
(ticker)¶ Essa função obtém os dados patrimoniais de empresas por meio do site fundamentus.com.br.
-
turingquant.support.
get_ibov
(atual=True)¶ Essa função obtém a composição atual do Índice Bovespa
-
turingquant.support.
get_sp500_tickers
()¶ Essa função obtem todas o ticker de todas as ações do S&P 500.
-
turingquant.support.
get_tickers
(setor='Todos')¶ Essa função obtém os tickers listados no site fundamentus.com.br, seja um setor específico, uma lista de setores ou todos os tickers de todos os setores.
-
turingquant.support.
intraday
(key, ticker, br=True, interval='1min')¶ Essa função entrega a cotação intraday dos últimos 5 dias de um produto negociado em bolsa com melhor formatação de dados que a biblioteca alpha_vantage.
Parâmetros: - key (str) – recebe a chave de uso do AlphaVantage
- ticker (str) – recebe o ticker do papel que será obtido
- br (bool) – se True, adiciona «.SA» ao final do ticker, necessário para papeis brasileiros.
- interval (str) – recebe o período entre cada informação (1min, 5min, 15min, 30min, 60min)
Retorno: DataFrame contendo a cotação intraday dos últimos 5 dias.
Tipo de retorno: pd.DataFrame