среда, 2 мая 2018 г.

Como projetar sistema de negociação automatizado


Codificação de Sistemas de Negociação.


Por Justin Kuepper.


Como os sistemas de negociação automatizados são criados?


Este tutorial se concentrará na segunda e na terceira partes deste processo, onde suas regras são convertidas em um código que seu software de negociação pode entender e usar.


Vantagens e desvantagens.


Um sistema automatizado tira a emoção e o trabalho ocupado da negociação, o que permite que você se concentre em melhorar suas regras de estratégia e gerenciamento de dinheiro. Uma vez que um sistema lucrativo é desenvolvido, ele não requer nenhum trabalho de sua parte até que ele quebre, ou as condições do mercado exigem uma mudança. Desvantagens:


Se o sistema não for devidamente codificado e testado, grandes perdas podem ocorrer muito rapidamente. Às vezes é impossível colocar certas regras no código, o que dificulta o desenvolvimento de um sistema de negociação automatizado. Neste tutorial, você aprenderá como planejar e projetar um sistema de negociação automatizado, como converter esse design em código que seu computador entenderá, como testar seu plano para garantir um desempenho ideal e, finalmente, como colocar seu sistema em uso.


Sistemas de Negociação: Diferentes Mercados e Tipos.


Agora você deve estar familiarizado com alguns elementos comuns que compõem um sistema de negociação, bem como as vantagens e desvantagens de usá-los. Vamos basear-nos nesse conhecimento nesta seção para examinar quais mercados são adequados para sistemas de negociação e, em seguida, examinar mais detalhadamente os diferentes gêneros de sistemas de negociação.


Quais mercados funcionam melhor?


Os sistemas de negociação funcionam melhor em mercados estatisticamente previsíveis, com altos níveis de liquidez e baixos custos. Enquanto muitos comerciantes estão cientes do primeiro requisito, relativamente poucos apreciam que os custos desempenham um papel importante no sucesso. Custos baixos - incluindo comissões, spreads e derrapagens - geram mais oportunidades e maiores lucros.


O mercado acionário é o mais conhecido entre os investidores de varejo familiarizados com empresas de primeira linha. Enquanto os preços de longo prazo são impulsionados por investidores institucionais, a ação de preço de curto prazo é dominada por negociações automatizadas e day traders.


Existem vários fatores importantes a serem lembrados:


Diversidade Existem muitos tipos diferentes de ações com características muito diferentes, desde ações blue-chip estáveis ​​a ações voláteis no mercado de balcão. Isso gera muitas oportunidades para os comerciantes usando estratégias como arbitragem estatística. Comissões As comissões são relativamente baixas para a maioria das grandes ações, mas elas podem gerar rentabilidade ao longo do tempo. Os comerciantes devem estar cientes dos efeitos das comissões, desvios, spreads e outros fatores ao criar sistemas de negociação. Foco. Muitos sistemas de negociação de ações estão focados em parâmetros baseados em valor, como aqueles que identificam títulos subvalorizados em comparação com seu desempenho passado, seus pares ou o mercado em geral, bem como a arbitragem estatística.


O mercado de câmbio ou forex é o maior e mais líquido mercado do mundo. Entre governos, bancos e investidores institucionais, trilhões de dólares são negociados no mercado forex a cada dia, o que é uma grande atração para os comerciantes que usam sistemas de negociação.


Existem vários fatores importantes a serem lembrados:


Liquidez O mercado cambial tem maior liquidez do que qualquer outro mercado importante devido ao grande volume de transações. Isso torna o mercado muito atraente para os traders, já que eles podem facilmente escalar seus sistemas de negociação para quantias maiores em dólar. Custos Comerciantes forex não precisam pagar uma comissão, na maioria dos casos, mas há spreads a serem considerados. Os comerciantes devem considerar os spreads em vários pares de moedas e considerar negociar aqueles com spreads mais reduzidos para minimizar o custo. Opções limitadas. Há menos pares de moedas do que ações, o que significa que pode haver menos oportunidades para os operadores. Pares de moedas exóticas fornecem opções adicionais, mas eles tendem a ser muito mais arriscados do que os pares estabelecidos.


Os mercados de futuros são populares entre os traders devido aos seus altos níveis de liquidez e número de opções. Além disso, os mercados futuros permitem níveis mais altos de margem, ou alavancagem, do que muitos outros mercados, o que abre as portas para um maior potencial de ganhos.


Existem vários fatores importantes a serem lembrados:


Custos Os custos e spreads de comissão tendem a ser menores para os futuros do que para as ações, o que se traduz em maior lucratividade para os investidores que desenvolvem sistemas de negociação. Opções Existem mais contratos futuros do que pares de moedas, o que significa mais oportunidades para os traders, mas as ações ainda são as mais diversificadas. Alavancagem Alavancagem pode ser usada para amplificar ganhos, mas os comerciantes devem ter em mente que é uma faca de dois gumes que também pode amplificar as perdas.


