A Ciência de Dados é um tema cada vez mais presente no universo dos investimentos. Muitos investidores, sejam eles pessoas físicas ou institucionais, já estão implementando a análise de dados em suas estratégias de trading.
Nesse artigo vou trazer um exemplo prático da aplicação da ciência de dados no mercado financeiro.
Um pouco sobre Ciência de Dados
Dados são muito importantes para tomada de decisão em qualquer área da vida, concorda comigo?
Nos últimos anos grandes empresas perceberam isso e investiram pesadamente em análise de dados como suporte à tomada de decisão, obtendo ganhos exponenciais em suas receitas.
"A ciência de dados pode revelar insights valiosos para otimizar suas estratégias de trading." - Paul Tudor Jones
Mas como eu posso me beneficiar da análise de dados na minha estratégia de trading?
A análise de dados pode ser utilizada desde a criação e otimização de estratégias como também para o gerenciamento de risco e a gestão de carteiras ou portfólios.
Como resultado ela traz informações que muitas vezes não estão presentes nos relatórios que temos a nossa disposição.
As ferramentas mais utilizadas para análise de dados
As ferramentas mais utilizadas para análise de dados são:
- linguagens de programação Python e R. Algumas pessoas também utilizam o programa Microsoft Excel mas em número bem menor.
- ferramentas de business intelligence (BI). Como exemplo temos o Power BI, Tableau, Qlikview, Google Data Studio, etc.
- softwares ou aplicações web. Em Python temos as IDEs Google Colab, Atom, PyCharm, VsCode, etc.. Já para linguagem R utilizamos: R Cran, RStudio, RStudio Cloud.
- bibiotecas. Bibliotecas são nada mais nada menos que repositórios com funções prontas a fim de simplificar o processo de programação. Em Python que é a linguagem mais utilizada no mundo da análise de dados, a biblioteca mais famosa se chama Pandas.
Etapas para uma boa análise de dados
Quando se fala em análise de dados algumas etapas deve ser seguidas:
- Obtenção e armazenamento dos dados;
- Limpeza e transformação dos dados;
- Exploração e visualização dos dados;
- Predição e experimentação com os dados obtidos.
Obtenção e armazenamento dos dados
Aqui buscamos responder perguntas como: como obter os dados necessários para análise? E após obtê-los, onde deveríamos armazená-los?
Os dados podem estar em sites, APIs (Application Programming Interface), em arquivos em diferentes formatos. Assim iremos utilizar bibliotecas específicas para extração e armazenamento desses dados.
Limpeza e transformação dos dados
No mundo real, na maior parte das vezes encontramos os dados bagunçados.
Para ter uma análise clara e efetiva, prevenindo erros ou resultados enviesados, precisamos realizar a limpeza e tratamento dos dados.
Exploração e visualização dos dados
A visualização de dados é parte fundamental da análise de dados, para isso utilizamos diferentes tipos de gráficos de acordo com o objeto de estudo.
A linguagem Python possui bibliotecas poderosas para plotagem de gráficos, são elas:
Previsão e experimentação com os dados obtidos
Aqui utilizamos a estatística para criar uma previsão do futuro baseado nos dados que obtivemos.
Exemplo prático de análise de dados no daytrade
Pois bem feito essa breve introdução sobre o tema, mostrarei agora o exemplo de uma aplicação prática da ciência de dados no daytrade.
Objetivo da análise
O objeto do nosso estudo será o lucro acumulado por dia de operação.
Nesse exemplo vamos fazer a análise do resultado das operações de uma carteira de robôs da RobotCrowd.
Para quem não conhece, a RobotCrowd é uma Crowdsourcing para trading automatizado onde são desenvolvidos robôs de investimento com código livre pra uso não comercial.
Fonte de dados
A fonte de dados será um arquivo .csv com o histórico de todas as operações no período de 31-12-2018 à 29-01-2022, de um portfólio público da RobotCrowd disponível no site Trading Portfolios, perfazendo um total de 5806 operações.
Estão prontos? Então vamos por a mão massa !
Desenvolvimento do código
Para escrever e rodar nosso código em Pyhton vamos utilizar o Google Colab, mas fique a vontade caso queira utilizar outra IDE.
Primeiro vamos importar as bibliotecas necessárias:
import pandas as pdimport matplotlib.pyplot as pltimport plotly.express as pximport seaborn as sns
df = pd.read_csv('./DailyReturnsTable.csv')
display(df)
df["Data"] = pd.to_datetime(df["Data"])
df["Dia"], df["Mês"], df["Ano"] = (df["Data"].dt.day, df["Data"].dt.month, df["Data"].dt.year)
lucro_acumulado_por_dia = (df.groupby(['Dia']).agg('sum'))
display(lucro_acumulado_por_dia)
lucro_acumulado_por_dia.plot(y=["Lucro Total"], kind="bar",figsize=(9,8), color='r') plt.show()
Conclusão do estudo
Percebam que dado interessante, o dia 30 de cada mês foi o único dia que terminou negativo, portanto parece ser um dia ruim para este portfólio.
Daí surge a seguinte questão:
Seria interessante não operar nesse dia ou esse resultado foi apenas obra do acaso?
Para responder a essa pergunta seria interessante realizar esse teste com outros portfólios para ver se esse padrão se repete.
Essa tarefa eu vou deixar com dever de casa para vocês. 😅
Viu como a ciência de dados é incrível!
De forma muito simples e rápida obtivemos uma informação que você dificilmente encontrará nos relatórios de backtest.
Leituras recomendadas
Python Para Análise de Dados: Tratamento de Dados com Pandas, NumPy & Jupyter - Wes McKinney
Considerações finais
Espero que tenha gostado deste conteúdo.
Meu objetivo é passar conteúdo relevante e único para você.
Caso tenha gostado ou se ficou alguma dúvida deixe abaixo nos comentários.
Abraços e até a próxima!
Postar um comentário