top of page
  • Foto do escritorRafael Perez

Desenvolvimento de um Algoritmo de Trading

Dando continuidade à nossa série de artigos sobre algo trading no mercado de energia, neste artigo vamos trazer para vocês um resumo de um webinar apresentado pelo QuantInst. A apresentação tem duração aproximada de 1 hora e 30 minutos. Vamos resumir os principais pontos do webinar que aborda em detalhes cada etapa no desenvolvimento de um algoritmo de trading de commodities.

Atenção: o webinar explica as etapas de desenvolvimento de um algoritmo de trading de commodities de agricultura, porém o princípio é o mesmo para commodities de energia (tirando algumas diferenças inerentes de cada mercado). Informações do Webinar: Instituição:

  • QuantInst, instituto de ensino focado no desenvolvimento de algoritmos de trading.

Apresentador do Webinar: Sunil Guglani - Assistente Vice Presidente na NCDE (National Commodity and Derivatives Exchange Ltd) com mais de 20 anos de experiência na indústria de TI.

Link para o Webinar completo:




Webinar: Algo Trading em Mercados de Commodities Antes de começar vamos relembrar três estratégias de trading no mercado de commodities:

  • Hedging

  • Arbitragem

  • Negociação de Pares

Hedging: É um investimento para mitigar flutuações de riscos no investimento principal. Pode se dizer que é um tipo de seguro. È um pré-requisito que o tenho um alto nível de correlação entre os ativos.

Arbitragem: A arbitragem é uma estratégia de trading que visa gerar lucro ao comprar um ativo em um mercado e, simultaneamente, vendê-lo em outro. Isso normalmente é feito com ativos idênticos negociados.

Negociação de Pares: Pair trading (negociação de pares) é uma estratégia onde um par de ativos é negociado, sem levar em conta se o mercado está tendendo para cima ou para baixo. As posições abertas protegem uma contra a outra, sendo possível ganhar na alta, na baixa ou mesmo com o mercado "andando de lado". O long and short, sobre o qual muito se fala, é o tipo mais conhecido de pair trading. Segmentos do Algo Trading: Sunil separa algumas as ferramentas, em segmentos, que podem ser utilizadas no desenvolvimento de um algoritmo de trading. Observar que nesse caso vamos usar a linguagem de desenvolvimento Python e que essas ferramentas são algumas das milhares disponíveis!



Estratégias: Mean Reversion (Reversão à média)

  • Aplicado em gráficos de candlesticks, fazendo uma média aritmética dos preços de fechamento dos últimos candles, considerando uma quantidade de fechamentos específica, que se torna o parâmetro do indicador.

Momentum

  • O Momentum é uma estratégia de investimento que reflete um padrão no desempenho dos preços das ações, utilizada para apontar a direção futura do ativo. Esta estratégia se baseia em comprar (long) empresas com fortes Momentum recente e vender (short).

  • API de provedor de dados

  • API de Gestão de Ordens

Hospedagem de Algoritmo

  • In house (servidores internos)

  • Cloud based

  • Data Visualization: Como o nome diz, ferramentas para visualização de dados, como por exemplo o Power BI da Microsoft:

Ferramentas para desenvolvimento de Algoritmos

  • Python (Usado como exemplo do webinar por ser uma das linguagens mais utilizadas)

As três seguintes ao conhecidas como "ferramentas semi programação".

  • Metatrader

  • Amibroker

  • Ninjatrader

Plataformas de Algo Trading

Plataformas que dão acesso à construção de algoritmos sem precisar de muita infraestrutura. Eles dão acesso aos Brokers e também dão ferramentas de backtest, facilitando muito o desenvolvimento de algoritmos de trading.

Alguns exemplos: Quantopian ( Python) Blueshift (Python) Quantiacs Zerodha Streak (UI)

Bibliotecas Python:

  • Biblitecas de Backtesting

  • TA-Lib

  • Backtrader

  • bt

  • MibianLib

  • Bibliotecas de Processamento de Dados

  • Pandas

  • Numby

  • Scrapy

  • beautifulsoup

Etapas do Trading e Algoritmos


Observar que essas etapas são iterativas entre elas! Ou seja, essas etapas quando concluídas podem e devem ser revisitadas constantemente para aprimoramentos. Etapas

  1. Trading Concept

È a etapa definimos uma hipótese para ser testada.

  • Brainstorm das ideias

Commodities de agricultura são menos voláteis e normalmente variam próximo ao mesmo preço.

  • Montar a logica/ideia de trading

Mean reversion trading strategy (Estratégia de trading de reversão à média). Utilizando as ferramentas de Bollinger. Exemplo, Comprar: se o preço do fechamento cair -2 de desvio da média. Manter se o preço subir +2 do desvio da média.

  • Definir a frequência do trading (intraday, semanal,etc.)

Frequência diária

  • Definir o segmento do mercado (Commodities,FX,Crypto,etc)

Segmento de commodities de agricultura

  • Definir o período de backtesting

No exemplo dado no webinar foi definido o período de 1 ano. (Recomenda-se em torno de 2 anos MINIMO, como falamos em nosso ultimo artigo)

  • Escolher a linguagem de programação e ferramentas

