python ffn — Funções de Finanças
A biblioteca “ffn — a financial function library for Python” contém muitas funções úteis para se trabalhar com finanças quantitativas, fornecendo uma vasta gama de utilidades, desde medição e avaliação de desempenho até gráficos e transformações de dados.
O dados são obtidos do Yahoo Finance que fornece todos os dados históricos de todas as Ações, Stocks, FIIs, ETFs e Reits negociados em todas as Bolsas de Valores do mundo.
Instalação
A instalação da biblioteca segue o mesmo padrão da instalação de qualquer outra biblioteca Python, usamos o pip (Python Package Index):
pip install ffn
O pip instalará inicialmente todas as dependências da ffn até que tudo esteja instalado, inclusive a ffn.
Outra opção muito interessante é a instalação da distribuição Anaconda onde ela já disponibiliza pre-instaladas todas as bibliotecas necessárias para análise de dados em geral, bibliotecas muito utilizadas para este fim como Pandas, Numpy, Scipy e outras. Com o Anaconda é possível utilizar o editor Jupyter para programar e trabalhar com o ffn.
Utilização
Para importar a biblioteca e começar a utilizá-la:
import ffn
Para buscar os dados da Apple e da Microsoft desde 2010:
price = ffn.get('aapl,msft', start='2010-01-01')
Vamos comparar o desempenho relativo de cada ação graficamente:
ax = prices.rebase().plot()
Vamos analisar os dados quantitativos de quatro gigantes do mundo da tecnologia: Apple, Microsoft, Amazon e Google.
price = ffn.get('aapl,msft,amzn,goog', start='2010-01-01')
Análise da performance de cada uma:
stats = price.calc_stats()
stats.display()
As estatísticas acima nos mostram que, por exemplo, a Amazon retornou ao acionista 1351% de 04-jan-2010 até 05-set-2019 \o/
Falando em ações do Brasil…
Vamos analisar de maio de 2018 a julho de 2019 como alguns bancos brasileiros performaram.
Dois dos maiores bancos de varejo do Brasil: Itaú (ITUB4) e Bradesco (BBDC4) contra dois bancos digitais em crescente ascensão Banco Inter (BIDI4) e Banco Pan (BPAN4).
import ffn
price = ffn.get(‘bidi4.sa,bpan4.sa,itub4.sa,bbdc4.sa’)
stats = price.calc_stats()
stats.display()
O total de retorno ao acionista do Banco Inter foi de 377,24%, do Banco Pan 453,31% enquanto do Itaú foi de 20,43% e do Bradesco 50,73%.
Mais informações sobre o ffn
A documentação da biblioteca é vasta, existem muitos outros indicadores a analisar. Para visualizar todas as funções disponíveis consulte os links abaixo.
Site oficial: http://pmorissette.github.io/ffn/index.html
Código-fonte da biblioteca: https://github.com/pmorissette/ffn
Quickstart: http://pmorissette.github.io/ffn/quick.html
Documentação da API: http://pmorissette.github.io/ffn/ffn.html
Para ir além
A biblioteca bt (https://github.com/pmorissette/bt), que também utiliza a biblioteca ffn, é um framework Python para realizar backtesting de estratégias de trades. Falaremos mais sobre ela nos próximos artigos.