Skip to main content

Estratégias de negociação automáticas bem-sucedidas


As melhores estratégias dos campeonatos automáticos de negociação 2006-2018.


Introdução.


Para participar do Automated Trading Championship 2018, você precisa se registrar e enviar uma negociação Expert Advisor de acordo com sua estratégia. Leia mais sobre como se registrar e enviar materiais exigidos no artigo "Como participar do Campeonato Automatizado de Negociação 2018".


Não se esqueça de que seu consultor especialista deve cumprir as regras do campeonato, ser rentável e operar corretamente durante a verificação automática. Estes são os requisitos mínimos para a participação no Campeonato.


Mas para ganhar o Automated Trading Championship 2018, não basta apenas escrever um Expert Expert Expert corretamente. Para se tornar o vencedor, você precisa desenvolver um sistema comercial que lhe gere lucros máximos. Qual o segredo do sucesso dos vencedores do Campeonato passado?


Neste artigo, analisaremos as características estatísticas das estratégias mais bem sucedidas no passado Automated Trading Championships (2006, 2007, 2008 e 2018).


1. Estratégias vencedoras.


A tabela a seguir fornece detalhes das estratégias vencedoras do passado Automated Trading Championships. Mais informações podem ser encontradas nos comentários a esses consultores especializados.


Número de negócios.


Lucro médio por comércio.


MACD, grandes períodos.


O sistema comercial da Gumasa usa duas estratégias: negociação dentro de uma gama e uma estratégia de tendências.


O Expert Advisor é baseado em seis indicadores usando algoritmos de suavização pela Jurik Research.


O sistema de negociação é baseado em redes neurais.


Um sistema de negociação de tendências. A tendência é determinada pelos resultados da negociação no meio-dia EU EST. A EA usa o suporte a pedidos, que é baseado no uso do intervalo médio verdadeiro (ATR)


Análise da tendência em H4, negócios em М15. São utilizados três indicadores personalizados.


A estratégia de negociação usa "Podagem Incremental Repetida para Produzir Redução de Erro"


Parece um uso de uma combinação de médias móveis e análise da volatilidade atual.


O Expert Advisor trabalha em um gráfico de 15 minutos do EURGBP. Posições abertas para a reversão dos níveis intradiários.


Acompanha os movimentos de curto prazo do EURUSD com base na análise MA.


Uso de várias médias móveis para determinar a direção da tendência com uma confirmação do MACD.


O Consultor Especialista usa médias móveis e MACD para determinar os pontos de entrada.


O principal lucro é obtido por movimentos fortes, o uso de sistemas de negociação de tendências aumenta as chances de ganhar o Campeonato.


2. Características estatísticas dos sistemas de negociação bem-sucedidos.


O Strategy Tester do MetaTrader 5 terminal é uma poderosa ferramenta para estudar estratégias comerciais.


A visualização do processo de teste simplifica a análise das estratégias, enquanto a otimização genética e o teste distribuído de estratégias reduzem significativamente o tempo de otimização e configuração dos sistemas de negociação. Além disso, a análise gráfica da estrutura do espaço de parâmetros facilita a busca do melhor conjunto de parâmetros para estratégias de negociação.


A base de experiência e conhecimento acumulada nos Campeonatos anteriores (2006, 2007, 2008 e 2018) permite destacar as principais características dos sistemas de negociação rentáveis ​​para se concentrar ao analisar os resultados de otimização obtidos no testador de estratégias de negociação.


Para ilustrar a imagem geral, apresentamos algumas das características das estratégias de negociação dos vinte participantes mais bem-sucedidos em cada um dos Campeonatos. Note-se que, na amostra, não consideramos os resultados de alguns participantes, caso a significância estatística de seus resultados fosse baixa.


2.1. Resultados comerciais (saldo)


Fig. 1. Os valores de saldo dos 20 participantes mais bem-sucedidos do ATC 2006, 2007, 2008 e 2018.


O valor do saldo obtido como resultado da negociação é o critério para determinar o vencedor do Campeonato.


Os resultados da negociação são altamente dependentes da estratégia de negociação escolhida e do sistema de gerenciamento de dinheiro.


2.2. Percentagem de Negociações Rentáveis ​​(Negociações de Lucros)


Fig. 2. Percentagem de negócios rentáveis ​​dos 20 participantes mais bem-sucedidos do ATC 2006, 2007, 2008 e 2018.


Aparentemente, a porcentagem de comerciantes rentáveis ​​dos líderes do Campeonato é mais de 50% em média.


Ao analisar os resultados de otimização no Strategy Tester, é melhor escolher parâmetros com a maior porcentagem de negócios lucrativos.


2.3. Fator de lucro dos sistemas de negociação.


Fig. 3. Os valores numéricos do Fator de Lucro de 20 participantes mais bem sucedidos do ATC 2006, 2007, 2008 e 2018.


O fator de lucro mostra o lucro gerado por negócios lucrativos divididos pelas perdas geradas pela perda de negócios. Quanto maior o valor, melhor. Observe que todos os sistemas de negociação dos líderes do Campeonato têm Lucro Fator & gt; 1.


Para a otimização no Strategy Tester, é recomendável escolher os resultados com os maiores valores do Fator de lucro.


Sharpe Ratio é usado para medir risco / retorno de uma estratégia de negociação. Por exemplo, Sharp = 0,6 indica que, por cada seis dólares de lucro, o risco é perder 10 dólares em média.


O valor mais alto indica uma negociação menos arriscada. Mas os grandes valores de ganho de negócios individuais podem levar a um maior valor do desvio padrão e, portanto, reduzir de forma irracional o valor calculado de Sharpe Ratio.


Fig. 4. Os valores numéricos do índice Sharp de 20 participantes mais bem-sucedidos do ATC 2006, 2007, 2008 e 2018.


A Relação de Sharpe é um indicador importante de vincular o retorno e o risco. Os sistemas de negociação de todos os líderes dos campeonatos têm uma relação Sharpe positiva.


Para a otimização no Strategy Tester, é recomendável escolher os resultados com os valores Sharpe Ratio mais altos.


2.5. Símbolos e prazos negociados.


Selecionar um símbolo e um período para um Consultor Especializado também é um elemento importante de desempenho bem-sucedido no Campeonato. Os números 5-8 mostram os símbolos e os prazos dos líderes dos Campeonatos Automatizados de Negociação 2006-2018.


Fig. 5. Instrumentos de negociação e prazos dos 20 maiores participantes do ATC 2006.


Fig. 6. Instrumentos de negociação e prazos dos 20 principais participantes do ATC 2007.


Fig. 7. Instrumentos de negociação e prazos dos 20 maiores participantes do ATC 2008.


Fig. 8. Instrumentos de negociação e prazos dos 20 principais participantes do ATC 2018.


Você pode selecionar o melhor símbolo e prazo para o seu Consultor Especial usando o Testador de Estratégia do terminal MetaTrader 5.


Conclusão.


A maioria dos sistemas de negociação bem-sucedidos são seguidores de tendências, e os principais lucros são obtidos com fortes movimentos. Às vezes, os sistemas mais simples, com base no cruzamento de MA com um sistema de gerenciamento de dinheiro bem pensado, podem ser muito mais eficazes do que sistemas de EA complexos.