Qual mercado é o melhor?


O melhor mercado depende do seu estilo de negociação e preferências individuais. Por exemplo, os comerciantes focados nos seguintes sistemas de tendência podem querer considerar o mercado forex, uma vez que ele tende a tender muito mais do que outros mercados; os interessados ​​em alavancar análises fundamentais em seus sistemas de negociação podem estar limitados a ações; e aqueles que buscam a maior alavancagem podem querer considerar o mercado futuro.


Tipos de sistemas de negociação.


Existem muitos tipos diferentes de sistemas de negociação e decidir sobre o tipo certo de sistema depende muito das suas próprias preferências.


Sistemas de negociação de arbitragem estatística estão entre os mais populares entre os comerciantes quantitativos. Esses sistemas de negociação são frequentemente construídos usando linguagens de programação como MATLAB®, R ou Python e plataformas de alavancagem como Quantopian ou QuantConnect para gerenciar a atividade de negociação. Mas, eles podem ser tão simples quanto o Microsoft Excel com dados históricos ou tão complexos quanto um aplicativo personalizado que faz interface com trocas.


Os sistemas de negociação orientados por análises técnicas são populares entre os investidores de varejo que buscam automatizar suas estratégias existentes. Muitas vezes, esses sistemas de negociação são construídos usando software fornecido por corretores, como MetaTrader ou TradeStation. Essas plataformas têm suas próprias linguagens de programação proprietárias que podem ser usadas para construir estratégias, mas essas estratégias são geralmente limitadas a indicadores técnicos.


As estratégias técnicas podem ser divididas em duas categorias:


Sistemas de Acompanhamento de Tendências. Os sistemas de negociação técnica mais comuns utilizam métodos de acompanhamento de tendência. Em sua forma mais fundamental, esse sistema simplesmente espera por um movimento significativo de preços e depois compra ou vende nessa direção. A desvantagem desses sistemas de negociação é que a tomada de decisões empíricas é necessária, os indicadores de atraso são necessários, pode haver efeitos inesperados e os mercados laterais podem eliminar quaisquer oportunidades por um período prolongado de tempo. Sistemas de tendência contrária. Os sistemas de tendência de venda são projetados para comprar na mínima mais baixa e vender na máxima alta. A maior diferença entre os sistemas de tendência de contração e de tendência é que os sistemas de tendência contrária não são autocorretores. Em outras palavras, não há tempo definido para sair de posições e há um potencial de queda ilimitado.


Outros sistemas de negociação.


Existem também muitos outros tipos de sistemas de negociação focados em estratégias mais avançadas, como redes neurais ou aprendizado de máquina. Embora esses sistemas de negociação estejam além do escopo deste tutorial, há muitas novas tecnologias de software livre sendo desenvolvidas que democratizaram esses conceitos avançados, como o TensorFlow do Google. Mas as redes neurais e os aprendizados de máquina não são de forma alguma uma bala de prata para a lucratividade.


Na próxima seção, vamos dar uma olhada nos principais componentes de um sistema de negociação.


Como fazer um robô comercial em nenhum momento.


Para fazer um robô comercial, você precisa de um sistema de negociação.


Negociar nos mercados financeiros envolve muitos riscos, incluindo o mais crítico - o risco de tomar uma decisão comercial errada. O sonho de todo comerciante é encontrar um robô comercial, que está sempre em boa forma e não sujeito a fraquezas humanas - medo, ganância e impaciência.


Cada recém-chegado quer obter ou criar um sistema de negociação claro e estrito que possa ser apresentado na forma de algoritmos e se livrar completamente das operações de rotina. É possível?


Um sistema de negociação é uma condição necessária para entrar no mercado e esse sistema deve ser lucrativo, é claro. Quando os recém-chegados chegam ao mercado, geralmente ficam sobrecarregados pela grande massa de informações difíceis de entender. Os fóruns de livros e traders podem fornecer alguma ajuda nesse caso.


Infelizmente, nem todos os autores são comerciantes bem-sucedidos e nem todos os traders bem-sucedidos escrevem livros. Muitos recursos especiais da Web são criados apenas para gerar lucro para seus proprietários, pois é muito mais difícil negociar seu próprio dinheiro do que emitir previsões e ensinar sistemas de negociação.


Cada comerciante deve passar de forma independente todos os estágios da criação de um sistema de negociação. Há um ditado popular que não importa qual sistema você usa para negociação, o principal é que você deve realmente negociar de acordo com esse sistema. Caso contrário, a negociação no mercado se transforma em uma aposta com um resultado previsível.


Negociação de robôs e Forex.


Acredita-se que o mercado Forex tenha uma grande liquidez. Além disso, permite negociar 24 horas por dia, ao contrário de muitos outros mercados. Portanto, muitos comerciantes tentam fazer robôs de negociação especialmente para o mercado Forex, uma vez que oferece um grande número de instrumentos de negociação.


