Robôs de negociação com código aberto.
Sob as regras do campeonato, cada participante pode enviar um Expert Advisor como um código-fonte MQL5 ou um arquivo EX5 executável. A grande maioria dos participantes, é claro, não deseja divulgar sua idéia comercial implementada no robô comercial. No entanto, todos os anos, alguns dos participantes do Campeonato publicam o código-fonte dos seus consultores especializados, e qualquer um pode baixar o código de um robô e ver o que está nele. Decidimos publicar alguns detalhes desses Expert Advisors.
Doze participantes marcaram uma opção em seus Perfis para permitir que qualquer pessoa baixasse seu robô comercial como EX5 ou MQ5. Preparamos um gráfico especial semelhante ao da página inicial do Campeonato, mostrando mudanças no Patrimônio Líquido de cada Consultor Especialista. Então, você pode ver o que aconteceu com a conta, na qual cada um dos Expert Advisors negociou.
Um dos doze consultores especializados ainda não fez um único comércio - este é o robô comercial de ShurikAn. Sua descrição diz que a negociação é baseada no indicador ZeroLag_MACD. Aparentemente, o código tem algum erro que não permite que ele seja comercializado. O mais interessante é que foi planejado como uma multi-moeda EA comercializando 8 pares de moedas. Infelizmente, o Expert Advisor está disponível como um EX5 e não podemos saber qual é o bug.
Outro participante SHOOTER777 apresentou seu consultor experiente complexo em um arquivo EX5. É descrito como um EA analisando os sinais de três indicadores em cinco prazos: D1, H4, H1, M5 e M1. Mais estranho que este robô tenha sido "silencioso" durante todo o primeiro mês da competição, e apenas no final de outubro entrou na batalha pelo prêmio, mas perdeu quase todo o depósito. É muito provável que seja outro exemplo de um erro fatal no código EA, mas não podemos saber o motivo exato, já que não temos seu código-fonte.
De todos os doze participantes desta revisão, dois são do maior interesse: enivid e GeorgMLNK. O mapa desses robôs dos participantes aumentou mais forte nos primeiros concursos, mas subseqüentemente não conseguiu manter seu sucesso. Agora, qualquer um pode executar esses robôs na história 01.01.2011-01.08.2011 para ver os resultados que eles mostraram nos testes preliminares automatizados.
Apresentamos os dados dos participantes em uma tabela especial, os valores dos parâmetros correspondem aos de 2011/11/21 6:00 am GMT.
Como você pode ver, cinco dos doze participantes apresentaram seus consultores especializados na forma de um arquivo EX5 executável, os sete restantes publicaram os códigos-fonte dos algoritmos de negociação na linguagem MQL5 para estratégias de negociação de programação. Por que apenas 12 dos 395 participantes permitiram a competição decidiram dar esse passo? São apenas 3% do total de participantes!
Presumivelmente, a maioria dos participantes não está disposta a divulgar suas EAs, não por causa de algum sistema de negociação sofisticado e avançado implementado nelas, mas pelo motivo oposto. A maioria deles explora os antigos e clássicos métodos conhecidos para a construção de sistemas de negociação. Assim, Igor Korepin (Xupypr) postou o código de seu robô comercial na Base do Código, logo após ele se destacar no topo. Como Igor disse em sua entrevista:
Seria uma vergonha para mim vender este Expert Advisor na sua forma atual. Foi afortunado o suficiente para aparecer no topo, e em antecipação a uma série de perguntas ou mesmo acusações (houve algumas), decidi abrir o código-fonte. Não é realmente valioso e certamente não é projetado para uso em contas reais! Posso dizer que esta EA é a minha primeira tentativa.
Outra observação interessante - 6 participantes, ou seja, metade são da Rússia, que é a nação mais representada no Campeonato. Mas apenas dois deles abriram o código-fonte de seus programas. Um deles, Zyama, está usando uma versão aprimorada de seu ATC 2010 Expert Advisor. Zyama não publicou o código-fonte do robô 2010, mas sua versão atual está disponível publicamente. O segundo participante é GeorgMLNK, que criou seu robô comercial utilizando o MQL5 Wizard. Talvez seja por isso que ele decidiu publicar seu código-fonte.
Um participante da Ucrânia Andrei Moraru (enivid) em sua entrevista explicou por que ele decidiu publicar o código de sua EA:
A estratégia é muito boa e vale a pena compartilhar, eu acho. Costumo compartilhar minhas obras MQL4 / 5 que considero dignas. Isso ajuda a melhorá-los consideravelmente. E eu acho que devo devolver algo, caso eu use o trabalho de outra pessoa.
Ele pode estar certo! Um participante do Reino Unido e criou o seu Consultor Especial com base na EA por Andrey Voitenko, que também estava disponível para todos os interessados em seu formulário de origem. Ele tentou criar uma versão multi-moeda do robô Andrey. A modificação foi bem sucedida, mas os resultados comerciais não são impressionantes.
Ao compartilhar algo com os outros, um comerciante pode obter algo mais valioso como resultado. Este comerciante pode aprender as opiniões dos outros e explorar as experiências dos outros, o que pode economizar tempo considerável e ajudar a encontrar seu próprio sistema comercial. Bem, todos podem encontrar algo para si no mercado.
Nós fornecemos aqui uma breve revisão, e você pode tirar suas próprias conclusões a partir dela.
Entrevista com Boris Odintsov (bobsley) é a última no projeto ATC Champions League. Boris ganhou o Automated Trading Championship 2010 - o primeiro Campeonato realizado para os Expert Advisors na nova linguagem MQL5. Tendo aparecido nos dez melhores já na primeira semana do ATC 2010, sua EA chegou ao final e ganhou US $ 77.000. Este ano, Boris participa da competição com o mesmo Expert Advisor com configurações modificadas. Talvez o robô ainda seja capaz de repetir o seu sucesso.
Relatório da Oitava Semana.
Na oitava semana a diferença entre o primeiro e o décimo lugares no TOP-10 aumentou e ultrapassou os US $ 90.000. Podemos dizer que o objetivo principal dos últimos cinco dias de negociação não era ganhar dinheiro, mas preservar o lucro já obtido. Esta missão acabou por ser impossível para Expert Advisors multi-moeda. O valor patrimonial comum de ias e yyy999 é menor que o patrimônio líquido do líder atual lf8749, e o participante não utilizado deixou completamente o TOP-10. Ao mesmo tempo, Xupypr ocupou um segundo lugar.
Como fazer um robô comercial em nenhum momento.
Para fazer um robô de negociação, você precisa de um sistema de comércio.
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 rigoroso que possa ser apresentado sob a 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. Livros e fóruns de comerciantes 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 web especiais são criados apenas para ganhar 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 de uma criação do sistema comercial. 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.
Trading Robots 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. Descreveremos apenas algumas das principais.
A primeira abordagem baseia-se em matemática. Um desenvolvedor tenta criar uma espécie de equação que considere muitos fatores. Esta abordagem baseia-se na firme convicção de que os movimentos de preços são gerenciados por um modelo que pode ser encontrado usando os 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 baseia-se na tentativa de criar uma "caixa preta" baseada em redes neurais com o uso das ferramentas pré-fabricadas amplamente disponíveis em pacotes especiais de software e 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 comerciante deve conhecer os conceitos básicos de indicadores técnicos, possuir uma capacidade para preparar dados de preços 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 dos seus esforços, então.
Mas «sem dores, sem ganhos». Na maioria dos casos, os programadores começam a criar toda a infra-estrutura 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 desta abordagem decorre de suas vantagens: você não conhece os princípios de operação do seu robô comercial 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 negociação 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, em primeiro lugar, você pode começar com os Expert Advisors, fabricados em linha, negociando robôs da biblioteca gratuita do 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 este 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 com base na combinação de sinais simples já existentes do MQL5 Wizard set. Você pode testar e desenvolver sua intuição comercial, classificando 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 os parâmetros de entrada que um sistema de negociação tem, mais fácil será montar. 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 apresenta volatilidade dramática no caso de mudanças no 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 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, 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 esses sistemas não contêm nada de especial. Geralmente, 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 de código de robô comercial disponíveis e tentar usá-los corretamente com vários símbolos e prazos. Outro exemplo popular pode ser mencionado aqui: "Você não gosta de gatos? Você simplesmente não sabe como cozinhar!" É 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 desvie um pouco do assunto, devo mencionar os lendários comerciantes de tartarugas que negociaram com êxito em múltiplos 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 o comércio manual dificilmente podem ser formalizadas e transcritas 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 mais tempo do que um robô de negociação obtido como resultado de um ajuste. Podemos dizer que o Grail é uma idéia de trabalho e ajuste correto dos parâmetros realizados de tempos em tempos nos momentos de mudanças nas condições do 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 o teste automático é um lucro obtido por oito meses de teste. 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.
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 estiver corretamente 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 o desempenho ideal e, finalmente, como colocar seu sistema em uso.
Código fonte do sistema de negociação automatizado
Esta página é patrocinada pela Wisdom Trading, sistemas de negociação de futuros e corretor de mercado global. Eles oferecem sistemas de negociação todos codificados para seus clientes e executam o Trading Blox, que representa uma grande parte do código neste site.
Biblioteca de códigos.
O código de negociação do sistema é disseminado em vários posts, pode ser uma boa idéia consolidá-los todos em um único lugar (aqui) antes que tudo se torne um pouco confuso!
Eu também escrevo mensalmente para a revista Análise Técnica de Ações e Commodities (TASC) na seção Dicas do Trader (principalmente o código Trading Blox).
Encontre tudo abaixo para sua leitura:
& # 8212; Revista TASC Traders & # 8217; Dicas & # 8212;
TASC Traders Tips (Abril de 2010): Indicador de Tendência de Preço de Volume Modificado no Excel.
No artigo “Indicador de tendência de preço de volume modificado” nesta edição, o autor David Hawkins discute uma modificação do indicador de tendência de preço de volume (VPT), já baseado no indicador de volume em balanço originalmente desenvolvido por Joseph Granville.
Em Suavização do Bollinger% b & # 8221; artigo, autor Sylvain Vervoort explica como remover o ruído do tradicional indicador% b, usado para identificar pontos de viragem e divergências.
Em "Índices de negociação com a média móvel do casco" nessa edição, o autor Max Gardner explica como usar a média móvel do casco para o timing de mercado de longo prazo.
Teste de Bootstrap para back-testing computação de significância estatística.
Implementação do teste bootstrap conforme descrito no livro de David Aronson: Análise Técnica Baseada em Evidências (link amazon)
& # 8212; API do CSI Unfair Advantage & # 8212;
Documentação da função da API RetrieveBackAdjustedContract2.
Guia de referência sobre esta função essencial, tirada do documento CSI API.
Recuperar contrato futuro de back-adjusted.
Algum exemplo de código em C # usando a API para acessar uma das funções mais importantes para recuperar qualquer contrato futuro com qualquer tipo de back-adjustment oferecido pela CSI.
Extrator de Contratos Individuais CSI.
Uma utilidade para extrair contratos individuais do banco de dados Advantage Unfair da CSI & # 8217; em arquivos de texto simples.
& # 8212; Negociação Blox & # 8212;
Variação no filtro clássico de portfólio MACD, usando o indicador Mediano em movimento em vez da média móvel padrão para a média rápida.
Indicador Vortex Original.
Implementação do indicador Vortex.
Indicadores melhorados Vortex e AVX e sistema AVX.
O Vortex Indicator original tinha uma falha (manuseio de lacunas para mercados não-Forex) e não usava uma média móvel exponencial para suavização. Esta é a minha versão melhorada com um sistema básico de reversão usando-a para entradas / saídas.
link para postagem original | link para arquivo zip (contendo: Vortex Indicator & # 038; arquivo de bloco auxiliar AVX (tbx), bloco de saída de entrada AVX (tbx), sistema AVX (tbs))
Implementa um filtro que permite rejeitar / aceitar negócios com base no nível de volatilidade em comparação com os níveis históricos.
Implementação Walk-Forward do Modelo de Espaço Alavancagem de Vince.
Utiliza o pacote LSPM R (por Josh Ulrich) em uma abordagem progressiva para permitir uma metodologia de teste de teste adaptativo.
O e-ratio é uma maneira prática de avaliar a borda de um componente específico de um sistema sem ter que testar o sistema como um todo (ou seja, borda do sinal de entrada somente).
link para postagem original (inclui todos os trechos de código e lógica necessários)
& # 8212; TradersStudio & # 8212;
cálculo do e-ratio para o sistema Donchian Channel Breakout.
Este código contém o código genérico necessário para calcular o rácio e, bem como uma implementação para aplicar o cálculo a um sinal de entrada Breakout do canal de Donchian.
link para postagem original | link para o arquivo zip (contendo Código TS do Indicador de Canal Donchian, código TS do Relatório de Comércio Personalizado, código TS do Sistema de Compra, código TS de Venda do Sistema, macro e-ratio Excel (arquivo de texto), pasta de trabalho de exemplo do Excel)
Atualizações gratuitas.
Posts populares.
Procure o blog Au. Tra. Sy.
Global Futures Broker.
Blog Au. Tra. Sy, pesquisa e desenvolvimento de Trading Sistemático, com um sabor de Trend Following.
Disclaimer: O desempenho passado não é necessariamente indicativo de resultados futuros. A negociação de futuros é complexa e apresenta o risco de perdas substanciais; como tal, pode não ser adequado para todos os investidores. O conteúdo deste site é fornecido apenas como informação geral e não deve ser considerado como recomendação de investimento. Todo o conteúdo do site, não deve ser interpretado como uma recomendação para comprar ou vender qualquer título ou instrumento financeiro, ou para participar de qualquer estratégia de negociação ou investimento em particular. As idéias expressas neste site são unicamente as opiniões do autor. O autor pode ou não ter uma posição em qualquer instrumento financeiro ou estratégia acima referida. Qualquer ação que você tome como resultado de informações ou análises neste site é, em última instância, de sua exclusiva responsabilidade.
RESULTADOS DE DESEMPENHO HIPOTÉTICOS TEM MUITAS LIMITAÇÕES INERENTES, ALGUNS DESCRITOS ABAIXO. NENHUMA REPRESENTAÇÃO ESTÁ FAZENDO QUE QUALQUER CONTA VOCE OU POSSIBILIDADE DE ALCANÇAR LUCROS OU PERDAS SIMILARES ÀOS MOSTRADOS; POR FAVOR, HÁ DIFERENÇAS FREQUENTEMENTE SHARP ENTRE RESULTADOS DE DESEMPENHO HIPOTÉTICOS E OS RESULTADOS REAIS REALIZADOS POR TODOS OS PROGRAMAS DE NEGOCIAÇÕES PARTICULARES. UMA DAS LIMITAÇÕES DOS RESULTADOS DE DESEMPENHO HIPOTÉTICOS É QUE ESTÃO GERALMENTE PREPARADAS COM O BENEFÍCIO DE HINDSIGHT. ADICIONALMENTE, A NEGOCIAÇÃO HIPOTÉTICA NÃO IMPORTA RISCOS FINANCEIROS, E NENHUM GRUPO DE NEGOCIAÇÃO HIPOTÉTICA PODE COMPLETAMENTE CONTA PARA O IMPACTO DO RISCO FINANCEIRO DE NEGOCIAÇÃO REAL. POR EXEMPLO, A CAPACIDADE DE PERDER OU DE ADESIVAR A UM PROGRAMA DE NEGOCIAÇÃO ESPECÍFICO EM ESPIRRO DE PERDAS DE NEGOCIAÇÃO SÃO PONTOS MATERIAIS QUE PODEM IGUALMENTE AFETAR EFECTUAR RESULTADOS REAIS DE NEGOCIAÇÃO. HÁ NOMBROSOS OUTROS FATORES RELACIONADOS COM OS MERCADOS EM GERAL OU NA EXECUÇÃO DE QUALQUER PROGRAMA ESPECÍFICO DE NEGOCIAÇÃO QUE NÃO PODE SER TOTALMENTE COMPTABILIZADO NA PREPARAÇÃO DE RESULTADOS DE DESEMPENHO HIPOTÉTICOS E TODOS OS QUE PODEMOS ADVERSAMENTE EFECTUAR OS RESULTADOS DE NEGOCIAÇÃO.
ESTAS TABELAS DE DESEMPENHO E RESULTADOS SÃO HIPOTÉTICOS NA NATUREZA E NÃO REPRESENTAM A NEGOCIAÇÃO EM CONTAS REAIS.
Código fonte do sistema de negociação automatizado
Obter através da App Store Leia esta publicação em nosso aplicativo!
Qual plataforma de negociação de código aberto está disponível.
Gostaria de compilar uma lista de plataformas de negociação de código aberto. Algo que daria uma visão geral e comparação de diferentes arquiteturas e abordagens.
A Quantopian fornece um ambiente de pesquisa gratuito, backtester e plataforma de negociação ao vivo (algos podem ser conectados a Interactive Brokers). O ambiente de desenvolvimento de algoritmos inclui ferramentas de colaboração realmente úteis e um depurador de código aberto. Eles fornecem toneladas de dados (até os fundamentos da Morningstar!) Gratuitamente.
A plataforma da Quantopian é construída em torno do Python e inclui toda a bondade de código aberto que a comunidade Python tem para oferecer (Pandas, NumPy, SciKitLearn, iPython Notebook, etc.)
Comerciantes vivos bem-sucedidos serão oferecidos pontos no Quantopian Managers Program, um hedge fundado por multidões.
O Zipline é o mecanismo de backtesting de código aberto que impulsiona o Quantopian. Ele fornece uma grande biblioteca de negociação algorítmica Python que se aproxima de como os sistemas de negociação ao vivo operam.
(divulgação completa: eu trabalho em Quantopian)
O QuantConnect fornece um projeto orientado por comunidade e código aberto chamado Lean. O projeto tem milhares de engenheiros que usam isso para criar estratégias orientadas a eventos, em qualquer dado de resolução, qualquer classe de mercado ou de ativos.
Nosso sistema modela alavancagem de margem e chamadas de margem, limitações de caixa, custos de transação. Nós mantemos um cashbook cheio de suas moedas. É tão próximo da realidade quanto possível. É 20x mais rápido que o Zipline e é executado em qualquer classe de ativos ou mercado. Nós fornecemos dados tick, second ou minute em Equities e Forex gratuitamente.
Eu sou um fundador @ QuantConnect.
Janeiro de 2017: agora oferecemos opções de opções intraday, futuros, Forex, CFD e US Backtesting de ações através do QuantConnect.
Lista de links / projetos eu tropecei ao fazer a pesquisa:
Para fundos hedge existe uma solução top famosa disponível publicamente (referenciada pelo wiki), mas não "open source". (Coisas de "código aberto" geralmente são colocadas por entusiastas sem pistas sobre negociação de algo real.)
Como um iniciante no AlgoTrading QuantConnect e Quantopian são excelentes para praticar e melhorar suas habilidades, mas para um Algo Trader sério, eles são basicamente inúteis. O Algo Trader requer flexibilidade para investigar idéias comerciais e adicionar ou remover bibliotecas ou partes do sistema que não funcionam. Você precisa reavaliar seus sistemas automaticamente e constantemente. Neste nível de negociação, Quantopian e Quantconnect são muito rígidos e completamente incapazes. Pode ser que daqui a alguns anos eles estarão em um nível onde é possível implementar novas ideias de negociação com bibliotecas mais avançadas. Estas duas startups estão à procura de dinheiro, simples e simples. Se você tem desenvolvido algos que são realmente rentáveis e você está no setor de negociação. Se você trabalhou com os Big Boys, Hedge Funds, HFT e Trading, você saberá por que eu digo isso. Só tome cuidado, não coloque todos os ovos na mesma cesta.
QuantConnect e Quantopian foram as primeiras plataformas de negociação algorítmica que se tornaram disponíveis e são as mais avançadas (embora precisem de muito mais trabalho para um trader profissional, elas são um bom ponto de partida).
Este é um mercado emergente, muitas startups estão aumentando. Atualmente, novas plataformas estão disponíveis, por exemplo:
Cada plataforma tem características próprias, mas, no geral, são trabalhos em andamento. levará alguns anos a mais para poder ter uma plataforma de negociação estável em que você possa confiar e que ofereça tudo o que você precisa para uma negociação profissional.
Há este escrito por mim alguns anos atrás chamado autoStock. Vale a pena dar uma olhada.
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 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 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 o cérebro deles e pelo serviço brilhante que eles oferecem.
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?
Compartilhar isso:
Compartilhe esta entrada.
Você pode gostar também.
Bom artigo. Eu gostaria de ter cerca de 6 meses atrás. Eu uso QuantConnect porque eu sou um programador C #. Eu achei muito conveniente para poder baixar o teste de Lean e voltar localmente. Vasculhar seu código também é valioso. Eles também fizeram um acordo com a Tradier para negociações de US $ 1. Isso ajuda muito. Eu não sou tão saliente sobre os spreads e a execução do Tradier. O IB pode ser melhor para isso.
Vou dar uma olhada no curso que você mencionou.
Você não mencionou Quantocracy ou RBloggers. Ambos são recursos muito valiosos.
O que você usa para mapear os resultados dos testes de volta? Eu registro OHLC e valores de indicador para csv do evento OnData e estou realmente cansado de usar o Excel para traçar resultados. Eu gostaria de poder apontar um pacote de gráficos para um arquivo de dados e tê-lo apenas ir.
Você já tem um fornecedor de fluxo de ticks?
Eu tenho um pensamento sobre sistemas orientados a eventos. O problema com os eventos é que eles são assíncronos e latentes. Parece que eles são inevitáveis assim que você começa uma corretora envolvida, então eu tenho sonhado com um sistema mais streaming seguindo os princípios da programação funcional.
& # 8211; Injest um fluxo de carrapato ou bar.
& # 8211; Execute-o através de um processo de cálculo de indicadores, execução de análise ou ML e assim por diante.
& # 8211; Receba de volta um sinal.
& # 8211; Envie para o corretor para executar.
Então, em um fluxo separado.
& # 8211; Receba de volta uma resposta do corretor.
O problema, claro, é o estado. Eu tenho margem suficiente para fazer o trade? O que tem no meu portfólio? Como está se saindo? Geralmente, o broker api pode ser consultado para descobrir essas coisas, mas isso leva tempo e é assíncrono. Eu também estou olhando para extensões de Rx. Dessa forma, o sistema pode reagir a mudanças no sistema através do padrão observável.
Eventos são ótimos para cliques do mouse. Não é tão bom para processamento transacional de alto volume.
Esta é exatamente a abordagem que eu fiz com minhas próprias coisas. Essencialmente eu tenho um & # 8216; normal & # 8217; programa que envolve uma pequena parte que é acionada por eventos para falar com o intermediário (IB API). Agora, para o problema do estado. Você tem duas escolhas; obter estado do corretor, ou armazená-lo internamente atualizá-lo quando você receber um preenchimento de volta. Isso significa que há momentos em que você não conhece seu estado ou quando as duas fontes de estado estão potencialmente em conflito (dados incorretos ou atrasos). Parte disso depende da rapidez com que você negocia. A menos que você esteja negociando muito rapidamente, em seguida, pausar se você tiver um conflito de estado, ou você está incerto do estado, é melhor do que prosseguir sem conhecer o seu estado. Eu uso um banco de dados & # 8216; lock & # 8217; paradigma para lidar com isso.
Em relação a quase tudo o que você pediu, você está próximo da resposta em Reative Extension (Rx).
Com Rx indo de carrapatos para velas é trivial.
Indo de velas para indicadores é trivial.
Compor indicadores de outros indicadores é trivial.
Compor posições de indicadores é trivial.
Compor portfólios (como realizados ao longo do tempo) a partir de posições é trivial.
Simular o Modelo de Risco é trivial.
Voltar teste ou negociação ao vivo é simplesmente decidir entre uma transmissão ao vivo de dados ou uma repetição simulada de dados do banco de dados.
A execução é trivial.
A implementação é possível em tudo, de C # a F #, a JavaScript e C ++ em código quase idêntico.
A otimização é feita rapidamente porque o Rx puramente funcional é amplamente paralisável para a GPU.
É verdade que a otimização e a alimentação do efeito da otimização contínua de volta ao back-test não é trivial, mas, dado que é não-trivial de qualquer maneira, eu vou deixar que isso deslize 😉
Puramente Funcional (ou próximo a ele) Rx é, na minha opinião, a única maneira de lidar com a infra-estrutura desse problema.
Eu conheço o sistema que quero negociar. Eu não quero programar ou aprender algo que alguém já conhece. Então, quem posso contratar para pegar o sistema que eu quero usar e automatizá-lo. Ao automatizá-lo, quero dizer, não quero olhar para ele. Vou dar uma olhada nos resultados uma vez por semana e os negócios serão executados sem a minha atenção. Parece estranho para mim que, em 2016, seja preciso muito esforço para tomar um conjunto de regras e executar essas regras no meu corretor.
Eu sugiro inscrever-se com o Quantopian e, em seguida, encontrar alguém dentro da comunidade para construir a estratégia para você. Eles serão capazes de construí-lo para você dentro da plataforma de corretores IB e serão totalmente automatizados.
Deixe-me dizer, porém, que eu acho que você deve monitorá-lo de perto, e não apenas esquecê-lo para o & # 8221 ;.
Obter através da App Store Leia esta publicação em nosso aplicativo!
Qual plataforma de negociação de código aberto está disponível.
Gostaria de compilar uma lista de plataformas de negociação de código aberto. Algo que daria uma visão geral e comparação de diferentes arquiteturas e abordagens.
A Quantopian fornece um ambiente de pesquisa gratuito, backtester e plataforma de negociação ao vivo (algos podem ser conectados a Interactive Brokers). O ambiente de desenvolvimento de algoritmos inclui ferramentas de colaboração realmente úteis e um depurador de código aberto. Eles fornecem toneladas de dados (até os fundamentos da Morningstar!) Gratuitamente.
A plataforma da Quantopian é construída em torno do Python e inclui toda a bondade de código aberto que a comunidade Python tem para oferecer (Pandas, NumPy, SciKitLearn, iPython Notebook, etc.)
Comerciantes vivos bem-sucedidos serão oferecidos pontos no Quantopian Managers Program, um hedge fundado por multidões.
O Zipline é o mecanismo de backtesting de código aberto que impulsiona o Quantopian. Ele fornece uma grande biblioteca de negociação algorítmica Python que se aproxima de como os sistemas de negociação ao vivo operam.
(divulgação completa: eu trabalho em Quantopian)
O QuantConnect fornece um projeto orientado por comunidade e código aberto chamado Lean. O projeto tem milhares de engenheiros que usam isso para criar estratégias orientadas a eventos, em qualquer dado de resolução, qualquer classe de mercado ou de ativos.
Nosso sistema modela alavancagem de margem e chamadas de margem, limitações de caixa, custos de transação. Nós mantemos um cashbook cheio de suas moedas. É tão próximo da realidade quanto possível. É 20x mais rápido que o Zipline e é executado em qualquer classe de ativos ou mercado. Nós fornecemos dados tick, second ou minute em Equities e Forex gratuitamente.
Eu sou um fundador @ QuantConnect.
Janeiro de 2017: agora oferecemos opções de opções intraday, futuros, Forex, CFD e US Backtesting de ações através do QuantConnect.
Lista de links / projetos eu tropecei ao fazer a pesquisa:
Para fundos hedge existe uma solução top famosa disponível publicamente (referenciada pelo wiki), mas não "open source". (Coisas de "código aberto" geralmente são colocadas por entusiastas sem pistas sobre negociação de algo real.)
Como um iniciante no AlgoTrading QuantConnect e Quantopian são excelentes para praticar e melhorar suas habilidades, mas para um Algo Trader sério, eles são basicamente inúteis. O Algo Trader requer flexibilidade para investigar idéias comerciais e adicionar ou remover bibliotecas ou partes do sistema que não funcionam. Você precisa reavaliar seus sistemas automaticamente e constantemente. Neste nível de negociação, Quantopian e Quantconnect são muito rígidos e completamente incapazes. Pode ser que daqui a alguns anos eles estarão em um nível onde é possível implementar novas ideias de negociação com bibliotecas mais avançadas. Estas duas startups estão à procura de dinheiro, simples e simples. Se você tem desenvolvido algos que são realmente rentáveis e você está no setor de negociação. Se você trabalhou com os Big Boys, Hedge Funds, HFT e Trading, você saberá por que eu digo isso. Só tome cuidado, não coloque todos os ovos na mesma cesta.
QuantConnect e Quantopian foram as primeiras plataformas de negociação algorítmica que se tornaram disponíveis e são as mais avançadas (embora precisem de muito mais trabalho para um trader profissional, elas são um bom ponto de partida).
Este é um mercado emergente, muitas startups estão aumentando. Atualmente, novas plataformas estão disponíveis, por exemplo:
Cada plataforma tem características próprias, mas, no geral, são trabalhos em andamento. levará alguns anos a mais para poder ter uma plataforma de negociação estável em que você possa confiar e que ofereça tudo o que você precisa para uma negociação profissional.
Há este escrito por mim alguns anos atrás chamado autoStock. Vale a pena dar uma olhada.
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 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 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 o cérebro deles e pelo serviço brilhante que eles oferecem.
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?
Compartilhar isso:
Compartilhe esta entrada.
Você pode gostar também.
Bom artigo. Eu gostaria de ter cerca de 6 meses atrás. Eu uso QuantConnect porque eu sou um programador C #. Eu achei muito conveniente para poder baixar o teste de Lean e voltar localmente. Vasculhar seu código também é valioso. Eles também fizeram um acordo com a Tradier para negociações de US $ 1. Isso ajuda muito. Eu não sou tão saliente sobre os spreads e a execução do Tradier. O IB pode ser melhor para isso.
Vou dar uma olhada no curso que você mencionou.
Você não mencionou Quantocracy ou RBloggers. Ambos são recursos muito valiosos.
O que você usa para mapear os resultados dos testes de volta? Eu registro OHLC e valores de indicador para csv do evento OnData e estou realmente cansado de usar o Excel para traçar resultados. Eu gostaria de poder apontar um pacote de gráficos para um arquivo de dados e tê-lo apenas ir.
Você já tem um fornecedor de fluxo de ticks?
Eu tenho um pensamento sobre sistemas orientados a eventos. O problema com os eventos é que eles são assíncronos e latentes. Parece que eles são inevitáveis assim que você começa uma corretora envolvida, então eu tenho sonhado com um sistema mais streaming seguindo os princípios da programação funcional.
& # 8211; Injest um fluxo de carrapato ou bar.
& # 8211; Execute-o através de um processo de cálculo de indicadores, execução de análise ou ML e assim por diante.
& # 8211; Receba de volta um sinal.
& # 8211; Envie para o corretor para executar.
Então, em um fluxo separado.
& # 8211; Receba de volta uma resposta do corretor.
O problema, claro, é o estado. Eu tenho margem suficiente para fazer o trade? O que tem no meu portfólio? Como está se saindo? Geralmente, o broker api pode ser consultado para descobrir essas coisas, mas isso leva tempo e é assíncrono. Eu também estou olhando para extensões de Rx. Dessa forma, o sistema pode reagir a mudanças no sistema através do padrão observável.
Eventos são ótimos para cliques do mouse. Não é tão bom para processamento transacional de alto volume.
Esta é exatamente a abordagem que eu fiz com minhas próprias coisas. Essencialmente eu tenho um & # 8216; normal & # 8217; programa que envolve uma pequena parte que é acionada por eventos para falar com o intermediário (IB API). Agora, para o problema do estado. Você tem duas escolhas; obter estado do corretor, ou armazená-lo internamente atualizá-lo quando você receber um preenchimento de volta. Isso significa que há momentos em que você não conhece seu estado ou quando as duas fontes de estado estão potencialmente em conflito (dados incorretos ou atrasos). Parte disso depende da rapidez com que você negocia. A menos que você esteja negociando muito rapidamente, em seguida, pausar se você tiver um conflito de estado, ou você está incerto do estado, é melhor do que prosseguir sem conhecer o seu estado. Eu uso um banco de dados & # 8216; lock & # 8217; paradigma para lidar com isso.
Em relação a quase tudo o que você pediu, você está próximo da resposta em Reative Extension (Rx).
Com Rx indo de carrapatos para velas é trivial.
Indo de velas para indicadores é trivial.
Compor indicadores de outros indicadores é trivial.
Compor posições de indicadores é trivial.
Compor portfólios (como realizados ao longo do tempo) a partir de posições é trivial.
Simular o Modelo de Risco é trivial.
Voltar teste ou negociação ao vivo é simplesmente decidir entre uma transmissão ao vivo de dados ou uma repetição simulada de dados do banco de dados.
A execução é trivial.
A implementação é possível em tudo, de C # a F #, a JavaScript e C ++ em código quase idêntico.
A otimização é feita rapidamente porque o Rx puramente funcional é amplamente paralisável para a GPU.
É verdade que a otimização e a alimentação do efeito da otimização contínua de volta ao back-test não é trivial, mas, dado que é não-trivial de qualquer maneira, eu vou deixar que isso deslize 😉
Puramente Funcional (ou próximo a ele) Rx é, na minha opinião, a única maneira de lidar com a infra-estrutura desse problema.
Eu conheço o sistema que quero negociar. Eu não quero programar ou aprender algo que alguém já conhece. Então, quem posso contratar para pegar o sistema que eu quero usar e automatizá-lo. Ao automatizá-lo, quero dizer, não quero olhar para ele. Vou dar uma olhada nos resultados uma vez por semana e os negócios serão executados sem a minha atenção. Parece estranho para mim que, em 2016, seja preciso muito esforço para tomar um conjunto de regras e executar essas regras no meu corretor.
Eu sugiro inscrever-se com o Quantopian e, em seguida, encontrar alguém dentro da comunidade para construir a estratégia para você. Eles serão capazes de construí-lo para você dentro da plataforma de corretores IB e serão totalmente automatizados.
Deixe-me dizer, porém, que eu acho que você deve monitorá-lo de perto, e não apenas esquecê-lo para o & # 8221 ;.
No comments:
Post a Comment