A análise das características estatísticas dos melhores sistemas de negociação mostra que, juntamente com o equilíbrio, você também deve prestar atenção ao Fator de lucro e ao Ratio de Sharpe ao selecionar os melhores parâmetros de EA no Strategy Tester.


Observe que o idioma MQL5 e o testador de estratégia do MetaTrader 5 Client Terminal permitem a criação de critérios de otimização personalizados (veja o artigo "Criando critérios personalizados de otimização de consultores especializados"). Significativamente simplifica a busca de parâmetros com as melhores taxas estatísticas.


O registro para o Campeonato Automatizado de Negociação 2018 começou em 1 de junho de 2018 e, um mês depois, mais de 700 pessoas apresentaram suas candidaturas. Ao longo do ano passado, o interesse no MQL5 aumentou significativamente. É esperado um grande afluxo de pessoas dispostas a competir por prêmios valiosos, principalmente devido a novos recursos do MQL5 Wizard e do Strategy Tester.


Uma Classe de Operações Comerciais para o ATC 2018.


A publicação trata das restrições às operações comerciais estabelecidas pelas Regras do Campeonato Automatizado de Negociação 2018. Ele também descreve a implementação de uma classe pronta para usar que verifica operações comerciais. Esta classe intercepta todos os pedidos comerciais de um Consultor Especializado e verifica se eles atendem as condições comerciais do Campeonato.


Prós e contras de sistemas de negociação automatizados.


Os comerciantes e os investidores podem transformar regras de entrada, saída e gerenciamento de dinheiro precisas em sistemas de negociação automatizados que permitem aos computadores executar e monitorar os negócios. Uma das maiores atrações da automação de estratégia é que pode tirar parte da emoção fora da negociação, uma vez que os negócios são automaticamente colocados assim que determinados critérios forem atendidos. Este artigo apresentará os leitores e explicará algumas das vantagens e desvantagens, bem como as realidades, dos sistemas de negociação automatizados. (Para leitura relacionada, veja The Power Of Program Trades.)


O que é um sistema de negociação automatizado?


Os sistemas de negociação automatizados, também denominados sistemas mecânicos de negociação, negociação algorítmica, negociação automatizada ou negociação de sistemas, permitem que os comerciantes estabeleçam regras específicas para ambas as entradas comerciais e saídas que, uma vez programadas, podem ser executadas automaticamente através de um computador. As regras de entrada e saída comercial podem ser baseadas em condições simples, como um crossover médio móvel, ou podem ser estratégias complicadas que requerem uma compreensão abrangente da linguagem de programação específica para a plataforma de negociação do usuário ou a experiência de um programador qualificado. Os sistemas de negociação automatizados normalmente exigem o uso de software que esteja vinculado a um corretor de acesso direto, e quaisquer regras específicas devem ser escritas na linguagem proprietária dessa plataforma. A plataforma TradeStation, por exemplo, usa a linguagem de programação EasyLanguage; A plataforma NinjaTrader, por outro lado, utiliza a linguagem de programação NinjaScript. A Figura 1 mostra um exemplo de uma estratégia automatizada que desencadeou três negociações durante uma sessão de negociação. (Para leitura relacionada, veja Comércio Global e Mercado Moeda.)


[Os sistemas de negociação automatizada podem usar muitos indicadores técnicos diferentes para definir pontos de entrada e saída. O Curso de Análise Técnica da Investopedia fornece uma visão geral detalhada desses indicadores técnicos e padrões de gráficos que os comerciantes podem usar ao criar sistemas de negociação automatizados.]


Algumas plataformas de negociação possuem "assistentes" de construção de estratégias que permitem aos usuários fazer seleções a partir de uma lista de indicadores técnicos comumente disponíveis para construir um conjunto de regras que podem ser negociadas automaticamente. O usuário poderia estabelecer, por exemplo, que um longo comércio será inserido uma vez que a média móvel de 50 dias cruza acima da média móvel de 200 dias em um gráfico de cinco minutos de um instrumento comercial específico. Os usuários também podem inserir o tipo de ordem (mercado ou limite, por exemplo) e quando o comércio será acionado (por exemplo, no fechamento da barra ou aberto da próxima barra), ou use as entradas padrão da plataforma. Muitos comerciantes, no entanto, optam por programar seus próprios indicadores e estratégias personalizados ou trabalhar em estreita colaboração com um programador para desenvolver o sistema. Embora isso geralmente requer mais esforço do que usar o assistente da plataforma, ele permite um grau de flexibilidade muito maior e os resultados podem ser mais gratificantes. (Infelizmente, não existe uma estratégia de investimento perfeita que garanta o sucesso. Para mais informações, consulte Usando Indicadores Técnicos para Desenvolver Estratégias de Negociação.)


Uma vez que as regras foram estabelecidas, o computador pode monitorar os mercados para encontrar oportunidades de compra ou venda com base nas especificações da estratégia comercial. Dependendo das regras específicas, assim que uma negociação for inserida, serão gerados automaticamente quaisquer pedidos de perdas de proteção de paradas, paradas de trânsito e metas de lucro. Em mercados em movimento rápido, esta entrada de ordem instantânea pode significar a diferença entre uma pequena perda e uma perda catastrófica no caso de o comércio se mover contra o comerciante.


Vantagens de Sistemas de Negociação Automatizados.


Há uma longa lista de vantagens em ter um computador monitorando os mercados para oportunidades comerciais e executar os negócios, incluindo:


Minimize Emoções. Os sistemas de negociação automatizados minimizam as emoções ao longo do processo de negociação. Ao manter as emoções sob controle, os comerciantes normalmente têm um tempo mais fácil de aderir ao plano. Uma vez que as ordens comerciais são executadas automaticamente uma vez que as regras comerciais foram cumpridas, os comerciantes não poderão hesitar ou questionar o comércio. Além de ajudar os comerciantes que têm medo de "puxar o gatilho", o comércio automatizado pode conter aqueles que estão aptos a vender demais - comprando e vendendo em todas as oportunidades percebidas.


Capacidade de Backtest. Backtesting aplica as regras de negociação aos dados históricos do mercado para determinar a viabilidade da idéia. Ao projetar um sistema de negociação automatizada, todas as regras precisam ser absolutas, sem espaço para interpretação (o computador não pode fazer suposições - é preciso dizer exatamente o que fazer). Os comerciantes podem tomar esses conjuntos precisos de regras e testá-los em dados históricos antes de arriscar dinheiro em negociação ao vivo. O backtesting cuidadoso permite aos comerciantes avaliar e afinar uma idéia comercial e determinar a expectativa do sistema - o valor médio que um comerciante pode esperar para ganhar (ou perder) por unidade de risco. (Oferecemos algumas dicas sobre este processo que podem ajudar a repor suas estratégias de negociação atuais. Para mais informações, consulte Backtesting: Interpreting the Past.)


