Wednesday 7 February 2018

Desenvolver sistema de negociação automatizado


Desenvolvimento Automatizado do Sistema de Negociação com MATLAB.


Stuart Kozola, MathWorks.


Quer aprender como criar um sistema de negociação automatizado que pode lidar com várias contas de negociação, várias classes de ativos e comércio em vários locais de negociação? Simultaneamente?


Neste webinar, apresentaremos um exemplo de fluxo de trabalho para pesquisar, implementar, testar e implementar uma estratégia de negociação automatizada, oferecendo a máxima flexibilidade no que e com quem você troca. Você aprenderá como os produtos MATLAB® podem ser usados ​​para coleta de dados, análise e visualização de dados, desenvolvimento e calibração de modelos, teste de retorno, teste avançado, integração com sistemas existentes e, finalmente, implantação para negociação em tempo real. Examinamos cada uma das partes neste processo e veremos como o MATLAB fornece uma plataforma única que permite a solução eficiente de todas as partes desse problema.


Temas específicos incluem:


Opções de coleta de dados, incluindo dados diários históricos, intradiários e em tempo real Construção de modelos e prototipagem em MATLAB Teste e calibração de um modelo Teste avançado e validação do modelo Interação com bibliotecas e software existentes para execução comercial Implementação da aplicação final em vários ambientes, incluindo JAVA e Excel Tools para comércio de alta freqüência, incluindo computação paralela, GPUs e geração de código C do MATLAB.


Foco no produto.


Outros recursos.


Não iremos vender ou alugar suas informações pessoais de contato. Veja nossa política de privacidade para obter detalhes.


Você já iniciou sessão na sua Conta MathWorks. Por favor, pressione o & # 34; Enviar & # 34; botão para completar o processo.


Produtos relacionados.


Vídeos e Webinars relacionados.


Escolha o seu país.


Escolha o seu país para obter conteúdo traduzido, quando disponível, e veja eventos e ofertas locais. Com base na sua localização, recomendamos que você selecione:.


Você também pode selecionar um local da seguinte lista:


América Latina (Español) Canadá (Inglês) Estados Unidos (Inglês)


Bélgica (Inglês) Dinamarca (Inglês) Deutschland (Deutsch) España (Español) Finlândia (Inglês) França (Français) Irlanda (Inglês) Italia (Italiano) Luxemburgo (Inglês)


Holanda (Inglês) Noruega (Inglês) Österreich (Deutsch) Portugal (Inglês) Suécia (English) Suíça Deutsch English Français Reino Unido (Inglês)


Ásia-Pacífico.


Austrália (Inglês) Índia (Inglês) Nova Zelândia (Inglês) 中国 (简体 中文) 日本 (日本語) 한국 (한국어)


Explore produtos.


Experimente ou compre.


Aprenda a usar.


Obter Suporte.


Sobre o MathWorks.


Acelerando o ritmo da engenharia e da ciência.


MathWorks é o principal desenvolvedor de software de computação matemática para engenheiros e cientistas.


Como fazer um robô de negociação sem tempo.


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


A negociação nos mercados financeiros envolve muitos riscos, incluindo o mais crítico - o risco de tomar uma decisão comercial incorreta. O sonho de todos os comerciantes é 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 comércio é uma condição necessária para entrar no mercado e esse sistema deve ser lucrativo, é claro. Quando os recém-chegados chegam ao mercado, eles geralmente estão sobrecarregados com a 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 de sucesso e nem todos os comerciantes de sucesso 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 de que não importa o sistema que você usa para negociação, o principal é que você deve negociar de acordo com esse sistema. Caso contrário, a negociação no mercado se converte em uma aposta com um resultado previsível.


Trading Robots e Forex.


Espera-se que o mercado Forex tenha uma grande liquidez. Além disso, permite a negociação 24 horas por dia, ao contrário de muitos outros mercados. Portanto, muitos comerciantes tentam fazer robôs comerciais especialmente para o mercado Forex, pois oferece uma grande quantidade 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 possui características próprias e baixa volatilidade é compensada por uma grande alavanca.


Em qualquer caso, os instrumentos Forex são atraentes para fazer robôs comerciais e a maioria dos adeptos do comércio automatizado aprimoram suas habilidades em pares de moedas.


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


Como começar a fazer um robô de negociação?


Existem muitas abordagens para construir um sistema de negociação automatizado. Descreveremos apenas algumas das principais.


A primeira abordagem é baseada em matemática. Um desenvolvedor tenta criar uma espécie de equação que pode considerar 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 dessa abordagem conhecem muito 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. Esta abordagem geralmente leva a muitos anos de estudo e desenvolvimento, enquanto um resultado definitivo na forma de um sistema de negociação automatizado não é tão importante.