No entanto, os céticos afirmam que todos os pares de moedas estão fortemente correlacionados entre si, proporcionando uma volatilidade muito baixa no mercado. Mas seus oponentes respondem que cada par de moedas tem suas próprias características e que a baixa volatilidade é compensada por uma grande alavancagem.


Em qualquer caso, os instrumentos de Forex são atraentes para a criação de robôs de negociação e a maioria dos defensores do comércio automatizado aprimora suas habilidades em pares de moedas.


Os terminais de negociação MetaTrader 4 e MetaTrader 5 são especialmente projetados para desenvolver facilmente sistemas de negociação automatizados, mas ao mesmo tempo sua interface também é conveniente para negociação manual.


Como começar a fazer um robô comercial?


Existem muitas abordagens para construir um sistema de negociação automatizado. Vamos descrever apenas alguns dos principais.


A primeira abordagem baseia-se em matemática. Um desenvolvedor tenta criar uma espécie de equação que considere muitos fatores. Essa abordagem baseia-se na firme crença de que os movimentos de preços são gerenciados por um modelo que pode ser encontrado usando dados históricos disponíveis.


Na maioria dos casos, os seguidores de tal abordagem sabem muito de matemática, mas não sabem nada sobre / não estão interessados ​​no mercado. O mercado é uma abstração pura, um tipo de jogo intelectual para eles. Essa abordagem geralmente leva a muitos anos de estudo e desenvolvimento, enquanto um resultado definido na forma de um sistema de negociação automatizado em funcionamento não é tão importante.


A segunda abordagem é baseada no estudo das leis de mercado. Nenhuma tentativa é feita para entender por que o preço sobe ou desce quando vários números de análise técnica aparecem em um gráfico. A vantagem dessa abordagem é que ela não requer nenhum conhecimento especial de matemática e não faz suposições sobre a força motriz do mercado.


É mais claro e conveniente quando se estuda negociação. É mais popular entre os comerciantes que receberam reconhecimento universal. A desvantagem da abordagem é a necessidade de rastrear constantemente todos os símbolos necessários.


Mais cedo ou mais tarde, um trader começa a considerar a automação de processos de negociação e a questão mais considerável aparece nesse estágio - a complexidade de formalizar regras de negociação ao tentar expressá-las na forma de algoritmos. Em alguns casos, os operadores que tentam encomendar um robô comercial não podem descrever as regras de negociação e encontrar pontos em comum com os programadores.


A terceira abordagem é baseada na tentativa de criar uma “caixa preta” baseada em redes neurais com o uso de ferramentas prontas amplamente disponíveis em softwares especiais e pacotes de matemática. A criação de um sistema de negociação automatizado com os elementos da inteligência artificial é uma tarefa empolgante e desafiadora, mesmo para os recém-chegados, já que não requer conhecimento profundo em matemática nem experiência em programação - tudo é feito usando recursos visuais.


Um trader deve conhecer os fundamentos dos indicadores técnicos, possuir a capacidade de preparar dados de preço necessários e experiência em algum pacote definido para trabalhar com redes neurais. A principal desvantagem dessa abordagem é que um robô de negociação obtido usando essas ferramentas especializadas para trabalhar com redes neurais é, na verdade, uma "caixa preta". Os comerciantes não conhecem seus princípios de funcionamento e, geralmente, é impossível prever qual fase do mercado será a mais problemática para o robô.


Os programadores geralmente escolhem a quarta abordagem - eles começam a fazer um robô de negociação desde o começo sem gastar tempo para negociação manual. Por que negociar manualmente? Você pode fazer um robô passar alguns meses e colher os benefícios de seus esforços.


Mas «sem dores, sem ganhos». Na maioria dos casos, os programadores começam a criar toda a infraestrutura necessária usando uma linguagem de programação familiar, em vez de apenas fazer um robô comercial - obter e processar dados de preços, representação visual de gráficos e indicadores, meios personalizados de testar estratégias em dados históricos e assim por diante.


Eles ganham muita experiência no processo. Mas na maioria dos casos, essa experiência não os aproxima do objetivo final - a criação de um sistema de negociação automatizado. E mesmo que um robô comercial seja criado, não há garantias de que ele será lucrativo. E se um programador quiser escrever outro sistema de negociação? Reestruturação profunda e novos erros de programação são inevitáveis.


Há também a quinta abordagem - comprar um sistema de negociação pronto na forma de um robô comercial. Neste caso, um comerciante atua como um operador ou um sintonizador. Essa abordagem economiza muito tempo (não é necessário aprender muitas coisas novas) e permite que os operadores entrem rapidamente no mundo da negociação automatizada.


A principal desvantagem dessa abordagem reside em suas vantagens - você não conhece os princípios de operação de seu robô de negociação e sua estrutura. E mesmo que um vendedor forneça uma descrição detalhada do sistema de negociação implementado, você nunca terá certeza disso.