Preserve Discipline. Como as regras comerciais são estabelecidas e a execução comercial é executada automaticamente, a disciplina é preservada mesmo em mercados voláteis. A disciplina é muitas vezes perdida devido a fatores emocionais, como o medo de sofrer uma perda, ou o desejo de obter um pouco mais de lucro de um comércio. O comércio automatizado ajuda a garantir que a disciplina seja mantida porque o plano de negociação será seguido exatamente. Além disso, o erro piloto é minimizado, e uma ordem para comprar 100 ações não será inserida incorretamente como uma ordem para vender 1.000 ações.


Alcançar Consistência. Um dos maiores desafios na negociação é planejar o comércio e negociar o plano. Mesmo que um plano de negociação tenha o potencial de ser rentável, os comerciantes que ignoram as regras estão alterando a expectativa de que o sistema teria tido. Não existe um plano de negociação que ganhe 100% do tempo - as perdas são parte do jogo. Mas as perdas podem ser psicologicamente traumatizantes, então um comerciante que tem duas ou três negociações perdidas em uma fila pode decidir ignorar o próximo comércio. Se esse próximo comércio fosse um vencedor, o comerciante já havia destruído qualquer expectativa do sistema. Os sistemas de negociação automatizados permitem que os comerciantes obtenham consistência ao negociar o plano. (É impossível evitar o desastre sem regras de negociação. Para mais informações, veja 10 Passos para construir um Plano de Negociação vencedor.)


Velocidade de entrada de pedido aprimorada. Uma vez que os computadores respondem imediatamente às mudanças nas condições do mercado, os sistemas automatizados são capazes de gerar ordens assim que os critérios comerciais forem atendidos. Entrar ou sair de um comércio alguns segundos antes pode fazer uma grande diferença no resultado do comércio. Assim que uma posição é inserida, todos os outros pedidos são gerados automaticamente, incluindo perdas protetoras de parada e metas de lucro. Os mercados podem se mover rapidamente, e é desmoralizante ter um comércio atingindo o objetivo de lucro ou superar um nível de perda de parada - antes que as ordens possam ser inseridas. Um sistema de negociação automatizado evita que isso aconteça.


Desvantagens e Realidades dos Sistemas Automatizados de Negociação.


Os sistemas de negociação automatizados possuem muitas vantagens, mas existem algumas quedas e realidades a que os comerciantes devem estar cientes.


Falhas mecânicas. A teoria por trás do comércio automatizado faz com que pareça simples: configurar o software, programar as regras e assisti-lo comercializar. Na realidade, no entanto, a negociação automatizada é um método sofisticado de negociação, mas não infalível. Dependendo da plataforma de negociação, uma ordem comercial pode residir em um computador - e não em um servidor. O que isso significa é que, se uma conexão com a Internet for perdida, um pedido pode não ser enviado ao mercado. Também pode haver uma discrepância entre os "negócios teóricos" gerados pela estratégia e o componente da plataforma de entrada de pedidos que os transforma em trades reais. A maioria dos comerciantes deve esperar uma curva de aprendizado ao usar sistemas de negociação automatizados, e geralmente é uma boa idéia começar com pequenos tamanhos comerciais enquanto o processo é refinado.


Monitoramento. Embora seja ótimo ligar o computador e sair para o dia, os sistemas de negociação automatizados requerem monitoramento. Isso é devido ao potencial de falhas mecânicas, como problemas de conectividade, perdas de energia ou falhas no computador, e às peculiaridades do sistema. É possível que um sistema de negociação automatizado experimente anomalias que possam resultar em ordens erradas, ordens faltantes ou pedidos duplicados. Se o sistema for monitorado, esses eventos podem ser identificados e resolvidos rapidamente.


Os comerciantes têm a opção de executar seus sistemas de negociação automatizados através de uma plataforma de negociação baseada no servidor, como o Strategy Runner. Essas plataformas freqüentemente oferecem estratégias comerciais para venda, um assistente para que os comerciantes possam projetar seus próprios sistemas ou a capacidade de hospedar sistemas existentes na plataforma baseada no servidor. Por uma taxa, o sistema de negociação automatizado pode pesquisar, executar e monitorar negócios - com todos os pedidos que residem em seu servidor, resultando em entradas de pedidos potencialmente mais rápidas e confiáveis.


Embora seja atraente por uma variedade de fatores, os sistemas automáticos de negociação não devem ser considerados um substituto para negociações cuidadosamente executadas. Falhas mecânicas podem acontecer e, como tal, esses sistemas requerem monitoramento. As plataformas baseadas em servidor podem fornecer uma solução para comerciantes que desejam minimizar os riscos de falhas mecânicas. (Para leitura relacionada, veja Day Trading Strategies For Beginners.)


Lutando para fazer rentáveis ​​estratégias de negociação Algo?


Você não se propôs a perder dinheiro ao negociar, mas muitos pequenos erros ao longo do caminho significaram que o desempenho de sua estratégia em backtests não apareceu quando você foi ao vivo.


Estive envolvido na negociação algorítmica por mais de cinco anos e naquela época eu vi alguns grandes erros comerciais.


Depois de muitos testes e erros, descobri que o trabalho duro, a disciplina e a abordagem científica são a chave para a lucratividade com o comércio quantitativo.


Em Negociação Algorítmica bem sucedida, eu vou ensinar-lhe um processo para identificar estratégias rentáveis ​​desde o início, testá-los, reduzir seus custos de transação e executar de forma eficiente seus negócios de forma totalmente automatizada.


Não importa o quão longe você estiver em sua carreira de negociação quantitativa, você pode aplicar essas idéias para criar um negócio lucrativo de negociação algorítmica.


Mais de 200 páginas de técnicas de negociação algorítmica Como implementar um backtester de ações de ponta a ponta com bibliotecas Python Baixe a tabela de conteúdo.


Download instantâneo de ebook PDF - sem espera de entrega Garantia de reembolso de dinheiro 100% sem garantia, sem risco para você! Faça o download de um capítulo de exemplo.


Criar estratégias comerciais lucrativas é difícil. Muito difícil.


Apesar de todos esses benefícios, eu não gostaria que você percebesse a idéia errada e pensasse que desenvolver um sistema de negociação algorítmica é fácil. Nada poderia estar mais longe da verdade. Não há caminho para riquezas fáceis com algo trading.


No entanto, se você derrubar o problema, em pequenas partes constituintes fáceis de manusear e fazer progressos consistentes na melhoria do seu sistema todos os dias, pode eventualmente tornar-se muito bem sucedido.


No início, é uma luta para ganhar dinheiro consistentemente com a negociação.


Agora, construí o hábito de criar um pipeline estratégico que constantemente me fornece novas ideias de estratégia comercial para testar. Não importa se uma estratégia começa a funcionar mal porque eu tenho muito mais para escolher - e você também.


O progresso lento e consistente em pesquisa, teste e execução é a chave para alcançar a rentabilidade de negociação algorítmica.


Compromete-se a trabalhar muito em seus componentes de estratégia, com uma abordagem disciplinada, e você verá o sucesso muito mais cedo do que o esperado.


E se você não for um especialista em negociação algorítmica?