A segunda abordagem baseia-se no estudo das leis de mercado. Não são feitas tentativas para entender por que o preço subiu ou desce quando vários números de análise técnica aparecem em um gráfico. A vantagem desta abordagem é que não requer conhecimentos especiais de matemática e não faz suposições sobre a força motriz do mercado.


É mais claro e conveniente ao estudar comércio. É mais popular entre os comerciantes que receberam reconhecimento universal. A desvantagem da abordagem é a necessidade de acompanhar constantemente todos os símbolos necessários.


Mais cedo ou mais tarde, um comerciante começa a considerar a automação dos processos de negociação e a questão mais considerável aparece nesse estágio - a complexidade da formalização das regras de negociação ao tentar expressá-las sob a forma de algoritmos. Em alguns casos, os comerciantes que tentam solicitar um robô comercial não podem descrever as regras comerciais e encontrar um terreno 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 emocionante e desafiadora, mesmo para os recém-chegados, uma vez que não requer fundo matemático profundo, nem experiência de programação - tudo é feito usando auxílios 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 desta abordagem é que um robô comercial obtido usando essas ferramentas especializadas para trabalhar com redes neurais é na verdade uma "caixa preta". Os comerciantes não conhecem seus princípios de trabalho e, em geral, é impossível prever qual a fase de mercado que será o mais problemático para o robô.


Os programadores geralmente escolhem a quarta abordagem - eles começam a fazer um robô comercial desde o início, sem gastar tempo para negociação manual. Por que trocar 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 - criação de um sistema de negociação automatizado. E, mesmo se um robô comercial for criado, não há garantia de que seja lucrativo. E se um programador quiser escrever outro sistema comercial? Reestruturação profunda e novos erros de programação são inevitáveis.


Há também a quinta abordagem - comprando um sistema comercial pronto feito sob a forma de um robô comercial. Neste caso, um comerciante atua como operador ou sintonizador. Esta abordagem economiza muito tempo (não precisa aprender muitas coisas novas) e permite que os comerciantes 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 tenha fornecido uma descrição detalhada do sistema de negociação implementado, você nunca estará completamente seguro nele.


No entanto, nenhuma das abordagens mencionadas pode dar-lhe 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 a negociação automatizada de um comerciante?


Cada uma das cinco abordagens descritas tem suas vantagens e corresponde a algum tipo de comerciante definido. É 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 com base em redes neurais. No entanto, ambas as abordagens são muito emocionantes e proporcionam um bom exercício intelectual.


Abaixo, vamos discutir apenas a segunda abordagem, que já é considerada a clássica. Essa é a abordagem geralmente escolhida por novos seguidores do comércio automatizado, uma vez que a análise técnica continua a ser a área de conhecimento chave ao aprender noções básicas de negociação.


Outra vantagem da segunda abordagem é que depois de passar algum tempo para negociação manual e obter o senso do 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 na criação de um robô de negociação.


Para criar um sistema de negociação automatizado, você precisa de habilidades de programação e conhecimento de todas as complexidades do processamento de pedidos 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.


Baixe qualquer Consultor Especializado (robô comercial) e inicie-o nos terminais de clientes do Strategy Tester de MetaTrader 4 ou MetaTrader 5. Selecione um intervalo de histórico que mostre uma forte tendência e um intervalo com um plano. Execute a otimização de parâmetros de entrada do Expert Advisor e examine suas diferenças nesses dois intervalos.


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


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 operação de teste impede o ajuste de um sistema de negociação para algum intervalo de histórico definido e fornece uma melhor compreensão dos sistemas de tendência e contrapressão.


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 não é superar. 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 adequação. Não há soluções amplamente aceitas aqui. Mas a visualização de resultados de teste / otimização e seu próprio senso comum podem ajudá-lo.


Aprenda a identificar os parâmetros de entrada mais críticos que afetam seu sistema comercial 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, conforme desejar, até ter certeza de que pode entender qualquer estratégia de negociação que examine resultados de teste e otimização. O conhecimento de pontos fortes e fracos dos sistemas padrão permitirá que você esteja melhor preparado ao criar seu próprio robô comercial.


Programação de um robô de negociação.


Suponha que você tenha aprendido / esteja aprendendo linguagem de programação MQL4 ou MQL5 e agora você está pronto para escrever seu primeiro consultor especialista 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.


Em segundo lugar, você pode fazer perguntas sobre MQL4munity ou MQL5munity, se você tiver problemas não resolvidos. Os participantes da comunidade experientes geralmente ajudam os recém-chegados a mostrarem interesse sincero no assunto.