No entanto, nenhuma das abordagens mencionadas pode lhe dar garantia absoluta, exceto um depósito bancário. Mas essa não é uma solução muito adequada para pessoas interessadas em negociar no mercado e maneiras de aumentar seus ativos privados.


Qual é a melhor abordagem para o comércio automatizado para um comerciante?


Cada uma das cinco abordagens descritas tem suas vantagens e corresponde a algum tipo definido de comerciante. É improvável que você escolha a primeira abordagem (descrição analítica do mercado) sem um bom histórico matemático. É igualmente improvável que você comece a fazer robôs comerciais baseados em redes neurais. No entanto, essas duas abordagens são muito estimulantes e proporcionam um bom exercício intelectual.


Abaixo, discutiremos apenas a segunda abordagem, que já é considerada a clássica. Essa é a abordagem geralmente escolhida pelos novos seguidores da negociação automatizada, já que a análise técnica continua sendo a principal área de conhecimento ao aprender noções básicas de negociação.


Outra vantagem da segunda abordagem é que depois de gastar algum tempo para negociação manual e obter o senso de mercado, você já terá uma boa compreensão das ferramentas de análise técnica. Além disso, você poderá programar estratégias de negociação ou criar redes neurais em um nível superior.


Os primeiros passos para fazer um robô comercial.


Para criar um sistema de negociação automatizado, você precisa de habilidades de programação e conhecimento de todos os meandros do processamento de solicitações comerciais. Mas primeiro você pode começar com os Expert Advisors já prontos - trocando robôs da biblioteca livre Code Base.


Faça o download de qualquer Expert Advisor (robô de negociação) e lance-o nos terminais de cliente do Strategy Tester do MetaTrader 4 ou MetaTrader 5. Selecione um intervalo de histórico mostrando uma tendência forte e um intervalo com um plano. Execute a otimização de um parâmetro de entrada do Expert Advisor e examine suas diferenças nesses dois intervalos.


Inicie um Expert Advisor com os parâmetros ideais para um plano em um intervalo de tendência e com os parâmetros ideais para uma tendência em um intervalo simples. Examine as diferenças nos resultados de negociação, distribuições de ofertas e outros parâmetros estatísticos. Como resultado, você saberá quanto o comportamento do seu sistema de negociação pode variar quando a situação do mercado mudar.


Seria melhor tentar várias estratégias de negociação padrão usando esse método em diferentes partes da história e vários símbolos. Tal teste impede a instalação de um sistema de negociação para algum intervalo histórico definido e fornece uma melhor compreensão dos sistemas de tendência e de tendência contrária.


O próximo passo seria criar sistemas de negociação mais complexos, baseados na combinação de sinais simples já existentes do MQL5 Wizard set. Você pode testar e desenvolver sua intuição comercial, selecionando sinais ruins de um sistema usando um filtro baseado em outro sistema sem meios de programação.


O principal aqui é não superar demais. Quanto mais parâmetros de entrada um sistema de negociação tiver, mais fácil será o ajuste. Houve muitas discussões sobre as diferenças entre otimização e adaptação. Não há soluções amplamente aceitas aqui. Mas a visualização dos resultados de teste / otimização e seu próprio bom senso podem ajudá-lo.


Aprenda a identificar os parâmetros de entrada mais críticos que afetam seu sistema de negociação de todo o conjunto de dados de entrada. Não preste muita atenção aos parâmetros secundários que levam tempo durante a otimização, mas não afetam a própria lógica do sistema. Lembre-se de que um bom sistema de negociação sempre demonstra um pequeno movimento livre de parâmetros secundários, mas não exibe uma volatilidade dramática no caso de mudanças de mercado insignificantes.


Você pode gastar tanto tempo nesta fase, como desejar, até ter certeza de que pode entender qualquer estratégia de negociação examinando os resultados de teste e otimização. O conhecimento dos pontos fortes e fracos dos sistemas padrão permitirá que você esteja mais bem preparado ao criar seu próprio robô comercial.


Programando um robô de negociação.


Suponha que você tenha aprendido / esteja aprendendo a linguagem de programação MQL4 ou MQL5 e agora você está pronto para escrever seu primeiro Expert Advisor para o terminal do cliente MetaTrader. Vários casos são possíveis aqui.


Primeiro, você pode examinar vários robôs comerciais prontos descritos nos artigos para entender melhor as complexidades de programação.


Segundo, você pode fazer perguntas sobre MQL4munity ou MQL5munity, se tiver algum problema não resolvido. Participantes experientes da comunidade geralmente ajudam os recém-chegados a mostrar sincero interesse pelo assunto.


Terceiro, você pode solicitar a melhoria ou o desenvolvimento de um Expert Advisor ou um indicador no serviço Jobs, caso não seja capaz de criar um programa necessário por conta própria. Mas mesmo que você faça um pedido por meio do serviço freelancer, você deve ter alguma idéia sobre o teste de estratégia para encontrar um idioma comum com um desenvolvedor.