Na verdade, tampouco era eu quando comecei! Eu não conhecia as ordens de mercado de pedidos limitados, o buy-side do lado da venda ou o que era uma perda de parada! Mas eu pratiquei nos últimos cinco anos e aprendi uma grande quantidade de negociação algorítmica no processo.


É bem dentro da sua capacidade de aprender o que sei sobre financiamento e negociação quantitativas. Eu certamente não sou o topo do meu campo, mas participei do desenvolvimento de estratégias de negociação rentáveis ​​e estou extremamente interessado em mostrar como fazer o mesmo.


Eu imagino que há um tema que você conhece muito e eu aposto que há muitos que conhecem menos sobre a área do que você. Ser um especialista vem através da prática, disciplina e trabalho árduo. Da mesma forma, formando um conjunto consistente de estratégias lucrativas de negociação algorítmica.


Toda pessoa bem sucedida que conheço em negociação algorítmica começou antes de conhecer muito sobre os mercados.


Use o fato de que você ainda não está confortável com o comércio algorítmico para se empurrar mais forte e aprender a se tornar um especialista.


Sobre o autor.


Então, quem está por trás disso?


Oi! Meu nome é Mike Halls-Moore e eu sou o cara do QuantStart e o pacote 'Successful Algorithmic Trading'.


Desde que trabalhei como desenvolvedor de negociação quantitativa em um fundo de hedge, fiquei apaixonado por negociação quantitativa e executando meu próprio portfólio.


Eu comecei a comunidade QuantStart e escrevi "Successful Algorithmic Trading" como um meio para ajudar os outros a aprender com meus erros e levar suas negociações quantitativas para o próximo nível.


Quais são os tópicos incluídos no livro?


Você aprenderá a encontrar novas idéias de estratégia comercial e avaliá-las objetivamente para seu portfólio.


Vou ensinar-lhe como criar um banco de dados mestre de valores robustos para armazenar todas as informações de preços de seus ativos.


Aplicaremos o método científico para reforçar as nossas ideias estratégicas antes de considerarmos negociá-las.


Nossas estratégias serão testadas amplamente contra medidas de desempenho da indústria.


Utilizaremos métodos estatísticos de séries temporais para testar a reversão e o impulso médios.


Eu discutirei os modelos de estratégia rentáveis ​​de reversão média para ações e futuros - que você pode negociar.


Você aprenderá sobre técnicas de gerenciamento de risco de grau de investimento, como Variance-at-Risk (VaR).


Nós discutiremos amplamente as técnicas de dimensionamento de posição e gerenciamento de dinheiro, como o Critério de Kelly.


Vamos criar e implantar um robusto sistema de execução automatizado baseado em nosso sistema de carteira de negociação.


Quais habilidades técnicas você aprenderá?


Você será apresentado ao conjunto de ferramentas científico da Python, que é usado principalmente na negociação quantitativa. Usaremos NumPy, SciPy, pandas, scikit-learn e IPython.


Você aprenderá como obter dados financeiros de fontes gratuitas e pagas. Vamos abordar dados de ações e futuros, limpando e criando contratos de futuros contínuos.


Você aprenderá como testar o desempenho da estratégia usando pandas e calcular quantidades como a Ratio de Sharpe, redução máxima, duração da redução e perda / perda média.


Você aprenderá a otimizar matematicamente uma estratégia usando análise de sensibilidade de parâmetros e inspecionar visualmente os resultados. Para isso, usaremos pandas e matplotlib com o IPython.


Você aprenderá sobre os classificadores preditivos e as ações intradiárias par-trading. Usaremos scikit-learn para realizar regressão, conjuntos de floresta aleatória e SVM não-linear.


Você se conectará à Interactive Brokers API com o Python para negociar. Você calculará custos de transação realistas, contabilizando-os em suas métricas de desempenho.


Onde você pode aprender mais sobre mim?


Eu escrevi mais de cem posts no QuantStart cobrindo negociação quantitativa, carreiras quantitativas, desenvolvimento quantitativo, ciência dos dados e aprendizado automático. Você pode ler os arquivos para saber mais sobre minha metodologia e estratégias de negociação.


E se você não está feliz com o livro?


Embora eu pense que você encontrará sucesso na Algorithmic Trading muito útil em sua educação comercial quantitativa, também acredito que, se você não estiver 100% satisfeito com o livro por qualquer razão, você pode devolvê-lo sem perguntas pedidas para um reembolso total.


Você receberá uma cópia impressa do livro?


Não. Nesta fase, o livro só está disponível no formato Adobe PDF, enquanto o próprio código é fornecido como um arquivo zip de scripts Python totalmente funcionais, se você comprar a opção "Livro + Software".


Qual pacote você deve comprar?


Isso depende principalmente do seu orçamento. O livro com código fonte extra completo é o melhor se você quiser inserir o código imediatamente, mas o próprio livro contém uma quantidade enorme de fragmentos de código que ajudarão seu processo de negociação de quant.


Posso ser contatado?


Claro! Se você ainda tiver dúvidas depois de ler esta página, entre em contato e farei o meu melhor para lhe fornecer uma resposta necessária. No entanto, veja a lista de artigos, que também pode ajudá-lo.


Você precisará de um diploma em matemática?


A maioria do livro pode ser seguido com bastante facilidade sem referência a matemática difícil. No entanto, as seções sobre previsão e análise de séries temporais requerem algum cálculo básico e álgebra linear.


QuantStart.


Junte-se ao portal de membros privados da Quantcademy que atende à comunidade de comerciantes de varejo de varejo em rápido crescimento. Você encontrará um grupo bem informado de mentalistas quant pronto para responder suas perguntas comerciais mais importantes.


Confira meu ebook sobre o comércio de quant, onde eu ensino você como criar estratégias de negociação sistemáticas lucrativas com ferramentas Python, desde o início.


Dê uma olhada no meu novo ebook sobre estratégias de negociação avançadas usando análise de séries temporais, aprendizado de máquina e estatísticas bayesianas, com Python e R.


Por Michael Halls-Moore em 26 de abril de 2018.


Este artigo continua com a série sobre negociação quantitativa, que começou com o Guia do Iniciante e Identificação Estratégica. Ambos os artigos mais longos e mais envolvidos têm sido muito populares, então continuarei nesta linha e fornecerá detalhes sobre o tema da estratégia de backtesting.


O backtesting algorítmico requer conhecimento de muitas áreas, incluindo psicologia, matemática, estatística, desenvolvimento de software e microestrutura de mercado / intercâmbio. Eu não poderia esperar para cobrir todos esses tópicos em um artigo, então eu vou dividi-los em duas ou três peças menores. O que vamos discutir nesta seção? Começarei definindo backtesting e depois descreverei os conceitos básicos de como é realizado. Então, elucidaremos os vícios que abordamos no Guia do Iniciante de Negociação Quantitativa. Em seguida, apresentarei uma comparação das várias opções de software de backtesting disponíveis.