Em terceiro lugar, você pode solicitar imbricação ou desenvolvimento de um Consultor Especialista ou um indicador no serviço de Emprego, se você não conseguir escrever um programa necessário por conta própria. Mas, mesmo que você faça um pedido por meio do serviço freelance, você deve ter uma idéia sobre testes 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 consertar você mesmo.


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 concentrar sua pesquisa? Todos os comerciantes protegem seus próprios sistemas de negociação, se tiverem um. Todos os recém-chegados querem criar um sistema rentável ou obter um ready-made. 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 de todo o mundo são propensos a níveis excessivos de sigilo. Há muitas piadas sobre isso, incluindo o seguinte: "O segredo militar não está no que você está estudando, - um oficial diz aos estudantes da escola militar, - mas no fato de que exatamente você está estudando isso". A situação com os sistemas de negociação é bastante similar: a maioria dos comerciantes usa idéias comerciais simples e bem conhecidas com pequenas modificações, por exemplo, adicionando Trailing Stop ou confirmações de indicadores de tendência.


Há muitos fóruns de comerciantes com acesso limitado, onde os participantes se unem para desenvolver ou melhorar alguns sistemas comerciais 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. Então, é aperfeiçoado com alguns novos indicadores desconhecidos para o 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 de acreditar, mas a probabilidade de desenvolver algo realmente novo é muito pequena. O principal aqui é criar um sistema usando 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 os farão.


Então, por que ninguém usa idéias comerciais, se eles estão literalmente ao alcance do braço? A resposta provavelmente está na psicologia humana. A equipe de muitos bancos e grandes fundos de investimento inclui comerciantes que realizam negócios de acordo com regras rígidas e dentro de volumes limitados. Mas por algumas razões, apenas alguns comerciantes institucionais deixam suas empresas e começam a negociar usando seu próprio dinheiro.


Acontece que você precisa não só de uma estratégia de negociação, mas também da disciplina de ferro para segui-la. Muitos comerciantes descobriram com arrependimento 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 próprios, 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 comerciante é uma autodisciplina e não um sistema top secreto. Infelizmente, a maioria dos recém-chegados não conseguirá seguir uma estratégia rentável, mesmo que obtenha gratuitamente.


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, as que envolvem duas médias móveis "interseção") são muito simples e exigem muitos aprimoramentos e melhorias, para que possam ser usados ​​na prática. Assim, uma idéia simples é gradualmente complicada por uma abundância de parâmetros externos impedindo um robô comercial de entradas falsas e erros claramente visíveis para um desenvolvedor. Emerge uma questão de otimização de robô comercial. Este processo não deve se transformar em uma sobre-optimização e ajuste para 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 de teste direto não diferirem significativamente daqueles obtidos na seção de otimização, existe uma probabilidade de um robô comercial ser suficientemente estável por algum tempo após o lançamento em uma conta de negociação. Um comprimento de um intervalo para otimização de parâmetros e um valor real desse "algum tempo" depende de um determinado sistema de negociação.


Assim, a otimização de um robô comercial antes de iniciá-lo em uma conta comercial lembra de desenrolar uma funda - quanto mais cuidadosamente desenrolamos e lançamos um projétil da ardósia, mais longe voará e mais precisa será a trajetória dele. Um robô de negociação completamente desenvolvido manterá um resultado positivo em uma conta de negociação por mais tempo do que um robô comercial obtido como resultado de uma montagem. 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.


Isso pode ser ilustrado pelos resultados do Campeonato Automatizado de Negociação que é realizado por muitos anos já. Os assessores de especialistas enviados de 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 comerciais admitidos para o Campeonato continuam lucrativos após os meses de trabalho autônomo.


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


Conclusão.


Os comerciantes intradiários profissionais passam muitas horas sentados em seus computadores e esperando o momento certo para realizar 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ão fazemos recomendações especiais aqui sobre o aprendizado de línguas 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 pela MetaQuotes Software Corp.


Codificação de sistemas de negociação.


Por Justin Kuepper.


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


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


Vantagens e desvantagens.


Um sistema automatizado leva a emoção e ocupado - trabalhe fora da negociação, o que permite que você se concentre em melhorar sua estratégia e regras de gerenciamento de dinheiro. Uma vez que um sistema lucrativo é desenvolvido, 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 em 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 traduzir esse design para o código que seu computador irá entender, como testar seu plano para garantir um desempenho ótimo e, finalmente, como colocar seu sistema em uso.


Começando: Construindo um Sistema de Negociação Totalmente Automatizado.


