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.
QuantInsti - Learn Algorithmic Trading from Market Practitioners Learn algorithmic trading, quantitative finance, and high-frequency trading online from industry experts at QuantInsti – A Pioneer Training Institute for Algo Trading QuantInsti Quantitative Learning Pvt Ltd
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 os slides utilizados no webinar: Algorithmic Trading in Commodity Markets by Sunil Guglani Algorithmic Trading in Commodity Markets by Sunil Guglani Session Outline: - Introduction - Stages of Algorithmic Trading: - Formulating the Trading Concept/Lo… SlideShare iOSQuantInsti
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).
Infraestrutura: (Em nosso artigo "Inteligência Artificial no Trading de Commodities", falamos em mais detalhes sobre como montar uma infraestrutura para algoritmo)
Inteligência Artificial no Trading de Commodities
Em nosso último artigo “Implementação de Algo Trading”. Falamos um pouco sobre as etapas de implementação de uma estrutura de algo trading e de algumas boas práticas. Este artigo é mais um da série onde resumimos de entrevistas e palestras do Energy Trading Week, um dos painéis do Commodities Tradi…
Navarra TechRafael Lorenzo Perez
Conectar com o Broker
API de provedor de dados
API de Gestão de Ordens
Hospedagem de Algoritmo
In house (servidores internos)
Cloud based
Para Cloud, uma das soluções disponível no mercado é da Oracle, "Oracle Cloud":
Migração para a nuvem simplificada
Descubra a próxima geração de IaaS e PaaS na nuvem criada e otimizada especificamente para ajudar as empresas a executar suas cargas de trabalho mais exigentes com segurança.
OCI OCI
Data Visualization: Como o nome diz, ferramentas para visualização de dados, como por exemplo o Power BI da Microsoft:
Visualização de Dados | Microsoft Power BI Transforme dados em oportunidades com as ferramentas de visualização de dados do Microsoft Power BI. Tome decisões comerciais melhores analisando os insights de dados corporativos. Power BIDaksha R
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
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.
Link para um framework Python de Backtest, o Backtrader: Welcome - Backtrader python backtesting trading algotrading algorithmic quant quantitative analysis Backtrader
Atividades:
Importar dados e bibliotecas de códigos para validar a lógica
Escrever funções de suporte para alcançar a lógica definida
Gerar sinais de compra/venda usando candlesticks
Visualização do resultado
Comprovar retornos financeiros da estratégia.
Sunil deixa um link para o artigo que ele escreveu falando em um pouco mais de detalhe sobre o desenvolvimento de um trading bot utilizando python. Segue o link: How to develop your first trading bot using python — by recognising candlestick patterns Disclaimer: This article is only for educational purposes and designed not to generate any profit. Please don’t refer this for actual… MediumSunil Guglani
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 *
Komentarze