Linguagem de programação Python Tendo listado as subetapas dentro da etapa de "Trading Concept", vamos acompanhar como o Sunil chega a uma hipótese (subetapa de brainstorm) usando dados do PIB da Índia.


Sunil trás como exemplo uma tabela de Excel do PIB de vários setores da Índia. Observe que esses dados nesse formato (tabela) não é tão ideal assim para montar estratégias de trading, já que não é fácil de visualizar os dados para tirar uma conclusão!


Como eles estão separados em segmentos, Sunil monta um gráfico de linhas para poder visualizar melhor os dados. Ele decide então escolher o segmento de mercado de agricultura, separando ele dos outros.


E para facilitar ainda mais ele resolve transformar o gráfico de linha em colunas, separadas pelos trimestres de cada ano.


Conseguindo observar um padrão os picos de PIB, Sunil pensa em uma possível correlação (dentre milhares) entre preço do commodity com o GDP da Índia. Logo a hipótese é: O preço do commodity X varia de acordo com o PIB da Índia.

2. Filtering Criteria É a etapa de filtragem, para escolher os scripts e instrumentos que melhor encaixa com a lógica definida na etapa (1). Essa etapa de filtragem é importante para definir como melhor testar se a logica escolhida realmente tem aplicação na prática. Na última etapa definimos que vamos utilizar commodities de agricultura agora vamos definir um volume de 1000, porque ele vai utilizar scripts de programação de alto volume. O filtro então fica assim: a. Segmento: Agricultura b. Volume > 1000

No vídeo, Sunil defini o commodity Chana como base para testar o modelo.

3. Visualização do Modelo A visualização do modelo é basicamente uma verificação preliminar da logica que vamos testar. È importante executar essa etapa para salvar tempo e esforços na etapa futura de backtesting. Normalmente é feito utilizando ferramentas de visualização como Power BI ou até mesmo Excel.


Na visualização acima podemos ver que a lógica que escolhemos (trading em +/- 2 de desvio da média) faz sentido! Agora podemos seguir para a etapa de backtesting.

4. Backtesting É a etapa de verificação da lógica definida utilizando dados históricos para ver seu comportamento num cenário real. Essa etapa é primordial no desenvolvimento de qualquer algo trading. É um método seguro (sem envolver dinheiro real) para ver a execução da lógica de trading.

Atividades:

  1. Importar dados e bibliotecas de códigos para validar a lógica

  2. Escrever funções de suporte para alcançar a lógica definida

  3. Gerar sinais de compra/venda usando candlesticks

  4. Visualização do resultado

  5. Comprovar retornos financeiros da estratégia.

5. Etapa de Otimização Essa etapa, como a de backtesting, é iterativa. É um processo continuo de aprimoramento dos parâmetros da logica em questão para ter o melhor resultado. Isso é necessário porque o comportamento e preço do instrumento esta sempre mudando. Para essa etapa dar certo é necessário um trabalho meticuloso na etapa de backtesting. Porém há um fator para ficar atento, o de otimizar demais a lógica, fazendo com que ela só funcione bem em alguns cenários muito específicos (overfitting). Nessa parte Sunil demonstra alguns códigos que vamos apresentar em outro artigo, focamos mais na parte de programação!

6. Paper Trading Essa é a etapa onde testamos o algoritmo no mundo real. É possível fazer isso utilizando ferramentas de brokers, como por exemplo a FOLHAINVEST para o mercado financeiro! Ou desenvolvendo um framework interno na empresa. O benefício de realizar essa etapa é que não há o risco real de perder dinheiro e o resultado é bem mais preciso do que usando dados históricos no backtesting. Porém como o backtest, é uma atividade que consome muito tempo.

7. Go Live Por ultimo a etapa de lançamento do algoritmo. Nessa etapa o que é necessário é a gestão da implementação técnica e de funcionalidade do algoritmo. Como a gestão de risco, portfolio, conectar com APIs do broker e/ou do ferramenta de extração de dados, etc.


Bem nesse artigo resumimos o webinar que o Sunil apresentou para o QuantInst. Focamos mais nas etapas, suas importâncias e o porque delas. Como mencionado vamos fazer um artigo focamos exclusivamente na parte de programação apresentada no webinar! Então não se esqueça de se inscrever em nossa newsletter para receber a continuação desse artigo assim que ele sair!

Muito obrigado por ler mais um artigo da nossa equipe. Lembramos sempre que tudo que nós construímos na Navarra é um processo colaborativo com o mercado de energia então se você tiver algum assunto ou dúvida fique à vontade para entrar em contato com nossa equipe!

Gostaríamos de lembrar que já começou a versão presencial do Energy Trading Week! A versão online tem inicio no dia 11/10! Para se inscrever basta acessar o link:

ENERGY TRADING WEEK ETW Não se esqueça de se inscrever em nossa newsletter para ficar sempre por dentro de nossos conteúdos! Subscribe * indicates required Email Address * Nome * Cargo * Empresa *

16 visualizações0 comentário

Posts recentes

Ver tudo
bottom of page