Em artigos subsequentes, analisaremos os detalhes das implementações da estratégia que muitas vezes são mal mencionadas ou ignoradas. Também consideraremos como tornar o processo de backtesting mais realista, incluindo as idiossincrasias de uma troca comercial. Então discutiremos custos de transação e como modelá-los corretamente em uma configuração de backtest. Terminaremos com uma discussão sobre o desempenho de nossos backtests e, finalmente, forneceremos um exemplo de uma estratégia quantitativa comum, conhecida como troca de pares de reversão média.


Vamos começar discutindo o que é backtesting e por que devemos realizá-lo em nossa negociação algorítmica.


O que é Backtesting?


A negociação algorítmica se distingue de outros tipos de classes de investimento porque podemos fornecer expectativas mais confiáveis ​​sobre o desempenho futuro do desempenho passado, como conseqüência da abundante disponibilidade de dados. O processo pelo qual isso é realizado é conhecido como backtesting.


Em termos simples, o backtesting é realizado expondo seu algoritmo de estratégia particular a um fluxo de dados financeiros históricos, o que leva a um conjunto de sinais comerciais. Cada comércio (o que significaremos aqui ser uma "ida e volta" de dois sinais) terá um lucro ou perda associada. A acumulação deste lucro / perda ao longo da sua estratégia backtest levará ao lucro total (também conhecido como 'P & L' ou 'PnL'). Essa é a essência da idéia, embora seja claro que o "diabo está sempre nos detalhes"!


Quais são os principais motivos para testar uma estratégia algorítmica?


Filtração - Se você se lembra do artigo sobre Identificação de Estratégia, nosso objetivo na fase de pesquisa inicial foi configurar um pipeline estratégico e depois filtrar qualquer estratégia que não atendesse a determinados critérios. Backtesting nos fornece outro mecanismo de filtração, pois podemos eliminar estratégias que não atendem às nossas necessidades de desempenho. Modelagem - Backtesting nos permite (com segurança!) Testar novos modelos de certos fenômenos do mercado, como custos de transação, roteamento de ordens, latência, liquidez ou outros problemas de microestrutura de mercado. Otimização - Embora a otimização da estratégia esteja repleta de preconceitos, o backtesting nos permite aumentar o desempenho de uma estratégia modificando a quantidade ou os valores dos parâmetros associados a essa estratégia e recalculando sua performance. Verificação - Nossas estratégias geralmente são obtidas externamente, através do nosso pipeline estratégico. Backtesting uma estratégia garante que não foi implementado incorretamente. Embora raramente tenhamos acesso aos sinais gerados por estratégias externas, muitas vezes teremos acesso às métricas de desempenho, como as características Sharpe Ratio e Drawdown. Assim, podemos compará-los com nossa própria implementação.


Backtesting oferece uma série de vantagens para negociação algorítmica. No entanto, nem sempre é possível fazer uma estratégia de forma direta. Em geral, à medida que a frequência da estratégia aumenta, torna-se mais difícil modelar corretamente os efeitos da microestrutura do mercado e das trocas. Isso leva a backtests menos confiáveis ​​e, portanto, uma avaliação mais complicada de uma estratégia escolhida. Este é um problema particular em que o sistema de execução é a chave para o desempenho da estratégia, como acontece com os algoritmos de ultra alta frequência.


Infelizmente, o backtesting está repleto de preconceitos de todos os tipos. Nós abordamos algumas dessas questões em artigos anteriores, mas agora vamos discutir em profundidade.


Biases que afetam a estratégia Backtests.


Existem muitos preconceitos que podem afetar o desempenho de uma estratégia pré-testada. Infelizmente, esses distúrbios tendem a inflar o desempenho ao invés de prejudicar. Assim, você sempre deve considerar um backtest como um limite superior idealizado sobre o desempenho real da estratégia. É quase impossível eliminar os vícios da negociação algorítmica, pelo que é nosso trabalho minimizá-los da melhor forma possível para tomar decisões informadas sobre nossas estratégias algorítmicas.


Existem quatro vieses principais que eu gostaria de discutir: Bias de Otimização, Bias de Look-Ahead, Bias de Sobrevivência e Bias de Tolerância Psicológica.


Bias de otimização.


Este é provavelmente o mais insidioso de todos os preconceitos de backtest. Isso envolve o ajuste ou a introdução de parâmetros de negociação adicionais até que o desempenho da estratégia no conjunto de dados do backtest seja muito atraente. No entanto, uma vez que o desempenho da estratégia pode ser marcadamente diferente. Outro nome para este viés é "ajuste de curva" ou "viés de snooping de dados".


O viés de otimização é difícil de eliminar, pois estratégias algorítmicas geralmente envolvem muitos parâmetros. Os "Parâmetros" nesta instância podem ser os critérios de entrada / saída, períodos de retorno, períodos de média (ou seja, o parâmetro de suavização da média móvel) ou a frequência de medição da volatilidade. O viés de otimização pode ser minimizado mantendo o número de parâmetros ao mínimo e aumentando a quantidade de pontos de dados no conjunto de treinamento. Na verdade, é preciso também ter cuidado com este último, já que os pontos de treinamento mais antigos podem estar sujeitos a um regime prévio (como um ambiente regulatório) e, portanto, podem não ser relevantes para sua estratégia atual.


Um método para ajudar a mitigar esse viés é realizar uma análise de sensibilidade. Isso significa variar os parâmetros de forma incremental e traçar uma "superfície" de desempenho. Som, o raciocínio fundamental para opções de parâmetros deve, com todos os outros fatores considerados, levar a uma superfície de parâmetro mais suave. Se você tem uma superfície de desempenho muito nervosa, muitas vezes significa que um parâmetro não está refletindo um fenômeno e é um artefato dos dados do teste. Existe uma vasta literatura sobre algoritmos de otimização multidimensional e é uma área de pesquisa altamente ativa. Não vou me aprofundar aqui, mas mantenha-o no fundo de sua mente quando você encontrar uma estratégia com um backtest fantástico!


Look-Ahead Bias.


O viés prospectivo é introduzido em um sistema backtesting quando os dados futuros são incluídos acidentalmente em um ponto na simulação onde esses dados não estarão realmente disponíveis. Se estamos executando o backtest cronologicamente e chegarmos ao ponto de tempo $ N $, o viés de frente para a frente ocorre se os dados estiverem incluídos para qualquer ponto $ N + k $, onde $ k> 0 $. Os erros de polarização anteriores podem ser extremamente sutis. Aqui estão três exemplos de como o viés favorável pode ser introduzido:


Bugs técnicos - Arrays / vetores no código geralmente têm iteradores ou variáveis ​​de índice. Deslocamentos incorretos desses índices podem levar a um viés avançado, incorporando dados em $ N + k $ por zero $ k $. Cálculo de parâmetro - Outro exemplo comum de polarização aparente ocorre ao calcular parâmetros de estratégia ótimos, como, por exemplo, com regressões lineares entre duas séries temporais. Se todo o conjunto de dados (incluindo dados futuros) é usado para calcular os coeficientes de regressão e, portanto, aplicado retroativamente a uma estratégia de negociação para fins de otimização, os dados futuros estão sendo incorporados e existe um viés de espera. Maxima / Minima - Certas estratégias de negociação utilizam valores extremos em qualquer período de tempo, como incorporar os preços altos ou baixos nos dados da OHLC. No entanto, uma vez que estes valores máximos / mínimos só podem ser calculados no final de um período de tempo, um viés de avanço é introduzido se esses valores forem usados ​​- durante o período atual. É sempre necessário atrasar valores altos / baixos em pelo menos um período em qualquer estratégia comercial que os use.