Além disso, o conhecimento básico de uma linguagem de programação permite implementar pequenas correções e alterações no código depois que o trabalho já foi concluído. Afinal de contas, não seria muito conveniente chamar um programador para corrigir todos os pequenos problemas que você encontrar. Seria muito mais fácil e rápido corrigi-lo sozinho.


Não há necessidade de reinventar a roda.


Como encontrar sua própria estratégia de negociação, ou pelo menos em que direção você deve focar sua busca? Todos os comerciantes protegem seus próprios sistemas de negociação, se tiverem um. Todos os recém-chegados querem criar um sistema lucrativo ou obter um sistema pronto. Ao mesmo tempo, qualquer solução obtida parece ser muito simples em comparação com as idéias dos recém-chegados sobre um sistema de comércio genuíno.


Os homens do exército em todo o mundo são propensos a níveis excessivos de sigilo. Há muitas piadas sobre isso, incluindo a seguinte: "O segredo militar não está no que você está estudando, - um oficial diz aos estudantes das escolas militares, - mas no fato de que exatamente você está estudando isso". A situação dos sistemas de negociação é semelhante: a maioria dos traders usa idéias de negociação simples e conhecidas com pequenas modificações, por exemplo, adicionando o Trailing Stop ou confirmações de indicadores de tendência.


Existem muitos fóruns de traders com acesso limitado, onde os participantes unem seus esforços para desenvolver ou melhorar alguns sistemas de negociação secretos. O mais interessante é que tais sistemas não contêm nada de especial. Normalmente, uma idéia bem conhecida (como "comércio com a tendência") é usada como base. Em seguida, ele é aperfeiçoado com alguns novos indicadores desconhecidos do público em geral.


Portanto, você pode facilmente obter códigos-fonte de robôs comerciais e tentar usá-los corretamente com vários símbolos e cronogramas. Outro ditado popular pode ser mencionado aqui: "Você não gosta de gatos? Você só não sabe como cozinhá-los!" É difícil acreditar, mas a probabilidade de você desenvolver algo realmente novo é muito pequena. O principal aqui é criar um sistema usando os ingredientes disponíveis. Não pense que alguns gênios tenham acesso a alguns sistemas secretos dos laboratórios da NASA. Esse é o segredo do Graal.


Apenas alguns poucos conseguirão passar.


Então, por que ninguém usa idéias de negociação, se elas estão literalmente ao alcance da mão? A resposta provavelmente está na psicologia humana. O pessoal de muitos bancos e grandes fundos de investimento inclui comerciantes realizando acordos de acordo com regras estritas e dentro de volumes limitados. Mas, por alguns motivos, apenas alguns traders institucionais deixam suas empresas e começam a negociar usando seu próprio dinheiro.


Acontece que você precisa não apenas de uma estratégia de negociação, mas também da disciplina de ferro para segui-la. Muitos comerciantes descobriram com pesar que eles também têm os mesmos problemas psicológicos descritos nos livros. Depois de perceber que o pior inimigo dos comerciantes são eles mesmos, um recém-chegado começa a pensar em fazer um robô comercial para eliminar um fardo psicológico.


Embora eu me afaste ligeiramente do assunto, devo mencionar os lendários comerciantes de tartarugas que negociaram com sucesso em vários mercados no final do século XX. Leia "Way of the Turtle" e você verá que a coisa mais importante para um trader é uma autodisciplina e não um sistema secreto. Infelizmente, a maioria dos recém-chegados não será capaz de seguir uma estratégia lucrativa, mesmo que seja gratuita.


O problema é que a maioria das estratégias de negociação perfeitamente ajustadas para negociação manual dificilmente pode ser formalizada e transcrita para uma linguagem de programação. As estratégias que podem ser facilmente formalizadas (por exemplo, aquelas que envolvem a intersecção de duas médias móveis) são muito simples e exigem muitos refinamentos e melhorias, para que possam ser usadas na prática. Assim, uma ideia simples é gradualmente complicada por uma abundância de parâmetros externos que impedem um robô de negociação de entradas falsas e erros claramente visíveis para um desenvolvedor. Um problema de otimização de robôs de negociação surge. Esse processo não deve se transformar em uma otimização excessiva e em um intervalo de histórico específico.


Para resolver este problema, o teste direto usando os parâmetros do sistema obtidos foi implementado no terminal MetaTrader 5. Se os resultados dos testes forward não diferirem significativamente daqueles obtidos na seção de otimização, há uma probabilidade de que um robô comercial fique estável o suficiente por algum tempo após seu lançamento em uma conta de negociação. Um intervalo de tempo para a otimização de parâmetros e um valor real de "algum tempo" dependem de um determinado sistema de negociação.


Assim, a otimização de um robô de negociação antes de lançá-lo em uma conta de negociação lembra o desenrolar de um sling - quanto mais cuidadosamente desenrolamos um projétil do sling, mais ele voará e mais precisa será sua trajetória. Um robô de negociação completamente desenvolvido manterá um resultado positivo em uma conta de negociação por um tempo maior do que um robô de negociação obtido como resultado de um ajuste. Podemos dizer que o Graal é uma idéia de trabalho e ajuste correto de parâmetros realizados de tempos em tempos nos momentos de mudanças de condições de mercado.


