Wednesday 11 April 2018

Como fazer sistema de negociação automatizado


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 funda, 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.


Como codificar seu próprio robô Algo Trading.


Já quis tornar-se um comerciante algorítmico com a capacidade de codificar seu próprio robô comercial? E ainda, você está frustrado com a quantidade de informações desorganizadas, enganosas e falsas promessas de prosperidade durante a noite? Bem, Lucas Liew, criador do curso de negociação algorítmica on-line AlgoTrading101, pode ter a solução para você. Tendo excelentes revisões e recebendo mais de 8.000 estudantes desde o primeiro lançamento em outubro de 2018, o curso de Liew - destinado a apresentar os fundamentos da negociação algorítmica de forma organizada - está sendo bastante popular. Ele é inflexível sobre o fato de que a negociação algorítmica é "não um esquema rápido e rápido". Com base em idéias de Liew e seu curso, delineadas abaixo estão os fundamentos do que é preciso para projetar, construir e manter seu próprio robô de negociação algorítmica .


O que é um Robô de Negociação Algorítmico.


No nível mais básico, um robô de negociação algorítmica é um código de computador que tem a capacidade de gerar e executar sinais de compra e venda nos mercados financeiros. Os principais componentes desse robô incluem regras de entrada que indicam quando comprar ou vender, regras de saída indicando quando fechar a posição atual e regras de dimensionamento de posição que definem as quantidades para comprar ou vender. (Para mais, veja: Noções básicas de negociação algorítmica: conceitos e exemplos.)


As principais ferramentas.


Obviamente, você vai precisar de um computador e uma conexão com a Internet. Depois disso, será necessário um sistema operacional Windows ou Mac para executar o MetaTrader 4 (MT4), uma plataforma de negociação eletrônica que usa o MetaQuotes Language 4 (MQL4) para codificar as estratégias de negociação. Embora o MT4 não seja o único software que se possa usar para construir um robô, ele possui uma série de benefícios significativos.


Enquanto a principal classe de ativos da MT4 é câmbio (FX), a plataforma pode ser usada para negociar ações, índices de ações, commodities e Bitcoins usando CFDs. Outros benefícios de usar o MT4 em oposição a outras plataformas incluem ser fácil de aprender, tem inúmeras fontes de dados FX disponíveis e é grátis. Infelizmente, o MT4 não permite a negociação direta em mercados de ações e futuros e a realização de análises estatísticas pode ser onerosa; no entanto, o MS Excel pode ser usado como uma ferramenta estatística suplementar.


Estratégias de negociação algorítmica.


É importante começar por refletir sobre alguns traços essenciais que toda estratégia de negociação algorítmica deve ter. A estratégia deve ser prudente no mercado em que é fundamentalmente sólida do ponto de vista do mercado e econômico. Além disso, o modelo matemático utilizado no desenvolvimento da estratégia deve basear-se em métodos estatísticos sólidos.


Em seguida, é crucial determinar quais informações o seu robô pretende capturar. Para ter uma estratégia automatizada, seu robô precisa ser capaz de capturar ineficiências de mercado identificáveis ​​e persistentes. As estratégias de negociação algorítmica seguem um conjunto rígido de regras que aproveitam o comportamento do mercado e, portanto, a ocorrência de uma ineficiência única do mercado não é suficiente para construir uma estratégia. Além disso, se a causa da ineficiência do mercado não for identificável, não haverá maneira de saber se o sucesso ou o fracasso da estratégia foi devido ao acaso ou não.


Com o acima em mente, existem vários tipos de estratégia para informar o design do seu robô de negociação algorítmica. Estes incluem estratégias que aproveitam (i) notícias macroeconômicas (por exemplo, mudanças na folha de pagamento ou na taxa de juros não agrícolas); (ii) análise fundamental (por exemplo, usando dados de receita ou notas de versão de resultados); (iii) análise estatística (por exemplo, correlação ou co-integração); (iv) análise técnica (por exemplo, médias móveis); (v) a microestrutura do mercado (por exemplo, infração de arbitragem ou comercial); ou (vi) qualquer combinação do acima. (Para leitura relacionada, veja: O que é a eficiência do mercado?)