Tal como acontece com o viés de otimização, é preciso ter o cuidado de evitar sua introdução. Muitas vezes, é a principal razão pela qual as estratégias de negociação apresentam um desempenho inferior ao de seus efeitos negativos significativamente na "negociação ao vivo".


Viés de sobrevivência.


O viés de sobrevivência é um fenômeno particularmente perigoso e pode levar a desempenho significativamente inflacionado para determinados tipos de estratégia. Ocorre quando as estratégias são testadas em conjuntos de dados que não incluem o universo completo de ativos anteriores que podem ter sido escolhidos em um determinado momento, mas apenas consideram aqueles que "sobreviveram" até o momento atual.


Por exemplo, considere testar uma estratégia em uma seleção aleatória de ações antes e depois do crash do mercado de 2001. Algumas ações de tecnologia faliram, enquanto outras conseguiram ficar à tona e até prosperaram. Se tivéssemos restringido esta estratégia apenas às ações que passaram pelo período de retirada do mercado, estaremos apresentando um viés de sobrevivência porque já demonstraram seu sucesso para nós. Na verdade, este é apenas outro caso específico de viés prospectivo, já que as futuras informações estão sendo incorporadas na análise passada.


Existem duas maneiras principais de mitigar o viés de sobrevivência na estratégia de backtests:


Survivorship Bias Free Datasets - No caso de dados de capital, é possível comprar conjuntos de dados que incluam entidades excluídas, embora não sejam baratos e apenas tendem a ser utilizados por empresas institucionais. Em particular, os dados do Yahoo Finance não são viés de sobrevivência livre, e isso é comumente usado por muitos comerciantes de algo de varejo. Pode-se também negociar em classes de ativos que não são propensas ao viés de sobrevivência, como certas commodities (e seus derivados futuros). Use dados mais recentes - No caso de ações, o uso de um conjunto de dados mais recente mitiga a possibilidade de que a seleção de ações escolhida seja ponderada para "sobreviventes", simplesmente porque há uma menor probabilidade de exclusão geral de estoque em períodos de tempo mais curtos. Pode-se também começar a construir um conjunto de dados pessoais sem sobrevivência, coletando dados do ponto atual. Após 3-4 anos, você terá um sólido conjunto de dados de ações de sobrevivência e tendenciosidade com o qual voltar a testar outras estratégias.


Vamos agora considerar certos fenômenos psicológicos que podem influenciar o seu desempenho comercial.


Tolerância de tolerância psicológica.


Este fenômeno particular não é freqüentemente discutido no contexto da negociação quantitativa. No entanto, é discutido extensivamente em relação a métodos comerciais mais discricionários. Tem vários nomes, mas eu decidi chamá-lo de "viés de tolerância psicológica" porque ele capta a essência do problema. Ao criar backtests ao longo de um período de 5 anos ou mais, é fácil analisar uma curva de equidade tendencialmente ascendente, calcular o retorno anual composto, o índice Sharpe e até mesmo as características de retirada e ficar satisfeito com os resultados. Como exemplo, a estratégia pode ter uma redução relativa máxima de 25% e uma duração máxima de retirada de 4 meses. Isso não seria atípico para uma estratégia de impulso. É direto convencer-se de que é fácil tolerar tais períodos de perdas porque a imagem geral é corajosa. No entanto, na prática, é muito mais difícil!


Se as retiradas históricas de 25% ou mais ocorrerem nos backtests, então, com toda a probabilidade, você verá períodos de rebaixamento similar na negociação ao vivo. Esses períodos de retração são psicologicamente difíceis de suportar. Tenho observado de primeira mão o que pode ser um alongamento prolongado, em um ambiente institucional, e não é agradável - mesmo que os backtests sugerem que tais períodos ocorrerão. A razão pela qual eu chamo de "viés" é que, muitas vezes, uma estratégia que, de outra forma, seria bem-sucedida, é interrompida na negociação durante os períodos de redução prolongada e, portanto, levará a um desempenho inferior significativo em comparação com um backtest. Assim, mesmo que a estratégia seja de natureza algorítmica, os fatores psicológicos ainda podem ter uma forte influência na lucratividade. O takeaway é garantir que, se você ver retrações de uma certa porcentagem e duração nos backtests, então você deve esperar que eles ocorram em ambientes de negociação ao vivo, e precisará perseverar para alcançar a rentabilidade mais uma vez.


Pacotes de software para backtesting.


A paisagem do software para teste de estratégia é vasta. As soluções variam de software sofisticado de grau institucional totalmente integrado até linguagens de programação como C ++, Python e R, onde quase tudo deve ser escrito a partir do zero (ou "plugins" adequados). Como comerciantes quantos estamos interessados ​​no equilíbrio de poder "possuir" nossa plataforma de tecnologia comercial versus a velocidade e a confiabilidade de nossa metodologia de desenvolvimento. Aqui estão as principais considerações para escolha de software:


Habilidade de programação - A escolha do ambiente será, em grande parte, reduzida a sua capacidade de programar o software. Eu argumentaria que estar no controle da pilha total terá um maior efeito em sua P & L de longo prazo do que a terceirização, tanto quanto possível, para o software do fornecedor. Isso deve-se ao risco negativo de ter erros ou idiossincrasias externas que você não conseguiu consertar no software do fornecedor, o que de outra forma seria facilmente corrigido se você tivesse mais controle sobre sua "stack de tecnologia". Você também quer um ambiente que alcance o equilíbrio certo entre produtividade, disponibilidade da biblioteca e velocidade de execução. Faço minha própria recomendação pessoal abaixo. Capacidade de Execução / Interação Broker - Alguns softwares de backtesting, como Tradestation, vinculam diretamente uma corretora. Eu não sou fã desta abordagem, pois reduzir os custos de transação são muitas vezes um grande componente de obter uma proporção Sharpe mais alta. Se você estiver vinculado a um corretor particular (e a Tradestation "força" você a fazer isso), então você terá um tempo mais difícil de transição para o novo software (ou um novo corretor) se for necessário. Os corretores interativos fornecem uma API que é robusta, embora com uma interface ligeiramente obtusa. Personalização - Um ambiente como o MATLAB ou o Python oferece uma grande flexibilidade ao criar estratégias de algo, pois oferecem bibliotecas fantásticas para praticamente qualquer operação matemática imaginável, mas também permitem uma personalização extensiva, quando necessário. Complexidade de Estratégia - Certos softwares simplesmente não são recortados para uma grande combinação de números ou complexidade matemática. O Excel é uma dessas peças de software. Embora seja bom para estratégias mais simples, não pode realmente lidar com inúmeros recursos ou algoritmos mais complicados, com rapidez. Minimização de polarização - Uma determinada peça de software ou dados se presta mais aos viés de negociação? Você precisa se certificar de que se você quiser criar toda a funcionalidade você mesmo, que não introduza problemas que possam levar a desvios. Velocidade do Desenvolvimento - Não devemos passar meses e meses implementando um mecanismo de back-test. A prototipagem só deve demorar algumas semanas. Certifique-se de que o seu software não está impedindo o seu progresso em grande medida, apenas para obter alguns pontos percentuais adicionais de velocidade de execução. C ++ é o "elefante na sala" aqui! Velocidade de Execução - Se sua estratégia for completamente dependente da pontualidade de execução (como em HFT / UHFT), será necessário um idioma como C ou C ++. No entanto, você estará presumindo a otimização do kernel do Linux e o uso de FPGA para esses domínios, que está fora do escopo deste artigo! Custo - Muitos dos ambientes de software que você pode programar estratégias de negociação algorítmicas são totalmente gratuitos e de código aberto. Na verdade, muitos hedge funds utilizam software de código aberto para todas as suas plataformas de troca de algo. Além disso, o Excel e o MATLAB são relativamente baratos e existem até alternativas gratuitas para cada um.