Nos últimos 6 meses, fiquei focado no processo de construção da pilha de tecnologia completa de um sistema de negociação automatizado. Eu encontrei muitos desafios e aprendi muito sobre os dois métodos diferentes de backtesting (Vectorizado e Evento conduzido). Na minha jornada de construção de um backtester dirigido por um evento, surpreendi que o que você acabasse fosse perto da pilha de tecnologia completa necessária para construir uma estratégia, testá-la e executar a execução ao vivo.


O meu maior problema ao abordar o problema foi a falta de conhecimento. Olhei em muitos lugares para uma introdução à construção da tecnologia ou um blog que me guiaria. Encontrei alguns recursos que vou compartilhar com você hoje.


Para iniciantes:


Para os leitores novos para negociação quantitativa, eu recomendaria o livro de Ernie P. Chan intitulado: Negociação Quantitativa: como construir seu próprio negócio de negociação algorítmica. Este livro é o básico. Na verdade, é o primeiro livro que eu li em negociação quantitativa e, mesmo assim, achei muito básico, mas há algumas notas que você deveria 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-automáticas e totalmente automatizadas.


Um sistema semi-automatizado é adequado se você deseja fazer alguns negócios por semana. Ernie recomenda o uso de Matlab, R ou mesmo do Excel. Utilizei todas as 3 plataformas e este é o meu conselho:


Saltei Matlab, custou muito dinheiro e eu só consegui acesso aos laboratórios universitários. Não há muito material de treinamento como blogs ou livros que irão ensinar-lhe como codificar uma estratégia usando o Matlab. R tem toneladas de recursos que você pode usar para aprender a construir uma estratégia. Meu blog favorito abordando o tópico é: QuantStratTradeR executado por Ilya Kipnis. O Microsoft Excel é provavelmente o local onde você iniciará se você não tiver experiência de programação. Você pode usar o Excel para negociação semi-automatizada, mas não vai fazer o truque quando se trata de construir a pilha de tecnologia completa.


Quadro semi-automático pg 81.


Sistemas de negociação totalmente automatizados são para quando você deseja colocar negócios automaticamente com base em um feed de dados ao vivo. Eu codifiquei o meu em C #, QuantConnect também usa C #, QuantStart anda pelo leitor através da construção dele em Python, Quantopian usa Python, HFT provavelmente usará C ++. Java também é popular.


Estrutura de negociação totalmente automatizada pg 84.


Passo 1: Obter uma vantagem.


Faça o Programa Executivo em Negociação Algorítmica oferecido pela QuantInsti. Acabei de começar o curso e o primeiro conjunto de palestras foi na arquitetura do sistema. Isso me salvaria cerca de 3 meses de pesquisa se eu tivesse começado aqui. As palestras me acompanharam por cada componente que eu precisaria, bem como uma descrição detalhada do que cada componente precisa fazer. Abaixo está uma captura de tela de uma das suas lâminas utilizadas na apresentação:


Você também pode usar esse quadro geral ao avaliar outros sistemas de negociação automática.


No momento da escrita, estou apenas na terceira semana de palestras, mas estou confiante de que um profissional poderá construir uma estratégia de negociação totalmente automatizada que, com um pouco de polonês, possa ser transformada em um hedge fund 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.


O blog de Michael Hallsmore e o quantstart & amp; livro "Negociação Algorítmica de Sucesso"


Este livro possui seções dedicadas à construção de um backtester dirigido por eventos robustos. Ele dirige o leitor através de uma série de capítulos que irão explicar sua escolha de linguagem, os diferentes tipos de backtesting, a importância do backtesting dirigido a eventos e como codificar o backtester.


Michael apresenta o leitor às diferentes classes necessárias em um design orientado a objetos. Ele também ensina o leitor a construir um banco de dados mestre de valores mobiliários. É aqui que você verá como a arquitetura do sistema da QuantInsti se encaixa.


Nota: Você precisará comprar seu livro: "Successful Algorithmic Trading", seu blog deixa para fora muita informação.


Passo 3: Vire a TuringFinance.


O programa EPAT Leitura "Successful Algorithmic Trading" & amp; codificando um backtester em um idioma diferente da sua escolha.


Você deve se mudar para um blog chamado TuringFinance e ler o artigo intitulado "Algorithmic Trading System Architecture" Por: Stuart Gordon Reid. Em sua publicação, ele descreve a arquitetura seguindo as diretrizes dos padrões ISO / IEC / IEEE 42018 e padrão de descrição de arquitetura de engenharia de software.


Eu achei esta publicação muito técnica e tem algumas ótimas idéias que você deve incorporar na sua própria arquitetura.


Uma captura de tela de sua postagem.


Passo 4: Estudar sistemas de comércio aberto.


4.1) Quantopian.


