Como codificar seu próprio robô de negociação Algo.
Sempre quis se tornar um operador algorítmico com a capacidade de codificar seu próprio robô comercial? E, no entanto, você está frustrado com a quantidade de informações desorganizadas e enganosas e falsas promessas de prosperidade durante a noite? Bem, Lucas Liew, criador do curso de comércio on-line algorítmico AlgoTrading101, pode ter a solução para você. Tendo excelentes avaliações e conquistando mais de 8.000 alunos desde o seu primeiro lançamento em outubro de 2014, o curso da Liew - destinado a apresentar os fundamentos do comércio algorítmico de forma organizada - está se mostrando bastante popular. Ele é inflexível quanto ao fato de que a negociação algorítmica “não é um esquema de enriquecimento rápido”. Baseando-se em insights de Liew e seu curso, descritos abaixo são os fundamentos do que é necessário para projetar, construir e manter seu próprio robô de negociação algorítmica .
O que um robô de negociação algorítmico é e faz.
No nível mais básico, um robô de negociação algorítmica é um código de computador que tem a capacidade de gerar e executar sinais de compra e venda nos mercados financeiros. Os principais componentes desse robô incluem regras de entrada que sinalizam quando comprar ou vender, regras de saída que indicam quando fechar a posição atual e regras de dimensionamento de posição que definem as quantidades a serem compradas ou vendidas. (Para mais, veja: Noções básicas de negociação algorítmica: conceitos e exemplos.)
As principais ferramentas.
Obviamente, você vai precisar de um computador e uma conexão com a Internet. Depois disso, será necessário um sistema operacional Windows ou Mac para executar 4 (4) - uma plataforma de negociação eletrônica que usa a MetaQuotes Language 4 (4) para codificar estratégias de negociação. Embora 4 não seja o único software que se poderia usar para construir um robô, ele tem vários benefícios significativos.
Enquanto a principal classe de ativos de 4 é o câmbio (FX), a plataforma pode ser usada para negociar ações, índices de ações, commodities e Bitcoins usando CFDs. Outros benefícios de usar o 4 em oposição a outras plataformas incluem ser fácil de aprender, tem inúmeras fontes de dados de FX disponíveis e é gratuito. Infelizmente, 4 não permite negociações diretas nos mercados de ações e de futuros e a realização de análises estatísticas pode ser onerosa; no entanto, o MS Excel pode ser usado como uma ferramenta estatística suplementar.
Estratégias de Negociação Algorítmica.
É importante começar refletindo sobre alguns traços centrais que toda estratégia de negociação algorítmica deve ter. A estratégia deve ser prudente no mercado, pois é fundamentalmente sólida do ponto de vista comercial e econômico. Além disso, o modelo matemático usado no desenvolvimento da estratégia deve ser baseado em métodos estatísticos sólidos.
Em seguida, é crucial determinar quais informações seu robô está tentando capturar. Para ter uma estratégia automatizada, seu robô precisa ser capaz de capturar ineficiências de mercado persistentes e identificáveis. As estratégias de negociação algorítmica seguem um conjunto rígido de regras que se aproveitam do comportamento do mercado e, portanto, a ocorrência de uma ineficiência de mercado única não é suficiente para construir uma estratégia. Além disso, se a causa da ineficiência do mercado não for identificável, então não haverá maneira de saber se o sucesso ou o fracasso da estratégia foi devido ao acaso ou não.
Com o acima em mente, existem vários tipos de estratégia para informar o design do seu robô de negociação algorítmica. Estas incluem estratégias que aproveitam (i) notícias macroeconômicas (por exemplo, folha de pagamento não agrícola ou mudanças na taxa de juros); (ii) análise fundamental (por exemplo, usando dados de receita ou notas de lançamento de lucros); (iii) anise estattica (por exemplo, correlao ou cointegrao); (iv) análise técnica (por exemplo, médias móveis); (v) a microestrutura de mercado (por exemplo, infraestrutura de arbitragem ou comércio); ou (vi) qualquer combinação dos itens acima. (Para leitura relacionada, consulte: O que é eficiência de mercado?)
Projetando e testando seu robô.
Existem basicamente quatro etapas necessárias para criar e gerenciar um robô comercial:
Pesquisa preliminar: Esta etapa se concentra no desenvolvimento de uma estratégia que atenda às suas próprias características pessoais. Fatores como perfil de risco pessoal, comprometimento de tempo e capital de negociação são todos importantes para se pensar no desenvolvimento de uma estratégia. Você pode então começar a identificar as ineficiências persistentes do mercado mencionadas acima. Tendo identificado uma ineficiência de mercado, você pode começar a codificar um robô comercial adequado às suas próprias características pessoais.
Backtesting: Este passo se concentra em validar seu robô comercial. Isso inclui verificar o código para certificar-se de que ele está fazendo o que deseja e entender como ele funciona em diferentes períodos de tempo, classes de ativos ou condições de mercado diferentes, especialmente em eventos do tipo cisne negro, como a crise financeira global de 2008.
Otimização: Então, agora você codificou um robô que funciona e, nesse estágio, você quer maximizar seu desempenho enquanto minimiza o viés do overfitting. Para maximizar o desempenho, você primeiro precisa selecionar uma boa medida de desempenho que capture os elementos de risco e recompensa, bem como a consistência (por exemplo, o índice de Sharpe). O viés de sobrecurso ocorre quando o robô está muito próximo dos dados do passado; esse robô vai dar a ilusão de alto desempenho, mas como o futuro nunca se parece completamente com o passado, ele pode realmente falhar.
Execução ao Vivo: Agora você está pronto para começar a usar dinheiro real. No entanto, além de estar preparado para os altos e baixos emocionais que você pode experimentar, existem alguns problemas técnicos que precisam ser abordados. Esses problemas incluem a seleção de um corretor apropriado e a implementação de mecanismos para gerenciar os riscos de mercado e os riscos operacionais, como possíveis hackers e o tempo de inatividade da tecnologia. Também é importante nesta etapa verificar se o desempenho do robô é semelhante ao experimentado no estágio de teste. Finalmente, o monitoramento contínuo é necessário para garantir que a eficiência do mercado para a qual o robô foi projetado ainda exista. (Para mais, veja: Como os Algoritmos de Negociação são Criados.)
The Bottom Line.
Considerando que Richard Dennis, o lendário comerciante de commodities, ensinou a um grupo de estudantes suas estratégias de negociação pessoais que depois ganharam mais de US $ 175 milhões em apenas cinco anos, é completamente possível que traders inexperientes aprendam um conjunto estrito de diretrizes e se tornem comerciantes bem sucedidos. No entanto, este é um exemplo extraordinário e os iniciantes devem lembrar-se de ter expectativas modestas.
Para ser bem sucedido, é importante não apenas seguir um conjunto de diretrizes, mas também entender como essas diretrizes estão funcionando. Liew salienta que a parte mais importante da negociação algorítmica é “entender em que tipos de condições de mercado seu robô irá funcionar e quando ele irá quebrar” e “entender quando intervir”. O comércio algorítmico pode ser recompensador, mas a chave para o sucesso é compreensão. Qualquer curso ou professor prometendo altas recompensas com o mínimo de entendimento deve ser um grande sinal de alerta.
Como os Algoritmos de Negociação são Criados.
O comércio quantitativo não é acessível apenas aos comerciantes institucionais; comerciantes de varejo estão se envolvendo também. Embora as habilidades de programação sejam recomendadas para produzir algoritmos, nem sempre elas são necessárias. Programas e serviços estão disponíveis e escrevem o código de programação para uma estratégia baseada nas entradas que você fornece. O código produzido pelo programa / serviço é então conectado à plataforma de negociação e o comércio começa. Mas antes que isso possa ocorrer, os traders algorítmicos que desejam ser passam por várias etapas, decidindo exatamente o que querem realizar com o algoritmo e como.
Prazo e restrições.
Embora um algoritmo bem programado possa ser executado por conta própria, recomenda-se alguma supervisão humana. Portanto, escolha um período de tempo e uma frequência de negociação que você possa monitorar. Se você tem um emprego em tempo integral e seu algoritmo é programado para fazer centenas de transações por dia em um gráfico de um minuto enquanto você está no trabalho, isso pode não ser o ideal. Você pode escolher um período de tempo um pouco mais longo para suas negociações e menos frequência de negociação para poder manter o controle sobre ele.
Lucratividade na fase de testes do algoritmo não significa que ele continuará produzindo esses retornos para sempre. Ocasionalmente, você precisará intervir e alterar o algoritmo de negociação se os resultados revelarem que ele não está mais funcionando bem. Este é também um compromisso de tempo que qualquer pessoa que realize negociações algorítmicas deve aceitar.
Restrições financeiras também são um problema. As comissões acumulam-se muito rapidamente com uma estratégia de negociação de alta frequência, por isso certifique-se de estar com a corretora de menor custo disponível e que o potencial de lucro de cada operação garante o pagamento dessas comissões, potencialmente muitas vezes por dia. O capital inicial também é uma consideração. Diferentes mercados e produtos financeiros exigem diferentes quantias de capital. Se as ações de troca do dia, você precisará de pelo menos US $ 25.000 (mais é recomendado), mas negociação forex ou futuros você pode potencialmente começar com menos.
Restrições de mercado são outro problema. Nem todo mercado é adequado para negociação algorítmica. Escolha ações, ETFs, pares de moedas estrangeiras ou futuros com ampla flexibilidade para lidar com as ordens que o algoritmo estará produzindo.
Desenvolva ou aperfeiçoe uma estratégia.
Uma vez que as restrições financeiras e de tempo sejam compreendidas, desenvolva ou afine uma estratégia que possa ser programada. Você pode ter uma estratégia que negocie manualmente, mas é facilmente codificada? Se sua estratégia é altamente subjetiva e não baseada em regras, programar a estratégia pode ser impossível. As estratégias baseadas em regras são as mais fáceis de codificar - estratégias com entradas, stop loss e price targets baseados em dados quantificáveis ou movimentos de preços.
Como as estratégias baseadas em regras são facilmente copiadas e testadas, há muitas opções disponíveis gratuitamente se você não tiver ideias próprias. Quantpedia é um desses recursos, fornecendo documentos acadêmicos e resultados de negociação para vários métodos de negociação quantitativos. As regras descritas podem ser codificadas e, em seguida, testadas quanto à lucratividade em dados passados e atuais. Codificar um algoritmo requer habilidade de programação ou acesso ao software ou alguém que possa codificar para você.
Testando um Algoritmo de Negociação.
O passo mais importante é o teste. Uma vez que uma estratégia de negociação tenha sido codificada, não troque o capital real com ela até que ela tenha sido testada. O teste inclui deixar o algoritmo rodar em dados históricos de preços, mostrando como o algoritmo se comportou ao longo de milhares de negociações. Se a fase de testes históricos é lucrativa, e as estatísticas produzidas são aceitáveis para sua tolerância ao risco - como empate máximo, índice de ganhos, risco de ruína, por exemplo - então avance para testar o algoritmo em condições reais em uma conta de demonstração. Mais uma vez, essa fase deve produzir centenas de negociações para que você possa acessar o desempenho.
Se o algoritmo for lucrativo em dados de preços históricos e negociar uma conta de demonstração ao vivo, use o capital real de negociação, mas com um olhar atento. As condições ao vivo são diferentes do histórico ou teste de demonstração, porque as ordens do algoritmo realmente afetam o mercado e podem causar derrapagem. Até que seja verificado o algoritmo funciona no mercado real, como fez em testes, mantenha um olhar atento.
Manutenção Contínua.
Enquanto o algoritmo estiver operando dentro dos parâmetros estatísticos estabelecidos durante o teste, deixe o algoritmo sozinho. Algoritmos têm o benefício de negociar sem emoção, mas um comerciante que constantemente mexer com o algoritmo está anulando esse benefício. O algoritmo requer atenção embora. Monitore o desempenho e, se as condições do mercado mudarem tanto que o algoritmo não esteja mais funcionando como deveria, os ajustes poderão ser necessários.
The Bottom Line.
O comércio algorítmico não é um esforço definido e esquecido que o torna rico da noite para o dia. Na verdade, a negociação quantitativa pode ser tanto trabalho quanto negociar manualmente. Se você optar por criar um algoritmo, esteja ciente de como o tempo, as restrições financeiras e de mercado podem afetar sua estratégia e planejar adequadamente. Transforme uma estratégia atual em uma baseada em regras, que pode ser mais facilmente programada, ou selecione um método quantitativo que já tenha sido testado e pesquisado. Em seguida, execute sua própria fase de teste usando dados históricos e atuais. Se isso for feito, execute o algoritmo com dinheiro real sob vigilância. Ajuste se necessário, mas caso contrário, deixe-o fazer o seu trabalho.
Como construir sua própria estratégia de negociação algorítmica.
Estratégia de Negociação Algorítmica.
Toda semana recebemos inúmeros e-mails nos perguntando como criamos nossa lucrativa estratégia de negociação algorítmica.
Em vez de tentar explicar nosso processo e raciocinar repetidamente por meio de e-mails e telefonemas, decidimos criar um vídeo detalhado sobre os 4 maiores obstáculos que os traders enfrentam e como você pode construir sua própria estratégia de negociação algorítmica lucrativa.
Seu objetivo como comerciante é criar ou pelo menos usar uma estratégia de negociação vencedora. Não importa se você o troca manualmente ou se é uma estratégia de negociação automatizada. Mas se acontecer de você criar algo que gere dinheiro, é natural que você se concentre em automatizá-lo para ter sua própria estratégia de negociação algorítmica funcionando e funcionando para você, enquanto você constrói sua próxima estratégia de negociação de algoritmos & # 8230;
Ao longo dos anos, gastei dezenas de milhares de dólares tentando descobrir quais são as chaves da estratégia comercial bem-sucedida. Quero compartilhar com você como eu construo estratégias lucrativas de negociação algorítmica que funcionam em mercados ascendentes, em queda e paralelos.
Como eu construí uma estratégia rentável de negociação algorítmica & amp; Como você também pode.
Deixe-me compartilhar com você minha jornada como operador na ordem em que as coisas acontecem comigo e como me tornei um usuário de estratégia de negociação algorítmica em tempo integral. Assista ao vídeo abaixo para detalhes e oferta especial.
A estratégia de negociação algorítmica alcança nova marca d'água de 30,7% de ROI & # 8211; Comunicado de imprensa.
Começando: Construindo um Sistema de Negociação Totalmente Automatizado.
Nos últimos 6 meses, tenho focado no processo de construção da pilha completa de tecnologia de um sistema de negociação automatizado. Eu me deparei com muitos desafios e aprendi muito sobre os dois métodos diferentes de backtesting (Vectorised e Event driven). Na minha jornada para construir um backtester orientado a eventos, veio a minha surpresa que o que você iria acabar é perto de toda a pilha de tecnologia necessária para construir uma estratégia, fazer backtest e executar a execução ao vivo.
Meu maior problema ao enfrentar o problema foi a falta de conhecimento. Procurei em muitos lugares uma introdução à construção da tecnologia ou um blog que me orientasse. Eu encontrei alguns recursos que vou compartilhar com vocês hoje.
Para iniciantes:
Para os leitores novatos em negociações quantitativas, eu recomendaria o livro de Ernie P. Chan intitulado: Negociação Quantitativa: Como construir seu próprio negócio de comércio algorítmico. Este livro é o básico. Na verdade, é o primeiro livro que li sobre negociação quantitativa e mesmo assim achei muito básico, mas há algumas notas que você deve tomar.
Da página 81-84 Ernie escreve sobre como, no nível de varejo, uma arquitetura de sistema pode ser dividida em estratégias semi-automatizadas e totalmente automatizadas.
Um sistema semi-automatizado é adequado se você quiser fazer algumas transações por semana. Ernie recomenda usar o Matlab, R ou até mesmo o Excel. Eu usei todas as 3 plataformas e este é o meu conselho:
Saltar do Matlab, custou muito dinheiro e só consegui acesso aos laboratórios da universidade. Não há muito material de treinamento como blogs ou livros que ensinem como codificar uma estratégia usando o Matlab. R tem toneladas de recursos que você pode usar para aprender como construir uma estratégia. Meu blog favorito cobrindo o tópico é: QuantStratTradeR é executado por Ilya Kipnis. É mais provável que o Microsoft Excel inicie onde você não tem experiência em programação. Você pode usar o Excel para negociações semi-automáticas, mas isso não vai funcionar quando se trata de construir a pilha completa de tecnologias.
Estrutura semiautomática pg 81.
Sistemas de negociação totalmente automatizados são para quando você deseja colocar automaticamente as negociações com base em um feed de dados ao vivo. Eu codifiquei o meu em C #, o QuantConnect também usa o C #, o QuantStart orienta o leitor através da construção em Python, o Quantopian usa o Python, o HFT provavelmente usará o C ++. Java também é popular.
Estrutura de negociação completamente automatizada página 84.
Passo 1: Conseguir um bom começo.
Faça o Programa Executivo em Algorithmic Trading oferecido pela QuantInsti. Acabei de começar o curso e o primeiro conjunto de palestras foi na arquitetura do sistema. Teria me poupado cerca de 3 meses de pesquisa se eu tivesse começado aqui. As palestras me acompanharam através de cada componente que eu precisaria, bem como uma descrição detalhada do que cada componente precisa fazer. Abaixo está uma captura de tela de um de seus slides usados na apresentação:
Você também pode usar essa estrutura geral ao avaliar outros sistemas de negociação automáticos.
No momento em que escrevo, estou apenas na terceira semana de palestras, mas estou confiante de que um praticante será capaz de construir uma estratégia comercial totalmente automatizada que poderia, com um pouco de refinamento, ser transformada no começo de um fundo de hedge quantitativo. .
Nota: o curso não está focado na construção da pilha de tecnologia.
Etapa 2: codifique um backtester baseado em eventos básicos.
Blog de Michael Hallsmore, quantstart & amp; livro “Negociação Algorítmica Bem Sucedida”
Este livro tem seções dedicadas à construção de um robusto backtester orientado a eventos. Ele orienta o leitor através de vários capítulos que explicarão sua escolha de idioma, os diferentes tipos de backtesting, a importância do backtesting orientado a eventos e como codificar o backtester.
Michael introduz o leitor às diferentes classes necessárias em um projeto orientado a objetos. Ele também ensina o leitor a construir um banco de dados mestre de títulos. É aqui que você verá como a arquitetura do sistema da QuantInsti se encaixa.
Nota: Você precisará comprar o livro dele: “Successful Algorithmic Trading”, seu blog deixa de fora muita informação.
Passo 3: Volte para o TuringFinance.
O programa EPAT Reading “Successful Algorithmic Trading” & amp; codificando um backtester em um idioma diferente de sua escolha.
Você deve ir para um blog chamado TuringFinance e ler o artigo intitulado "Algorithmic Trading System Architecture" Por: Stuart Gordon Reid. Em seu post ele descreve a arquitetura seguindo as diretrizes dos padrões ISO / IEC / IEEE 42010 e padrão de descrição de arquitetura de engenharia de software.
Eu achei este post muito técnico e tem algumas ótimas idéias que você deve incorporar em sua própria arquitetura.
Uma captura de tela de seu post.
Etapa 4: Estude os sistemas de negociação de código aberto.
4.1) Quantopian.
Escusado será dizer que Quantopian deve ser adicionado a esta lista e tenho vergonha de dizer que não passei muito tempo usando sua plataforma (devido à minha escolha de idioma). Quantopian tem muitas vantagens, mas as que mais se destacam para mim são as seguintes:
Fácil de aprender Python Acesso gratuito a muitos conjuntos de dados Uma grande comunidade e competições Eu amo como eles hospedam a QuantCon!
Quantopian é os líderes de mercado neste campo e é amado por todos os quants! Seu projeto de código aberto está sob o nome de código Zipline e isso é um pouco sobre isso:
“O Zipline é o nosso mecanismo de código aberto que alimenta o backtester no IDE. Você pode ver o repositório de código no Github e contribuir com solicitações de pull para o projeto. Há um grupo do Google disponível para procurar ajuda e facilitar discussões. ”
Aqui está um link para sua documentação:
4.2) QuantConnect.
Para aqueles que não estão familiarizados com o QuantConnect, eles fornecem um mecanismo completo de negociação algorítmica de código aberto. Aqui está um link.
Você deve dar uma olhada no código deles, estudá-lo, & amp; dê-lhes louvor. Eles são competição de quantopianos.
Eu gostaria de aproveitar esta oportunidade para agradecer à equipe da QuantConnect por me deixar escolher seu cérebro e pelo serviço brilhante que eles fornecem.
Aqui está um link para sua documentação:
Observações finais:
Espero que este guia ajude os membros da comunidade. Eu gostaria de ter essa percepção 6 meses atrás quando comecei a codificar nosso sistema.
Eu gostaria de falar com a comunidade e perguntar: "Que bons cursos de negociação algorítmica você conhece?" Eu gostaria de escrever um post que analise o tópico e forneça uma classificação. Há alguma recomendação para criar um sistema de negociação totalmente automatizado que você gostaria de adicionar a este post?
Câmbio de Moedas.
Este é um artigo de acompanhamento no nosso post introdutório Algorithmic Trading 101. Espero que você tenha entendido os conceitos básicos de Algorithmic Trading e seus benefícios. Agora, vamos nos preparar para construir seu próprio sistema de negociação a partir do zero. Este artigo descreveria todos os passos necessários para criar seu primeiro sistema Algorithmic Trading. Nós usaremos nossa ferramenta favorita Amibroker para criar o Algoritmo de Negociação.
Pré-requisitos:
Conhecimento elementar de análise técnica. Experiência prática em Amibroker e AFL Coding.
Confira nossa série tutorial Amibroker aqui.
Etapa 1: formule seu plano de negociação.
O primeiro passo seria fazer uma lista de verificação dos parâmetros com base nos quais você toma suas decisões de negociação. Esses parâmetros devem ser algo que possa ser formulado em um Algoritmo, evitando estritamente elementos de intuição ou especulação. Pode ser tão simples quanto decisões baseadas no tempo, como a compra de um determinado estoque no primeiro dia de cada mês, ou decisões baseadas em análises técnicas, como a fuga da Trendline, com volume crescente. Você também deve planejar seu valor de investimento para cada transação, prazo para negociação, bem como o seu stoploss e metas. Depois de ter formulado o seu plano, você deve validá-lo contra um monte de ações para ver se ele realmente funciona. Este passo é muito importante antes de você pular para os próximos passos. Se o seu plano funcionar por 50% do tempo, com uma taxa de Risco-Recompensa de pelo menos 1: 2, então é bom convertê-lo em um Algoritmo.
Etapa 2: converta sua ideia em um algoritmo.
Em seguida, você deve começar a escrever um código para o seu plano de negociação formulado. Um código nada mais é do que um monte de declarações através das quais o computador pode entender sua lógica de compra / venda. Nós usaríamos o Amibroker Formula Language (AFL) para escrever Algoritmo de Negociação. É uma linguagem de programação de alto nível e muito fácil de entender se você começar do básico. Até mesmo uma pessoa sem experiência em programação pode aprender AFL e evitar gastos desnecessários em AFLs caras e prontas. Confira este post para o tutorial da AFL do zero. Suponhamos que você negocie com base no cruzamento de média móvel exponencial no período de tempo diário. Você compraria uma ação quando 50 EMA cruzassem 200 EMA abaixo e vendesse quando 50 EMA cruzassem 200 EMA de cima. Por uma questão de simplicidade, consideremos que é uma estratégia apenas de compra. Abaixo está o código AFL simples para essa lógica.
É assim que parece quando aplicado no gráfico:
Passo 3: Backtest seu algoritmo.
Backtesting é um processo para validar o desempenho do seu Algoritmo em Dados Históricos. Isso é algo semelhante ao que você fez na Etapa 1 manualmente. Amibroker tem um mecanismo de backtest muito poderoso que pode fazer isso em segundos. Você só precisa importar dados históricos de seus scripts favoritos para o Amibroker. Confira este link para fazer o download dos dados intraday de 1 minuto para Nifty e Banknifty. A fim de entender o processo detalhado de backtesting na Amibroker, por favor, consulte o link abaixo da documentação oficial:
Para backtest esta estratégia de Crossover da EMA, usaremos o NSE Nifty como nosso scrip preferido, com o capital inicial de 200.000 rúpias. Digamos que compramos 2 lotes (150 nos) por transação. Uma vez que você backtest esta estratégia, você receberá um relatório detalhado que inclui o seu anual CAGR, Drawdown, Lucro Líquido / Perda% etc. Você pode entender vários parâmetros no relatório Amibroker Backtest aqui.
Комментариев нет:
Отправить комментарий