Agora que listámos os critérios com os quais precisamos escolher a nossa infra-estrutura de software, quero executar alguns dos pacotes mais populares e como eles comparam:


Nota: Eu só vou incluir o software que está disponível para a maioria dos profissionais de varejo e desenvolvedores de software, pois este é o público do site. Enquanto outros softwares estão disponíveis, como as ferramentas de grau institucional, eu acho que estas são muito caras para ser efetivamente usadas em uma área de varejo e eu pessoalmente não tenho experiência com elas.


1.000 USD para uma licença.


Estratégias diferentes exigirão diferentes pacotes de software. As estratégias HFT e UHFT serão escritas em C / C ++ (estes dias são muitas vezes realizadas em GPUs e FPGAs), enquanto as estratégias de equidade direcional de baixa freqüência são fáceis de implementar na TradeStation, devido à natureza "tudo em um" da software / corretagem.


Minha preferência pessoal é para o Python, pois fornece o grau certo de personalização, velocidade de desenvolvimento, capacidade de teste e velocidade de execução para minhas necessidades e estratégias. Se eu precisar de algo mais rápido, posso "entrar" em C ++ diretamente dos meus programas Python. Um método preferido por muitos comerciantes quant é prototar suas estratégias em Python e depois converter as seções de execução mais lentas em C ++ de maneira iterativa. Eventualmente, todo o algo está escrito em C ++ e pode ser "deixado sozinho para trocar"!


Nos próximos artigos sobre backtesting, analisaremos algumas questões específicas relacionadas à implementação de um sistema de backtesting de negociação algorítmica, bem como a forma de incorporar os efeitos das trocas comerciais. Vamos discutir a medida de desempenho da estratégia e finalmente concluir com uma estratégia de exemplo.


Apenas iniciando o comércio quantitativo?


3 razões para se inscrever para a lista de e-mails QuantStart:


1. Quant Trading Lessons.


Você terá acesso instantâneo a um curso de e-mail gratuito de 10 partes, repleto de sugestões e dicas para ajudá-lo a começar a negociação quantitativa!


2. Todo o conteúdo mais recente.


Todas as semanas, vou enviar-lhe um envoltório de todas as atividades no QuantStart para que você nunca mais perca uma postagem novamente.


Real, dicas de negociação viáveis, sem tonturas.


Forex Algorithmic Trading: um conto prático para engenheiros.


Como você pode saber, o mercado cambial (Forex, ou FX) é usado para negociação entre pares de moedas. Mas você pode não estar ciente de que é o mercado mais líquido do mundo.


Alguns anos atrás, impulsionados pela minha curiosidade, fiz os primeiros passos no mundo da negociação algorítmica Forex criando uma conta demo e jogando simulações (com dinheiro falso) na plataforma de negociação Meta Trader 4.


Depois de uma semana de "negociação", quase dobrava meu dinheiro. Estimulado pela minha própria negociação algorítmica bem sucedida, cavei e, eventualmente, me inscrevi para vários fóruns de FX. Logo, passava horas lendo sobre sistemas de negociação algorítmica (conjuntos de regras que determinam se você deve comprar ou vender), indicadores personalizados, modos de mercado e muito mais.


Meu primeiro cliente.


Por volta dessa época, por acaso, ouvi dizer que alguém estava tentando encontrar um desenvolvedor de software para automatizar um sistema comercial simples. Isso estava de volta aos dias da faculdade quando eu estava aprendendo sobre programação simultânea em Java (threads, semáforos e todo esse lixo). Eu pensei que este sistema automatizado não poderia ser muito mais complicado do que o meu curso avançado de ciências de dados funcionar, então eu perguntei sobre o trabalho e entrou a bordo.


O cliente queria um software de negociação algorítmica construído com o MQL4, uma linguagem de programação funcional usada pela plataforma Meta Trader 4 para realizar ações relacionadas a estoque.


O papel da plataforma de negociação (Meta Trader 4, neste caso) é fornecer uma conexão com um corretor Forex. O corretor fornece uma plataforma com informações em tempo real sobre o mercado e executa suas ordens de compra / venda. Para leitores que não estão familiarizados com o comércio de Forex, aqui estão as informações fornecidas pelo feed de dados:


Através do Meta Trader 4, você pode acessar todos esses dados com funções internas, acessíveis em vários prazos: a cada minuto (M1), a cada cinco minutos (M5), M15, M30, a cada hora (H1), H4, D1, W1, MN .


O movimento do preço atual é chamado de tiquetaque. Em outras palavras, um tiquetaque é uma alteração no preço de lance ou pedido para um par de moedas. Durante os mercados ativos, pode haver vários carrapatos por segundo. Durante os mercados lentos, pode haver minutos sem um tiquetaque. O tiquetaque é o batimento cardíaco de um robô de mercado de moeda.


Quando você faz um pedido através dessa plataforma, você compra ou vende um determinado volume de uma determinada moeda. Você também define os limites stop-loss e take-profit. O limite de stop-loss é a quantidade máxima de pips (variações de preço) que você pode perder antes de desistir de um comércio. O limite de lucro obtido é a quantidade de pips que você irá acumular a seu favor antes de descontar.


As especificações de negociação algorítmica do cliente eram simples: eles queriam um robô Forex com base em dois indicadores. Para o fundo, os indicadores são muito úteis ao tentar definir um estado de mercado e tomar decisões comerciais, já que eles são baseados em dados passados ​​(por exemplo, valor de preço mais alto nos últimos n dias). Muitos vieram integrados ao Meta Trader 4. No entanto, os indicadores de que meu cliente estava interessado vieram de um sistema de comércio personalizado.


Eles queriam trocar todas as vezes que dois desses indicadores personalizados se cruzassem, e apenas em certo ângulo.


À medida que eu resolvi as mãos, eu aprendi que os programas MQL4 têm a seguinte estrutura:


A função de início é o coração de cada programa MQL4, uma vez que é executado sempre que o mercado se move (ergo, esta função será executada uma vez por marca). Este é o caso, independentemente do prazo que você está usando. Por exemplo, você poderia estar operando no cronograma H1 (uma hora), mas a função inicial executaria muitos milhares de vezes por período de tempo.


Para contornar isso, forcei a função a executar uma vez por unidade de período:


Obtendo os valores dos indicadores:


A lógica de decisão, incluindo a interseção dos indicadores e seus ângulos:


Enviando os pedidos:


Se você estiver interessado, você pode encontrar o código completo e executável no GitHub.


Backtesting.


Uma vez que eu construí meu sistema de negociação algorítmica, eu queria saber: 1) se estava se comportando adequadamente e 2) se a estratégia de negociação Forex fosse usada.


Backtesting (às vezes escrito "back-testing") é o processo de testar um sistema particular (automatizado ou não) sob os eventos do passado. Em outras palavras, você testa seu sistema usando o passado como um proxy para o presente.


MT4 vem com uma ferramenta aceitável para backtesting uma estratégia de negociação Forex (hoje em dia, existem mais ferramentas profissionais que oferecem maior funcionalidade). Para começar, você configura seus prazos e executa seu programa sob uma simulação; A ferramenta irá simular cada tico sabendo que, para cada unidade, ele deve abrir a certo preço, fechar a um determinado preço e alcançar altos e baixos especificados.


Depois de comparar as ações do programa com preços históricos, você terá um bom senso se está ou não executando corretamente.


Do backtesting, eu chequei a taxa de retorno do robô FX para alguns intervalos de tempo aleatórios; Escusado será dizer que sabia que o meu cliente não iria ficar rico com isso - os indicadores que ele havia escolhido, juntamente com a lógica da decisão, não eram lucrativos. Como amostra, aqui estão os resultados da execução do programa na janela M15 para 164 operações:


Observe que nosso equilíbrio (a linha azul) termina abaixo do seu ponto de partida.


Otimização de parâmetros e suas mentiras.


Embora o backtesting me tenha deixado cauteloso com a utilidade desse robô FX, fiquei intrigado quando comecei a brincar com seus parâmetros externos e notei grandes diferenças na relação de retorno geral. Esta ciência particular é conhecida como otimização de parâmetros.


Eu fiz alguns testes difíceis para tentar inferir o significado dos parâmetros externos na Razão de retorno e surgiu algo como isto:


Você pode pensar (como eu fiz) que você deve usar o Parâmetro A. Mas a decisão não é tão direta como pode aparecer. Especificamente, observe a imprevisibilidade do Parâmetro A: para valores de erro pequenos, seu retorno muda drasticamente. Em outras palavras, o Parâmetro A é muito provável que a previsão excessiva de resultados futuros, uma vez que qualquer incerteza, qualquer alteração no total resultará em um desempenho pior.


Mas, de fato, o futuro é incerto! E o retorno do Parâmetro A também é incerto. A melhor escolha, de fato, é confiar na imprevisibilidade. Muitas vezes, um parâmetro com um retorno máximo mais baixo, mas uma previsibilidade superior (menor flutuação) será preferível a um parâmetro com alto retorno, mas uma previsibilidade fraca.


O único que você pode ter certeza é que você não conhece o futuro do mercado, e pensar que você sabe como o mercado vai atuar com base em dados passados ​​é um erro. Por sua vez, você deve reconhecer essa imprevisibilidade em suas previsões Forex.


Isso não significa necessariamente que devemos usar o Parâmetro B, porque mesmo os retornos mais baixos do Parâmetro A funcionam melhor do que o Parâmetro B; Isso é apenas para mostrar que os Parâmetros de Otimização podem resultar em testes que exageram os resultados futuros prováveis, e esse pensamento não é óbvio.


Considerações globais de comércio de algoritmo Forex.


Desde essa primeira experiência de negociação de Forex algorítmica, construí vários sistemas de negociação automatizados para clientes e posso dizer que há espaço para explorar e continuar a análise de Forex a ser feito. Por exemplo, recentemente construí um sistema baseado em encontrar os chamados movimentos de "Big Fish"; isto é, grandes variações de pips em pequenas e minúsculas unidades de tempo. Este é um assunto que me fascina.


Construir o seu próprio sistema de simulação FX é uma excelente opção para aprender mais sobre o comércio de Forex e as possibilidades são infinitas. Por exemplo, você poderia tentar decifrar a distribuição de probabilidade das variações de preços em função da volatilidade em um mercado (EUR / USD, por exemplo), e talvez criar um modelo de simulação de Monte Carlo usando a distribuição por estado de volatilidade, usando qualquer grau de precisão que você deseja. Vou deixar isso como um exercício para o leitor ansioso.


O mundo Forex pode ser esmagador às vezes, mas espero que este artigo tenha dado alguns pontos sobre como começar em sua própria estratégia de negociação Forex.


Leitura adicional.


Hoje em dia, existe um vasto conjunto de ferramentas para construir, testar e melhorar as Automatizações do Sistema de Negociação: Trading Blox para testes, NinjaTrader para negociação, OCaml para programação, para citar alguns.


Eu li extensivamente sobre o mundo misterioso que é o mercado de moeda. Aqui estão alguns write-ups que eu recomendo para programadores e leitores entusiasmados:


Compreendendo o básico.


Sobre o que Forex é negociado?


O comércio Forex (ou FX) está comprando e vendendo por meio de pares de moedas (por exemplo, USD vs. EUR) no mercado de câmbio.


Como o Forex ganha dinheiro?


Os corretores de Forex ganham dinheiro através de comissões e taxas. Os comerciantes de Forex ganham (ou perdem) o dinheiro com base em seu tempo: se eles conseguirem vender alto o suficiente em comparação com quando eles compraram, eles podem lucrar.


O que há para testar uma estratégia de negociação?


Backtesting é o processo de testar uma estratégia ou sistema específico usando os eventos do passado.


O que é o comércio algorítmico?


O comércio algorítmico é quando um robô / programa usa um conjunto de regras que dizem quando comprar ou vender.

Comments

Popular posts from this blog

Simbolismo de três corvos pretos

Você já viu corvos? O que o corvo simpatiza (mais do que a morte) Na outra manhã, corri para o meu carro para pegar minha bolsa quando eu ouvi o mais alto # 8220; CAW & # 8221; do meu lado. Olhei de volta para a minha casa e notei um corvo empoleirado na borda de uma janela. Quando eu olhei para ele, voltou a cair e voou para longe. Meu pensamento imediato foi: "Oh meu Deus, quem vai morrer?" # 8221; Sinceramente, não acho que estou sozinho pensando isso. Crows há muito simbolizam a morte porque são pássaros carrion, pássaros que se alimentam de animais mortos. Existem muitos mitos que envolvem aves carrion. Por exemplo, corvos e abutres são ditos simbolizar a guerra, a morte e o infortúnio, e até mesmo são ditos serem retratados como familiares de bruxas. Claro que isso é toda especulação e eu tenho certeza que muitas pessoas já disputam as representações místicas que os pássaros têm, então eu aconselho você a manter uma mente aberta se você optar por ler mais. Fatos do ...