Isto pode ser ilustrado pelos resultados do Campeonato de Negociação Automatizada, que já existe há muitos anos. Os Expert Advisors enviados por todos os participantes passam por testes automáticos no intervalo de tempo de janeiro até o final de julho. O principal requisito para passar no teste automático é um lucro obtido por oito meses de testes. Mas menos de metade dos robôs de negociação admitidos para o Campeonato continuam lucrativos depois de meses de trabalho autônomo.


Você também pode testar suas habilidades para fazer e ajustar seu robô de negociação para participar do Campeonato e obter os resultados dos testes avançados do seu Expert Advisor. Além disso, a participação é gratuita e os prêmios são impressionantes. Esperamos ver você lá!


Conclusão.


Comerciantes profissionais intraday passam muitas horas sentados em seus computadores e esperando o momento certo para fazer um acordo. Claro, eles não podem estar em boa forma o tempo todo.


A maioria dos comerciantes chega à conclusão de que suas ações violam suas próprias regras de negociação. Nem todos os sistemas de negociação podem ser completamente formalizados, mas mesmo esses sistemas podem, na maioria dos casos, adotar ferramentas adicionais, como indicadores, sistemas analíticos e filtros de sinais falsos.


Nós não fazemos nenhuma recomendação especial aqui sobre o aprendizado de linguagens MQL4 ou MQL5, pois há muitos outros artigos úteis sobre esse assunto. O objetivo deste artigo foi fornecer uma idéia inicial sobre como começar a fazer seu robô comercial para os terminais MetaTrader 4 e MetaTrader 5.


Esperamos que este artigo economize tempo para os recém-chegados e mostre a direção certa na difícil tarefa de desenvolver um sistema de negociação automatizado.


Traduzido do russo por MetaQuotes Software Corp.


Construindo Sistemas de Negociação Automatizada.


1ª edição.


Com uma introdução ao Visual C ++ 2005.


Acesso Institucional.


Verificação segura


Frete grátis.


Sem pedido mínimo.


Índice.


Capítulo 1 Introdução.


Seção I: Introdução ao Visual C ++ 2005.


Capítulo 2 O Framework.


Capítulo 3 Referências de Rastreamento.


Capítulo 4 Classes e Objetos.


Capítulo 5 Tipos de Referência.


Capítulo 6 Tipos de Valor.


Capítulo 7 Objetos não gerenciados.


Capítulo 8 Composição.


Capítulo 9 Propriedades.


Capítulo 10 Estruturas e Enumerações.


Capítulo 11 Herança.


Capítulo 12 Convertendo e lançando.


Capítulo 13 Sobrecarga do Operador.


Capítulo 14 Delegados e Eventos.


Capítulo 15 Arrays.


Capítulo 16 Gerando Números Aleatórios.


Capítulo 17 Tempo e Temporizadores.


Capítulo 18 Fluxos de Entrada e Saída.


Capítulo 19 Tratamento de Exceções.


Capítulo 20 Coleções.


Capítulo 21 STL / STL.


Capítulo 22 DataSets.


Capítulo 23 Conectando-se a bancos de dados.


Capítulo 24 Linguagem de Consulta Estruturada.


Capítulo 26 Protocolo de troca de informações financeiras.


Capítulo 27 Serialização.


Capítulo 28 Serviços do Windows.


Capítulo 29 Pacotes de configuração e instalação.


Seção II: Concorrência.


Capítulo 30 Threading.


Capítulo 31 Classes de Sincronização.


Capítulo 32 Sockets.


Seção III: Interoperabilidade e Conectividade.


Capítulo 33 Marshaling.


Capítulo 34 Ponteiros Internos e de Fixação.


Capítulo 35 Conectando-se a DLLs gerenciadas.


Capítulo 36 Conectando-se a DLLs COM (Component Object Model) com COM Interop.


Capítulo 37 Conectando-se a DLLs C ++ com os Serviços de Invocação de Plataforma.


Capítulo 38 Conectando ao Excel.


Capítulo 39 Conectando ao TraderAPI.


Capítulo 40 Conectando a XTAPIConnection_Example.


Seção IV: Sistemas de Negociação Automatizada.


Capítulo 41 Construindo Sistemas de Negociação.


Capítulo 42 Metodologia de Desenvolvimento do Sistema de Negociação K „V.


Capítulo 43 Classes Automated Trading System.


Capítulo 44 Single-Threaded, Technical Analysis System.


Capítulo 45 Padrão de Design do Produtor / Consumidor.


Capítulo 46 Multithreaded, Statistical Arbitrage System.


Descrição.