Escusado será dizer que Quantopian deve ser adicionado a esta lista e estou com vergonha de dizer que não passei muito tempo usando sua plataforma (devido à minha escolha de linguagem). Quantopian tem muitas vantagens, mas as que melhoram 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 adoro como eles hospedam QuantCon!


Quantopian é líder de mercado neste campo e é amado por quants por toda parte! Seu projeto de código aberto está sob o nome de código Zipline e isso é um pouco sobre isso:


"Zipline é o nosso motor de código aberto que alimenta o backtester no IDE. Você pode ver o repositório de códigos no Github e contribuir com solicitações de envio para o projeto. Existe 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 a QuantConnect, eles fornecem um mecanismo de troca algorítmica de código aberto completo. Aqui está um link.


Você deve dar uma olhada em seu código, estudá-lo, & amp; dar-lhes elogios. Eles são competição de Quantopians.


Gostaria de aproveitar esta oportunidade para agradecer a equipe da QuantConnect por me deixar escolher seu cérebro e pelo brilhante serviço que eles fornecem.


Aqui está um link para sua documentação:


Observações finais:


Espero que este guia ajude os membros da comunidade. Eu queria ter essa visão 6 meses atrás, quando comecei a codificar nosso sistema.


Gostaria de chegar à comunidade e perguntar: "Quais bons cursos de negociação algorítmica você conhece?" Eu gostaria de escrever uma publicação que analisa o tópico e fornece uma classificação. Existem recomendações para a construção de um sistema de negociação totalmente automatizado que você gostaria de adicionar a esta publicação?


Compartilhar isso:


Compartilhe essa entrada.


Você pode gostar também.


Bom artigo. Eu gostaria de ter tido cerca de 6 meses atrás. Eu uso QuantConnect porque sou um programador C #. Achei muito conveniente poder fazer o download do teste Lean e back test localmente. Rummaging através do seu código também é valioso. Além disso, eles cortaram um acordo com a Trader por negócios de US $ 1. Isso ajuda muito. Não sou tão saliente sobre spreads e execução da Trader. O IB pode ser melhor para isso.


Vou dar uma olhada no curso que você mencionou.


Você não mencionou a Quantocracy ou RBloggers. Ambos são recursos muito valiosos.


O que você usa para traçar resultados de testes de volta? Eu logro os valores do OHLC e do indicador para csv do evento OnData e estou realmente cansado de usar o Excel para traçar os resultados. Gostaria de apontar um pacote de gráficos para um arquivo de dados e simplesmente ir.


Você ainda possui um fornecedor de caixas de seleção?


Tenho um pensamento sobre os sistemas dirigidos 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ê obtém uma corretora envolvida, então eu tenho sonhado com um sistema de streaming mais seguindo os princípios da programação funcional.


& # 8211; Injeste um fluxo de tiquetaque ou barra.


& # 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; Retornar um sinal.


& # 8211; Envie-o para o corretor para executar.


Em seguida, em um fluxo separado.


& # 8211; Receba uma resposta do corretor.


O problema, é claro, é o estado. Tenho margem suficiente para fazer o comércio? O que está no meu portfólio? Como está funcionando? Normalmente, o corretor api pode ser consultado para descobrir essas coisas, mas leva tempo e é assíncrono. Eu também estou olhando extensões Rx. Dessa forma, o sistema pode reagir às mudanças no sistema através do padrão observável.


Os eventos são ótimos para cliques no mouse. Não é tão bom para processamento transacional de alto volume.


Esta é exatamente a abordagem que tomei com minhas próprias coisas. Essencialmente, eu tenho um & # 8216; normal & # 8217; programa que envolve uma pequena parte que é conduzida a eventos para falar com o corretor (IB API). Agora, para o problema do estado. Você tem duas escolhas; obter o estado do corretor, ou armazená-lo internamente, atualizando-o quando você receber um preenchimento. 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 ruins ou atrasos). Parte disso depende da rapidez com que você troca. A menos que você esteja negociando com muita rapidez, então, pausando se você tiver um conflito de estado, ou você está incerto de estado, é melhor do que prosseguir sem saber o seu estado. Eu uso um banco de dados & # 8216; lock & # 8217; paradigma para lidar com isso.


Quanto a quase tudo o que você pediu, você está perto da resposta em Reactive Extension (Rx).


Com Rx indo de tiques para velas é trivial.


Passar de Velas para Indicadores é trivial.


Indicadores de composição de outros indicadores é trivial.


Escrever Posições de Indicadores é trivial.


Composição de Portfolios (como realizada ao longo do tempo) das Posições é trivial.


Simular o modelo de risco é trivial.