Projetando e testando seu robô.


Existem essencialmente quatro etapas necessárias para construir e gerenciar um robô comercial:


Pesquisa preliminar: esta etapa se concentra no desenvolvimento de uma estratégia que se adapte às suas próprias características pessoais. Fatores como perfil de risco pessoal, compromisso de tempo e capital comercial são importantes para pensar quando desenvolver uma estratégia. Você pode então começar a identificar as persistentes ineficiências do mercado mencionadas acima. Tendo identificado uma ineficiência do mercado, você pode começar a codificar um robô comercial adequado às suas próprias características pessoais.


Backtesting: Esta etapa se concentra em validar seu robô comercial. Isso inclui verificar o código para se certificar de que está fazendo o que deseja e entender como ele se realiza em diferentes intervalos de tempo, aulas de ativos ou diferentes condições de mercado, especialmente em eventos tipo cisne preto, como a crise financeira global de 2008.


Otimização: Então, agora você codificou um robô que funciona e, nesta fase, você deseja maximizar seu desempenho ao mesmo tempo em que minimiza o viés de superposição. Para maximizar o desempenho, primeiro você precisa selecionar uma boa medida de desempenho que capture elementos de risco e recompensa, bem como consistência (por exemplo, taxa Sharpe). O desvio excessivo ocorre quando o robô está muito próximo com dados anteriores; Esse robô vai dar a ilusão de alto desempenho, mas como o futuro nunca se assemelha completamente ao passado, ele pode realmente falhar.


Execução ao vivo: agora você está pronto para começar a usar dinheiro real. No entanto, além de estar preparado para os altos e baixos emocionais que você pode experimentar, existem alguns problemas técnicos que precisam ser abordados. Essas questões incluem selecionar um intermediário apropriado e implementar mecanismos para gerenciar riscos de mercado e riscos operacionais, como potenciais hackers e tempo de inatividade tecnológico. Também é importante nesta etapa verificar se o desempenho do robô é semelhante ao experimentado na fase de teste. Finalmente, o monitoramento contínuo é necessário para garantir que a eficiência do mercado que o robô foi projetado ainda existe. (Para mais, consulte: Como os Algoritmos de Negociação foram Criados.)


The Bottom Line.


Considerando que Richard Dennis, o lendário comerciante de commodities, ensinou a um grupo de estudantes suas estratégias de negociação pessoal que, em seguida, ganhou mais de US $ 175 milhões em apenas cinco anos, é completamente possível que os comerciantes inexperientes sejam ensinados com um conjunto rigoroso de diretrizes e se tornem comerciantes bem-sucedidos. No entanto, este é um exemplo extraordinário e os iniciantes definitivamente devem se lembrar de ter expectativas modestas.


Para ser bem sucedido, é importante não apenas seguir um conjunto de diretrizes, mas também entender como essas diretrizes estão funcionando. Liew enfatiza que a parte mais importante da negociação algorítmica é "entender em que tipos de condições de mercado o seu robô funcionará e quando vai quebrar" e "entender quando intervir". O comércio algorítmico pode ser gratificante, mas a chave para o sucesso é compreensão. Qualquer curso ou professor que prometa altas recompensas com mínima compreensão deve ser um sinal de alerta importante.


Sistemas de negociação.


Vídeos de ajuda relacionados.


O ProOrder é o módulo de negociação automática do ProRealTime. Os sistemas de negociação podem ser criados com ou sem programação e ser usados ​​com carteiras de negociação simuladas e reais.


Como criar facilmente um sistema de negociação sem programação.


Dica: Saiba como aproveitar os nossos avançados recursos de programação passo a passo:


Esta seção mostra como criar, fazer backtest e otimizar um exemplo de sistema comercial sem fazer qualquer programação.