Nos próximos anos, as indústrias proprietárias de trading e hedge funds migrarão amplamente para sistemas automatizados de seleção e execução de transações. De fato, isso já está acontecendo. Embora vários livros de finanças forneçam código C ++ para derivativos de precificação e realizem cálculos numéricos, nenhum aborda o tópico de uma perspectiva de design do sistema. Este livro será dividido em duas seções - técnicas de programação e tecnologia ATS (automated trading system) - e ensinará projeto e desenvolvimento de sistemas financeiros desde o início usando o Microsoft Visual C ++ 2005. O MS Visual C ++ 2005 foi escolhido como a linguagem de implementação principalmente porque a maioria das empresas de trading e grandes bancos desenvolveram e continuam a desenvolver seus algoritmos proprietários em ISO C ++ e Visual C ++ fornece a maior flexibilidade para incorporar esses algoritmos legados em sistemas operacionais. Além disso, o Framework e o ambiente de desenvolvimento fornecem as melhores bibliotecas e ferramentas para o rápido desenvolvimento de sistemas de negociação. A primeira seção do livro explica detalhadamente o Visual C ++ 2005 e concentra-se no conhecimento de programação necessário para o desenvolvimento automatizado de sistemas de negociação, incluindo design orientado a objetos, delegados e eventos, enumerações, geração de números aleatórios, objetos de temporização e timer e gerenciamento de dados com STL. e coleções. Além disso, como a maioria dos códigos legados e de modelagem nos mercados financeiros é feita em ISO C ++, este livro analisa em profundidade vários tópicos avançados relacionados à interoperabilidade e gerenciamento de memória gerenciado / não gerenciado / COM. Além disso, este livro fornece dezenas de exemplos que ilustram o uso da conectividade de banco de dados com o ADO e um tratamento extensivo de SQL e FIX e XML / FIXML. Tópicos de programação avançada, como encadeamento, soquetes, bem como o uso de C ++ para conectar-se ao Excel, também são discutidos detalhadamente e suportados por exemplos. A segunda seção do livro explica as preocupações tecnológicas e conceitos de design para sistemas de negociação automatizados. Especificamente, os capítulos são dedicados ao manuseio de feeds de dados em tempo real, gerenciamento de pedidos no livro de pedidos de câmbio, seleção de posições e gerenciamento de riscos. Um. dll está incluído no livro que irá emular a conexão com uma API da indústria amplamente utilizada (XTAPI da Trading Technologies, Inc.) e fornecerá maneiras de testar algoritmos de gerenciamento de posição e ordem. Padrões de projeto são apresentados para sistemas de tomada de mercado baseados em análise técnica, bem como para sistemas de mercado usando spreads inter-mercado. Como todos os capítulos giram em torno de programação de computadores para engenharia financeira e desenvolvimento de sistemas de negociação, este livro educará traders, engenheiros financeiros, analistas quantitativos, estudantes de finanças quantitativas e até mesmo programadores experientes em questões tecnológicas que giram em torno do desenvolvimento de aplicativos financeiros em um Microsoft. ambiente e construção e implementação de sistemas e ferramentas de negociação em tempo real.


Características principais.


Ensina o design e o desenvolvimento do sistema financeiro desde o início usando o Microsoft Visual C ++ 2005.


Fornece dezenas de exemplos ilustrando as abordagens de programação no livro.


Leituras.


Audiência primária: engenheiros financeiros, analistas quantitativos, programadores em empresas comerciais; pós-graduandos em cursos e programas de engenharia financeira e mercados financeiros.


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 no comércio quantitativo, 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 utilizar 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 a documentação deles:


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 a equipe QuantConnect por me deixar escolher o cérebro deles e pelo serviço brilhante que eles oferecem.


Aqui está um link para a documentação deles:


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?


Melhore sua negociação e.


impulsione os lucros com nossa análise.


Technical Traders Ltd. ajuda você a identificar e lucrar mais com sua negociação. Como? Fornecendo configurações de comércio confirmadas e notificações em tempo real.


Não parece possível. Mas é com nossas estratégias de negociação algorítmica!


Não parece possível. Um sistema de negociação algorítmica com tanta - identificação de tendências, análise de ciclos, fluxos de volume do lado de compra / venda, múltiplas estratégias de negociação, entrada dinâmica, preços alvo e de parada e tecnologia de sinal ultrarrápida. Mas isso é. Na verdade, a plataforma de sistema algorítmico de negociação AlgoTrades é a única do seu tipo.


Não há mais procura de estoques, setores, commodities, índices ou leitura de opiniões do mercado. Algotrades faz toda a pesquisa, tempo e negociação para você usando nosso sistema de negociação algorítmica.


As estratégias comprovadas da AlgoTrades podem ser seguidas manualmente através do recebimento de alertas de texto por e-mail e SMS, ou podem ser 100% de troca de mãos-livres, é até você! Você pode ativar / desativar negociações automatizadas a qualquer momento, para que você esteja sempre no controle de seu destino.


Use o Algorithmic Trading para aumentar seu portfólio & # 038; Renda**