Back testing ou trading live é simplesmente decidir entre uma transmissão ao vivo de dados ou uma repetição simulada de dados do banco de dados.


Executar é trivial.


A implementação é possível em tudo, desde C # até F # para JavaScript para C ++ em código quase idêntico.


A otimização é feita rapidamente porque o Rx puramente funcional é massivamente paralisável ao GPU.


É certo que a otimização e a alimentação do efeito da otimização contínua de volta ao teste de back-back não é trivial, mas dado que não é trivial de qualquer maneira, eu irei deixar esse slide 😉


Puramente funcional (ou perto dela) A Rx é, na minha opinião, a única maneira de abordar a infraestrutura desse problema.


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 levar o sistema que eu quero usar e automatizá-lo. Por automatizar isso, quero dizer, eu não quero olhar para ele. Eu vou olhar os resultados uma vez por semana e os negócios serão executados sem a minha atenção. Parece estranho para mim que, em 2018, tanto esforço precisa tomar um conjunto de regras e ter essas regras executadas no meu corretor.


Eu sugeriria inscrever-se com o Quantopian e depois encontrar alguém dentro da comunidade lá para construir a estratégia para você. Eles serão capazes de construí-lo para você dentro da plataforma IB Brokers e ser totalmente automatizado.


Deixe-me dizer, porém, que acho que você deve monitorá-lo de perto, e não apenas "esqueça-o para" # 8221 ;.


Como criar um sistema de negociação automatizado no Excel em 10 etapas.


17 de fevereiro de 2017 por JB Marwood.


Compartilhe esta publicação:


Os benefícios da criação de um sistema de negociação automatizado são enormes. Com um robô comercial rentável, você pode gastar mais tempo fazendo o que você gosta e menos tempo assistindo telas. Você pode trocar mais rápido, mais inteligente e sem emoção.


Infelizmente, o caminho para a criação de um robô comercial automatizado é longo. Apesar de criar uma série de sistemas comerciais úteis no passado, eu bati repetidamente em uma parede de tijolos quando se trata de implementar automação.


Isso mudou no ano passado quando fui apresentado a Peter Titus, um comerciante profissional e especialista em automação. Peter me mostrou exatamente o que eu precisava. Uma série de passos lógicos que me levaram do iniciante ao avançado.


Ele me ensinou como criar regras de negociação algorítmica e alertas no Excel, como trocar trades e como enviá-los diretamente para minha conta Interactive Brokers usando a API.


No resto deste artigo, juntei-me à Peter para mostrar as etapas necessárias para criar seu próprio sistema de negociação no Excel. Peter também montou um curso abrangente que passa por cada etapa detalhada.


Como criar seu próprio robô de negociação no Excel em 10 etapas.


1. Abra uma conta com Interactive Brokers.


Interactive Brokers é a única corretora que oferece uma API do Excel que permite que você receba dados de mercado no Excel, além de enviar trocas do Excel.


O IB também é o maior corretor eletrônico dos EUA oferecendo comissões de ações de apenas US $ 1 e uma vasta gama de mercados. Se você deseja automatizar sua negociação, o Interactive Brokers é a melhor escolha.


Para abrir uma conta com Interactive Brokers é direto através deste link e está aberto a cidadãos da maioria dos países ao redor do mundo. Um depósito mínimo de USD 10.000 ou US $ 5.000 para a conta IRA normalmente é necessário.


2. Baixe e instale a API Excel Interactive Brokers.


A API permite que o aplicativo Trader Workstation (TWS) fale com o Excel e é um pré-requisito para a construção de seu sistema de negociação automatizado.


O software da API pode ser baixado do seguinte link:


Uma vez que você baixou a API, você pode proceder ao download do software da plataforma de negociação IB & # 8217; Trader Workstation Latest (TWS):


O TWS Latest está disponível para a maioria dos sistemas operacionais, incluindo Windows 64-bit e Mac OS. Esta e uma cópia do Excel é o único software de robô comercial que você precisará para automatizar sua negociação.


3. Pense sobre como você pode transformar suas regras de negociação em fórmulas que você pode usar no Excel.


Se você já está bem familiarizado com o Excel, então este passo não deve ser muito difícil, mas isso envolverá uma consideração cuidadosa.


É importante pensar sobre sua estratégia e visualizar o que deseja. Você não deseja ser sugado para a programação imediatamente, então perceba que você perdeu algo fundamental e tem que começar de novo.


É uma boa idéia passar um ou dois dias apenas pensando em seu sistema comercial e como ele pode ser traduzido para o Excel. Eu recomendo traçar tudo em uma grande folha de papel antes de se sentar no computador.