Primeiro, clique no botão no canto superior direito de um gráfico, depois vá para a guia "Probacktest & amp; Comércio automático & quot; e clique em & quot; New & quot ;. A seguinte janela irá aparecer:


Nós somos por padrão em uma "Criação Assistida & quot; modo que permite que você crie sua estratégia sem ter que escrever uma única linha de código. Você também pode criar seu próprio código clicando no rótulo "Criação por programação" da janela exibida acima.


A "criação assistida" A janela é composta de vários botões (Compra, Vender, Curto, Sair) que permitem definir suas condições de compra e venda. Você pode definir paradas e alvos clicando nos botões correspondentes. Finalmente, "Gerar código" para gerar automaticamente o código para o seu backtest!


Exemplo: Deixe criar uma estratégia com base no índice de dinâmica estocástica. Primeiro mostramos uma média móvel simples sobre o preço e o indicador SMI.


Primeiro, clique no botão. Em seguida, clique em & quot; Backtesting & quot; no canto superior direito, clique em & quot; New & quot; e escolha o & quot; Buy & quot; para definir suas condições de compra. Finalmente, clique no gráfico SMI. A seguinte janela irá aparecer:


Selecione & quot; Stoch momentum 1 & quot; & quot; Cross Over & quot; "Sinal 1"


Agora vamos adicionar outra condição clicando no botão "Adicionar condição". Nós clicamos nesse tempo no gráfico de preços. A seguinte janela irá aparecer:


Deixe agora definir como vender as posições de compra clicando em "Sell & quot; e depois no gráfico estocástico. Escolha & quot; Stoch momentum 1 & quot; & quot; Cross Under & quot; "Mude a média 1" e clique em & quot; OK & quot ;.


Em seguida, definimos os parâmetros ilustrados abaixo:


Para definir a estratégia de parada, clicamos em & quot; Stops & amp; Alvo " e escolhemos as configurações abaixo:


Clique no & quot; OK & quot; botão. O programa está pronto, você só precisa dar um nome ao seu backtest, como "Momento Estocástico" e clique em "Gerar código".


Para executar o backtest, clique em "ProBacktest my system". Um gráfico contendo a curva de equidade do backtest será exibido, bem como um relatório detalhado contendo informações de desempenho:


Você pode modificar o backtest para melhorar seus resultados. Clique no ícone de chave inglesa da curva de Equidade destacada em amarelo e depois em "Modificar ProBacktest":


Deixe criar uma variável em vez de um valor fixo para a média móvel. Para fazer isso, remova o número "150" do programa e escreve "número" em vez de. Em seguida, clique no botão "Adicionar" & quot; do campo "Parâmetros de otimização" e escolha as configurações abaixo:


Finalmente, clique no botão "ProBacktest my system". Depois de alguns segundos, você obtém um relatório de otimização que lhe dá os valores que dão os melhores resultados para o conjunto de dados históricos examinados.


Para continuar a melhorar o sistema, você pode tentar adicionar novas condições. Você também pode modificar o tipo de parada usada ou adicionar um objetivo de lucro.


Com a criação por programação, você pode aplicar funções muito mais sofisticadas usando nossa biblioteca de Funções a que pode acessar, clicando na função & quot; Inserir função & quot; botão como mostrado abaixo.


Uma janela aparece com todas as funções disponíveis com o módulo ProBacktest e o texto de ajuda correspondente. Ao clicar em "Adicionar", você pode inserir esta função no seu programa na localização do cursor do mouse.


Registre-se agora para acessar a versão gratuita do ProRealTime ou faça o login para solicitar a sua versão gratuita de 7 dias com dados em tempo real.


A negociação pode expô-lo ao risco de perda maior do que seus depósitos e só é adequado para clientes experientes que tenham meios financeiros suficientes para suportar esse risco. Nenhuma informação neste site é um conselho de investimento ou uma solicitação para comprar ou vender qualquer instrumento financeiro.


Siga ProRealTime para informações e visualizações exclusivas.


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 o cérebro e pelo brilhante serviço que eles oferecem.


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 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 ;.

No comments:

Post a Comment