É quase impossível ter sistemas de negociação algorítmica tão ágeis e conservadores sem sacrificar benefícios ou desempenho. A AlgoTrades atinge esse objetivo. É uma realização de engenharia, tanto quanto de design.


Cada ponto de dados do sistema e regra de gerenciamento de comércio foram meticulosamente considerados e refinados. E é construído para um nível de precisão que uma grande instituição ou fundo de hedge teria. Como resultado, a AlgoTrades oferece negociações de baixo risco e alta probabilidade a cada mês. **


AlgoTrades pode ser um sistema de negociação 100% automático que negocia ao vivo dentro de sua conta de corretagem e é compatível com várias empresas de corretagem, ou você pode seguir manualmente cada negociação via e-mail e alertas de comércio de texto SMS.


Algoritmic Trading Made Simple & # 038; Eficaz.


Traders e investidores adoram a AlgoTrades, não apenas porque ela identifica tendências de mercado e ciclos ativos enquanto gerencia cada negócio para você; mas também porque o AlgoTrades é tão simples de usar. *


Nosso sistema de negociação algorítmica é construído para indivíduos que procuram ganhar mais renda. É um serviço de negociação All-In-One que aumentará seu desempenho e reduzirá a volatilidade do seu portfólio, além de permitir que você lucre com um mercado de ações em ascensão e queda. **


Controle seus investimentos dentro de sua auto-dirigida IRA.


Conhecimento é poder. Controle e diversidade são essenciais na construção da riqueza para a aposentadoria. IRAs autodirecionados oferecem controle completo na escolha de seus investimentos e lhe dão a liberdade de selecionar investimentos alternativos para gerar renda em IRAs tradicionais, IRAs de Roth e outros planos de poupança.


Investimento Inteligente Com Estratégias De Negociação Algorítmicas. Estava na hora!


Por meio de tecnologias recém-desenvolvidas, como nosso identificador de tendência, analisador de espectro de ciclo, fluxo de caixa de varejo e reversão de momentum de preço, podemos medir o ritmo do mercado de ações como nunca antes usando nossas estratégias de negociação algorítmicas proprietárias.


Durante a incerteza do mercado, o batimento cardíaco ou o pulso do mercado mudam dramaticamente. Nosso sistema de negociação algorítmica ajusta automaticamente suas estratégias de negociação algorítmica e técnicas de gerenciamento de posição para imitar a mudança nas condições de mercado.


A AlgoTrades identifica condições de mercado únicas a partir das quais pode lucrar. * Aplica então uma das suas muitas estratégias de negociação algorítmica, específicas para essa condição de mercado, e negocia e gere posições automaticamente. Pense nisso como uma equipe de profissionais especializados e especialistas em gerenciamento de risco trabalhando para você na velocidade da luz.


Negociação Automatizada em 5 Minutos Usando o Nosso Sistema de Negociação Algorítmica.


Este serviço de negociação de algoritmos tudo-em-um permite-lhe lucrar durante todas as condições do mercado (para cima, para baixo, para os lados). *


Seja você um investidor, um trader ativo ou um novo no mercado, a AlgoTrades tem cobertura para você. **


O AlgoTrades é um serviço de negociação algorítmica 100% automatizado que negocia ao vivo na sua conta de corretagem. Ou você pode seguir manualmente cada negociação, de qualquer forma, deixe que as estratégias de negociação algorítmica da AlgoTrades façam o trabalho para você.


CORRETORES COMPATÍVEIS PARA COMERCIANTES DOS EUA, CANADENSES E ULTRAMARINOS.


Sistemas automatizados de negociação para investidores experientes.


Ações, ETFs, & # 038; Estratégias de Negociação Algorítmica de Futuros.


Em um mundo dirigido pela manchete, com computadores de negociação algorítmica super rápida cuspindo ordens mais rápido do que qualquer um poderia responder a um boato, fato ou notícias de última hora, o que um comerciante ou investidor deve fazer?


Invista em uma estratégia sistemática e disciplinada, como as nossas Estratégias Algorítmicas de Negociação da AlgoTrades. Com base em um intervalo de seis meses, nossos sistemas de negociação algorítmica demonstraram uma forte correlação negativa com o mercado de ações durante os pullbacks e até mesmo com os mercados de bear de vários anos. *** Em outras palavras, ao longo de um período de seis meses, sistemas tendem a crescer sua conta de negociação, quando o mercado de ações tem vindo a diminuir. Criamos nossos algoritmos para capturar tendências em vários mercados, como o índice S & # 0; P500, o índice Dax, ações individuais e o índice de volatilidade do evento. Usando futuros, fundos negociados em bolsa (ETFs), ou ações, podemos aproveitar ao máximo as oscilações mensais do mercado de ações. Use nosso sistema de negociação algorítmica e você pode ter certeza de que possui alguns dos melhores sistemas de negociação automatizados que funcionam para você. *

Комментариев нет:

Отправить комментарий