Se você não estiver acostumado a usar o Excel, ou haven # 8217; t usá-lo em um tempo, então você vai querer passar algum tempo começando a segurar com ele novamente. Aqui está uma boa lista de recursos do Excel e esta é uma longa lista de fórmulas.


O curso também aborda os fundamentos abrangendo VBA, sub-procedimentos, macros, loops, declarações IF e OR, etc.


4. Crie e teste suas fórmulas.


Depois de ter uma idéia do que você quer fazer e quais as fórmulas que você precisa, você pode começar a conectá-las ao Excel e testá-las.


Depois de ter feito isso várias vezes, você poderá criar suas próprias regras de negociação no Excel a partir de uma folha de trabalho completamente em branco. Com o uso de declarações IF e OR, fórmulas e loops, é possível estabelecer regras comerciais complexas de forma relativamente simples.


O sistema Ranger 1.0 desenvolvido por Peter contém muitas fórmulas e trechos de código que você pode extrair da planilha, alterar e colar em seu próprio sistema.


5. Construa automação para comprar e vender quando suas regras forem cumpridas.


Usando o exemplo de sistema de negociação e planilhas de modelos fornecidas no curso, Peter mostra como construir a automação para suas regras de compra e venda.


Fazer isso por conta própria com uma conta ao vivo pode ser uma experiência assustadora, mas Peter mostra exemplos ao vivo de como fazê-lo corretamente. Quando os negócios são inseridos, o Excel exibe o status do pedido e verifica automaticamente se há erros de configuração.


A exibição de dados de mercado e as suas entradas de comércio lado a lado (assim como estão em Interactive Brokers) lhe dão a confiança necessária para executar sua mesa de negociação automatizada e ter o Excel para fazer todo o trabalho pesado.


6. Construa regras de tempo para gerenciar o mercado aberto, o mercado fechado e qualquer outro critério do dia que você tenha.


À medida que você liga o seu sistema e começa a registrar dados, você precisará especificar quando inserir negócios, como gerenciar suas posições abertas e quando fechá-las. A sessão de comércio pode ser dividida em três partes; pré-mercado, dia de negociação e mercado fechado / após horas.


A chave para este processo é a implementação de temporizadores e tarefas automatizadas para garantir que seus negócios ocorram no horário certo. Também deve ser considerada a implementação de paradas e posições de transporte durante a noite.


7. Troque com sua conta simulada enquanto você depura seu código.


Antes de ligar seu sistema de negociação automatizado no mercado ao vivo, faz sentido levá-lo para uma unidade de teste primeiro.


Felizmente, os Interactive Brokers permitem contas de papel que podem ser usadas para executar a automação e ver como o sistema está sendo executado. Pode ser uma boa idéia executar seu sistema em uma freqüência bastante alta no início, pois isso lhe dará mais oportunidades para analisar o desempenho e depurar o código.


Uma vez que tudo começa a parecer bom, você pode começar a analisar o sistema com a freqüência natural.


As contas de comércio de papel podem ser acessadas e redefinidas em Interactive Brokers, entrando no Gerenciamento de Conta, em seguida, Gerenciar Conta & gt; Configurações & gt; Negociação de papel.


8. Uma vez que seu sistema de negociação automatizado esteja funcionando sem problemas e seja lucrativo, mova-o para dinheiro real.


Uma vez que o sistema está funcionando como você quer na conta de simulação, mova-o para dinheiro real e observe como isso acontece. Esta é a parte emocionante onde você esperará que seu sistema de negociação automatizado obtenha lucros para sua conta enquanto você se sente com sua xícara de chá.


Quando você entra, vale a pena começar com cautela no início. As contas de papel, às vezes, podem exagerar o desempenho de certas estratégias, porque nem sempre simulam com precisão o deslizamento ou o impacto no mercado. Ao começar pequeno, você pode observar qualquer diferença de desempenho sem arriscar muito capital.


9. Aumente o tamanho da sua posição, mais ganha e diminui se começar a perder.


À medida que você observa seu sistema de negociação automatizado no mercado ao vivo, logo você terá uma idéia dos seus níveis de desempenho. Quanto melhor o sistema, mais confiança lhe dará. Você pode aumentar lentamente o tamanho da posição e começar a gerar lucros maiores em seu capital.


Se o sistema começar a apresentar um desempenho pior do que você, gostaria de diminuir o tamanho da posição. O desempenho inferior pode ser devido à mudança de condições do mercado ou simulação imprecisa na conta em papel, ou algum outro motivo. Se for esse o caso, considere ajustar seu sistema ou usar técnicas de AI para torná-lo mais dinâmico.


10. Use a automação para registrar todas as suas negociações. Pense em maneiras de otimizar ou melhorar suas regras e automação.


Uma vez que seu sistema de negociação está funcionando, você pode registrar todas as suas negociações automaticamente no Excel. Isso lhe dá algo que é extremamente benéfico para negociação algorítmica e # 8211; a capacidade de analisar, observar e alimentar as melhorias no sistema.


Ao fazê-lo, você pode melhorar os resultados do seu sistema comercial e continuar eliminando o estresse. Usando o Excel para registrar os negócios, você não tem mais uma desculpa para não acompanhar suas estatísticas-chave!


Descubra mais.


Neste curso, Peter passa por todas essas etapas e cobre tudo o que você precisa para criar seu próprio sistema de negociação automatizado no Excel.


Ele o acompanha através de uma versão simplificada do seu sistema de troca comercial do dia chamado Ranger 1.0 e permite que você pegue fragmentos de código empresariais ou crie seu próprio sistema a partir do zero usando os tutoriais dentro do curso.


Numerosos recursos, modelos e lições estão incluídos, tais como:


Como criar automação através de procedimentos secundários no Visual Basic Uma introdução aos conceitos básicos do VBA e como automatizar qualquer tarefa de planilha Como importar dados e fazer backtesting no Excel Como começar a usar um sistema de negociação básico que já é lucrativo Como desencadear negócios, definir preço segmenta e automatiza paradas Como baixar sua própria cópia do Ranger 1.0 Use o Ranger 1.0 para automatizar sua própria negociação imediatamente Compreenda o código no Ranger 1.0 e seja capaz de personalizá-lo para atender às suas próprias idéias Adicione suas próprias funções e algoritmos ao Ranger 1.0 Como para registrar automaticamente dados de negociação e automatizar procedimentos de configuração Como criar um AI de tomada de decisão no Excel que pensa como um ser humano Como executar seu sistema no modo automático ou manual Como manter suas ordens escondidas do mercado com o gerenciamento de pedidos Como configurar alertas comerciais, temporizadores e sons E muito mais & # 8230;


Uma vez que sua automação é construída, você não precisa mais se sentar na frente do computador durante todo o dia assistindo o mercado. Deixe sua automação fazer o trabalho para você e se liberte para aproveitar sua vida!


Veja Mais Posts Like This One.


Compartilhe esta publicação:


6 opiniões.


17 de fevereiro de 2017.


você precisa se inscrever para um feed de dados do IB? Ou você obtém os dados quando abre uma conta?


17 de fevereiro de 2017.


Depois de ter uma conta, o IB fornece dados em tempo real gratuitamente ou ao preço cobrado pela troca. Existem pequenos custos mensais de algumas trocas. Você pode especificar com qual você deseja acessar o Market Data Assistant.


18 de fevereiro de 2017.


É possível programar um robô scalping para dizer o DJIA? Estou um pouco preocupado com a forma como o Excel pode ser alimentado com barras de 1 minuto em tempo real e # 8230;


Também é possível calcular os sinais de entrada com os futuros de DJIA e dizer ao Excel / IB que compre um produto estruturado derivado desse futuro (uma garantia, por exemplo)?


18 de fevereiro de 2017.


É possível, mas muito difícil e além do alcance do curso.


27 de fevereiro de 2017.


Será ótimo se você me ajudar com o seguimento.


1. Eu quero trocar apenas ações da NSE India, posso fazer isso?


2. Se a sua resposta for sim para 1. O sistema Can Ranger 1.0 será fornecido para baixar aqueles que se inscreverão para o curso.


3. Posso construir um robô comercial para negociar NSE India Stock com o Ranger 1.0.


28 de fevereiro de 2017.


Sim, você pode trocar qualquer instrumento que esteja disponível através de Interactive Brokers. O sistema Ranger 1.0 é totalmente descarregável no curso.


Deixe uma resposta Cancelar resposta.


Recursos educacionais recomendados:


Lembre-se: o comércio financeiro é arriscado e você pode perder dinheiro. Nada neste site deve ser considerado como um conselho personalizado de investimento. O desempenho passado não é indicativo de resultados futuros. Veja o aviso completo.


Pesquisa.


JB Marwood.


Tradutor independente, analista e escritor.


JB Marwood é um comerciante independente e escritor especializado em sistemas mecânicos de negociação. Ele começou sua carreira comercializando o FTSE 100 e German Bund para uma casa comercial em Londres e agora trabalha com sua própria empresa. Ele também escreve para Seeking Alpha e outras publicações financeiras. Google+


Lembre-se de que o comércio financeiro é arriscado e você pode sofrer uma perda significativa de capital. Nada neste site deve ser interpretado como um conselho de investimento personalizado. Veja o aviso completo.

No comments:

Post a Comment