Thursday 19 April 2018

Testando estratégias de negociação algorítmicas


Teste de Estratégia.


O Strategy Tester permite que você teste e otimize as estratégias de negociação (Expert Advisors) antes de usá-las para negociação ao vivo. Durante o teste, um consultor especialista com parâmetros iniciais é executado em dados do histórico. Durante a otimização, uma estratégia de negociação é executada várias vezes com diferentes conjuntos de parâmetros que permitem selecionar a combinação mais adequada.


O Strategy Tester é uma ferramenta multi-moeda, que permite testar e otimizar estratégias de negociação de múltiplos instrumentos financeiros. O testador processa automaticamente informações de todos os símbolos que são usados ​​na estratégia de negociação, portanto, você não precisa especificar manualmente a lista de símbolos para teste / otimização.


O Strategy Tester é multi-threaded, permitindo assim usar todos os recursos disponíveis do computador. Testes e otimização são realizados usando agentes de computação especiais instalados como serviços no computador do usuário. Os agentes trabalham de forma independente e permitem o processamento paralelo de passagens de otimização.


Um número ilimitado de agentes remotos pode ser conectado ao Strategy Tester. Além disso, o Strategy Tester pode acessar o MQL5 Cloud Network. Ele reúne milhares de agentes em todo o mundo, e esse poder computacional está disponível para qualquer usuário da plataforma de negociação.


Além dos testes e otimização do Expert Advisor, você pode usar o Strategy Tester para testar a operação de indicadores personalizados no modo visual. Este recurso permite testar facilmente a operação das versões de demonstração dos indicadores baixados do mercado.


Como testar.


O teste de um Expert Advisor é a execução única com parâmetros fixos usando dados de preços históricos. Ele permite que você teste como a estratégia funciona antes de usá-lo em um mercado real.


Assista ao vídeo: como testar consultores e indicadores experientes antes da compra.


Assista ao vídeo para saber como testar um robô comercial antes de comprá-lo no mercado. Todos os produtos do mercado são fornecidos com uma versão de demonstração gratuita, que pode ser testada no Strategy Tester. Assista ao vídeo para obter detalhes.


Como selecionar um robô de negociação para testes.


Clique em & quot; Teste " no menu de contexto de um Expert Advisor na janela Navigator.


Depois disso, o Expert Advisor é selecionado no Strategy Tester.


Habilite símbolos necessários no Market Watch para consultores especializados em várias moedas.


O Strategy Tester permite estratégias de backtesting que comercializam vários símbolos. Esses robôs comerciais são convencionalmente chamados de assessores especializados em várias correntes.


O testador baixa automaticamente o histórico de símbolos necessários da plataforma de negociação (não do servidor de comércio!) Durante a primeira chamada dos dados de símbolo. Somente os dados do histórico de preços em falta são adicionalmente baixados do servidor de negociação.


Antes de começar a testar um Expert Advisor multi-moeda, habilite os símbolos necessários para testes no Market Watch. Abra seu menu de contexto, clique em & quot; Símbolos & quot; e habilite os instrumentos necessários.


Escolhendo parâmetros de teste.


Antes de começar a testar, selecione o instrumento financeiro para testar a operação do robô comercial, o período e o modo.


Símbolo e período.


Selecione o gráfico principal para testes e otimização. A seleção de símbolos é necessária para fornecer o desencadeamento de eventos OnTick () contidos em Expert Advisors. Além disso, o símbolo e o período selecionados afetam funções especiais no código Expert Advisor que usa os parâmetros atuais do gráfico (por exemplo, Symbol () e Period ()). Em outras palavras, o gráfico a que o Consultor Especial está vinculado deve ser selecionado aqui.


Selecione o período de teste e otimização. Você pode selecionar um dos períodos predefinidos ou definir um intervalo de tempo personalizado. Para definir um período personalizado, insira as datas de início e término nos campos apropriados à direita.


A característica específica do testador é que, adicionalmente, baixa alguns dados que precedem o período especificado (para formar no menos de 100 barras). Isso é necessário para um teste e otimização mais precisos. Por exemplo, se você testar em um período de uma semana, dois anos adicionais são baixados.


Se não houver dados de histórico suficientes para formar 100 barras adicionais (é especialmente significativo para os quadros mensais e semanais), por exemplo, ao especificar um início de teste próximo ao início dos dados de histórico existentes, a data de início do teste será ser automaticamente deslocado. Uma mensagem apropriada é adicionada ao jornal Strategy Tester.


Esta opção permite que você verifique os resultados dos testes para evitar ajustes em determinados intervalos de tempo. Durante o teste a frente, o período definido no campo Data é dividido em duas partes de acordo com o período de frente selecionado (meio, um terço, um quarto ou um período personalizado quando você especifica a data de início do teste para frente).


A primeira parte é o período de teste de volta. É o período de adaptação da operação do Consultor Especialista. A segunda parte é o teste direto, durante o qual os parâmetros selecionados são verificados.


O testador de estratégia permite que você imite os atrasos da rede durante uma operação do Consultor Especializado, a fim de tornar os testes mais próximos das condições reais. Uma certa demora é inserida entre a colocação de uma solicitação comercial e sua execução no testador de estratégia. A partir do momento de enviar um pedido até a sua execução, o preço pode mudar. Isso permite que você avalie como a velocidade de processamento comercial afeta os resultados da negociação.


No caso do modo de execução instantânea, os usuários podem verificar adicionalmente a resposta da EA a um requote do servidor de comércio. Se a diferença entre os preços solicitados e de execução exceder o valor de desvio especificado na ordem, a EA recebe um requote.


Observe que os atrasos funcionam somente para negócios realizados por uma EA (colocando pedidos, alterando os níveis de parada, etc.). Por exemplo, se uma EA usa ordens pendentes, os atrasos são aplicados somente para fazer um pedido, mas não para sua execução (em condições reais, a execução ocorre no servidor sem um atraso na rede).


Neste modo, todos os pedidos são executados a preços solicitados sem requerimentos. O modo é usado para verificar uma EA em condições "perfeitas".


Este modo permite testar uma EA em condições próximas das reais. O valor de atraso é gerado da seguinte forma: um número de 0 a 9 é selecionado aleatoriamente - este é o número de segundos para um atraso; se um número selecionado for igual a 9, outro número do mesmo intervalo é selecionado aleatoriamente e adicionado ao primeiro.


Assim, a possibilidade de um atraso de 0-8 segundos é de 90%, a possibilidade de um atraso de 9-18 segundos é de 10%.


Você pode selecionar um dos valores de atraso predefinidos ou definir um personalizado. A plataforma mede o ping para o servidor de comércio e permite que você configure esse valor como um atraso no testador para que você seja capaz de testar um robô nas condições mais próximas possível das reais.


Marque o modo de geração.


Selecione um dos modos de geração de tiques:


Cada marca é a mais precisa, mas também o modo mais lento. Emula todos os carrapatos. Cada tiquetaque baseado em tiques reais é tão próximo das condições reais quanto possível. Usa tiques reais de instrumentos financeiros acumulados por um corretor. A emulação não é realizada. Os dados de marcação têm tamanho maior. Fazer o download pode levar bastante tempo durante o primeiro teste. 1 minuto OHLC - neste modo apenas 4 preços (Open, High, Low e Close) de cada barra de minutos são emulados. Apenas preços abertos - neste modo, os preços da OHLC também são modelados, no entanto, apenas o preço aberto é usado para testes / otimização. Cálculos de matemática - neste modo, o testador não faz o download dos dados e informações do histórico em símbolos e também não gera carrapatos. Somente as funções OnInit (), OnTester () e OnDeinit () são chamadas. Assim, um testador pode ser usado para vários cálculos matemáticos onde a seleção de parâmetros é necessária.


Para obter mais informações sobre a geração de tiques, leia a seção apropriada.


Depósito inicial e alavancagem.


Especifique a quantidade do depósito inicial usado para testes e otimização. A moeda depende da moeda de depósito da conta atualmente conectada. Em seguida, selecione a alavanca para testes e otimização.


Observe que a especificação de símbolo não significa que o testador use apenas esses dados de histórico. O testador baixa automaticamente informações sobre todos os símbolos usados ​​no Expert Advisor. Antes do início do teste / otimização, todos os dados de preço disponíveis do símbolo do gráfico principal são baixados automaticamente do servidor. Pode demorar bastante tempo se a ligação à Internet for lenta. O download de todos os dados é executado uma vez, apenas as informações faltantes são baixadas durante as próximas iniciações. Somente os símbolos atualmente selecionados no Market Watch estão disponíveis para teste / otimização. Os dados de preço de todos os símbolos necessários são baixados automaticamente do servidor durante o teste e otimização. Os testes começam e finalizam às 00h. 00m.00s. das datas especificadas. Assim, a data de início do teste / otimização está incluída no período de teste, enquanto a data de término não está incluída. O teste termina no último tic da data anterior. Além disso, você não pode especificar a data de término, que é maior que a atual. Nesse caso, o teste de qualquer maneira será executado até a data atual (não incluindo).


Seleção de parâmetros de entrada.


Os parâmetros de entrada permitem que você controle o comportamento do Consultor Especializado, adaptando-o a diferentes condições de mercado e um instrumento financeiro específico. Por exemplo, você pode explorar o desempenho do Expert Advisor com diferentes valores Stop Loss e Take Profit, diferentes períodos da média móvel utilizada para análise de mercado e tomada de decisão, etc.


Especifique um valor para cada parâmetro de entrada.


Conjuntos de parâmetros. Você pode, a qualquer momento, retornar às configurações atuais do seu programa MQL5, salvando um conjunto de seus parâmetros usando um menu de contexto:


Para salvar os parâmetros como um arquivo definido em seu computador, clique em & quot; Save & quot ;. Esses arquivos podem ser movidos entre plataformas em diferentes computadores ou enviados para outros usuários. Para salvar parâmetros para uso futuro na plataforma atual, clique em "Salvar versão". Essas predefinições salvas estarão disponíveis, em seguida, na "Versão de carregamento & quot; submenu. Eles podem ser aplicados a qualquer momento, selecionando uma versão apropriada da lista.


Iniciando o teste.


Para iniciar o teste, clique em & quot; Iniciar & quot; no & quot; Configurações & quot; aba. O progresso do teste é exibido para a esquerda.


Onde visualizar os resultados dos testes.


Os resultados de um teste Expert Advisor são exibidos nas guias & quot; Result & quot; e "Gráfico".


Relatório de teste.


Os resultados de teste detalhados são exibidos no & quot; Result & quot; aba. A guia contém resultados gerais de testes, incluindo lucro e número de negócios, bem como muitos valores estatísticos para ajudar a avaliar o desempenho do robô comercial.


Gráficos adicionais visualizam a distribuição do número e o sucesso das operações de negociação por horas, dias e meses, bem como descrevem o parâmetro de risco da estratégia de negociação.


Consulte a seção de relatório de teste para obter detalhes.


Gráfico de teste.


No "Graph" guia, você pode determinar visualmente o quão bem sucedido o Consultor Especial realizado no instrumento selecionado no intervalo de tempo selecionado.


A curva de saldo (linha azul) e a curva de equidade (verde) são mostradas na área principal da guia. As datas são mostradas na escala horizontal, os valores do saldo / patrimônio são mostrados na escala vertical. A parte inferior da guia apresenta um histograma da carga em depósito, que é calculado como a relação entre margem e patrimônio (margem / patrimônio).


Os valores de saldo são mostrados no gráfico cada vez que são alterados (quando uma posição está fechada), os valores patrimoniais são adicionalmente mostrados com uma certa periodicidade entre as mudanças de saldo. Ao testar em contas com o modelo de gerenciamento de risco cambial, o gráfico mostra apenas o patrimônio líquido, enquanto o saldo e a carga de depósito não são mostrados. O status de negociação de tais contas é avaliado com base no nível de equivalência patrimonial. O saldo mostra apenas a quantidade de dinheiro na conta e ignora os ativos e passivos do comerciante. A carga de depósito (margem / patrimônio) não é exibida, porque na margem do modo de cálculo da permuta é igual ao valor descontado atual do ativo / passivo, e muda juntamente com o patrimônio líquido.


Testando o progresso na revista.


O progresso do teste é refletido no & quot; Journal & quot ;. Além disso, as mensagens do Expert Advisor são adicionadas ao Journal. No modo de teste visual, o progresso do teste pode ser visto diretamente no gráfico.


Progresso de teste em um gráfico.


Assim que o teste for concluído, você pode abrir o gráfico no qual o Expert Advisor foi testado (símbolo e período selecionados). Clique em & quot; Open Chart & quot; no menu de contexto do & quot; Result & quot; aba. Todos os negócios realizados pelo Expert Advisor durante o teste são mostrados no gráfico. Se um modelo chamado tester. tpl estiver disponível na pasta / perfis / modelos da plataforma de negociação, ele será aplicado ao gráfico aberto. Se o modelo não estiver disponível, o padrão é usado (default. tpl).


Se o Expert Advisor testado usa indicadores, que são executados no símbolo e período de teste, eles também são exibidos no gráfico. No entanto, se a descarga forçada de um indicador (a função IndicatorRelease) for implementada no código-fonte do Expert Advisor, não é exibida no gráfico.


Testando um Robô de Negociação em um Período Avançado Não Otimizado.


O teste avançado é a corrida repetida do Expert Advisor em um período de tempo diferente. Esse recurso permite evitar ajustes de parâmetros em determinadas áreas de dados históricos.


Para iniciar o teste direto, no campo Avançar da guia Configurações, selecione a parte do período total para isso:


Não são utilizados ensaios sem avanço; 1/2 - metade do período especificado é usado para o teste para frente; 1/3 - um terço do período especificado é usado para o teste para frente; 1/4 - uma quarta do período especificado é usado para o teste para frente; Personalizado - especifique o dia de início do teste direto manualmente.


Sempre a segunda (última) parte do período total é tomada para o teste a frente. A data de início do período de avanço é marcada por uma linha vertical no gráfico.


Quando o teste para frente está ativado, a parte selecionada é separada do período especificado na "Data" campo. A primeira parte é o período de teste de volta, e o segundo é o período de teste para frente.


Os resultados do teste direto são exibidos na aba separada "Encaminhar". A data de início do período de avanço é marcada por uma linha vertical no gráfico.


Teste visual.


No Strategy Tester da plataforma de negociação, você pode testar Expert Advisors e indicadores no modo visual. Este modo permite visualizar exatamente como o Consultor Especial realiza operações de comércio durante o teste posterior. Cada troca é exibida no gráfico de um símbolo financeiro.


Para habilitar o teste visual, selecione & quot; Visualização & quot; nas configurações:


O teste visual não está disponível quando a otimização está habilitada. Os testes visuais só podem ser realizados em agentes locais. Se um agente remoto for selecionado para teste, escolha um local usando o & quot; Selecione & quot; comando em seu menu de contexto.


O teste visual é executado em uma nova janela, que simula uma plataforma de negociação separada: contém gráficos, Market Watch e a janela Toolbox onde você pode visualizar as operações de negociação e o Journal.


Teste do controle do processo.


Para pausar, agilize ou desacelere o teste, use a barra de ferramentas. Você também pode saltar para uma data específica do teste.


Você pode controlar convenientemente o processo de teste através de hot keys, as combinações estão listadas ao lado dos comandos do menu.


Monitorando o teste do Supervisor Especialista em um gráfico.


O objetivo principal desse tipo de teste é a análise visual do desempenho do Expert Advisor. Um gráfico é gerado em tempo real com base em dados de preços históricos emulados. As operações do robô comercial são exibidas neste gráfico.


As operações de negociação são exibidas como ícones (um acordo de compra) e (um acordo de venda). Uma linha pontilhada é exibida entre as entradas do mercado e as saídas.


Você pode alterar a aparência de um gráfico, mostrar indicadores ou objetos gráficos usando modelos. Para um modelo a ser aplicado, seu nome deve corresponder ao nome do Consultor Especializado testado, por exemplo, ExpertMACD. tpl. O modelo deve ser colocado na pasta / perfis / modelos da plataforma de negociação. Uma lista de símbolos disponíveis no modo de gráfico é limitada ao símbolo de teste principal, bem como os símbolos cujos dados são usados ​​pelo consultor especialista. O período do gráfico não pode ser alterado. O período selecionado nas configurações é usado para o gráfico de teste principal. Os períodos solicitados pelo consultor especialista são usados ​​para outros símbolos. Para alternar entre símbolos, use o & quot; Exibir - Gráficos & quot; cardápio.


Exibindo dados de preços no Market Watch.


A janela Market Watch mostra os preços gerados durante o teste. É semelhante ao Market Watch da plataforma de negociação, mas tem algumas características específicas. Para mostrar / ocultar esta janela, use o comando Market Watch no menu Ver ou pressione Ctrl + M.


A guia Símbolos apresenta a informação de preços atual dos instrumentos financeiros. A lista de símbolos exibidos é limitada ao símbolo de teste principal, bem como os símbolos cujos dados são usados ​​pelo Expert Advisor.


A guia Tiqueiros contém um gráfico dos preços gerados durante o teste. O número de carrapatos exibidos é limitado a 64.000.


Exibindo detalhes de barras e valores de indicadores na janela de dados.


A janela de dados exibe informações sobre os preços (OHLC), data e hora de um bar, spread, volume e indicadores. Aqui você pode encontrar rapidamente informações sobre uma barra particular e os indicadores aplicados em um ponto selecionado do gráfico. A janela pode ser ativada ou desativada clicando em & quot; Data Window & quot; no menu Ver ou pressionando Ctrl + D.


A parte superior da janela contém o nome de um instrumento financeiro e o período do gráfico. As informações sobre a posição atual do cursor no gráfico são mostradas abaixo. As informações sobre indicadores abertos em subconjuntos separados são mostradas em blocos separados.


Visualizando detalhes de trades na caixa de ferramentas.


Para um estudo detalhado dos negócios realizados pelo Expert Advisor, use a janela Toolbox. Tem várias guias com as seguintes informações:


Posições abertas atuais e pedidos pendentes O histórico de pedidos e negócios O histórico dos pedidos comerciais do Expert Advisor, incluindo solicitações para modificar ordens pendentes, parada de nível de cargos, etc.


Informações sobre os parâmetros da operação comercial estão disponíveis nas seções Comércio e História.


Detalhes adicionais sobre testes estão disponíveis no Jornal. Contém informações sobre testes e ações do Consultor Especial realizado durante o teste.


Enquanto o visualizador estiver aberto, os logs dos agentes de teste não são enviados para o Strategy Tester da plataforma de negociação. No entanto, eles podem ser vistos através da plataforma de negociação usando os "Questões locais de agentes locais" comando no menu de contexto.


Testando indicadores no modo visual.


O modo de teste visual permite que você monitore o comportamento dos indicadores em dados históricos. Esse recurso permite que você teste facilmente um indicador antes de comprá-lo no mercado. Baixe a versão de demonstração gratuita e execute o indicador no Strategy Tester.


Selecione o tipo de programa & quot; Indicadores & quot ;, então selecione o indicador e clique em & quot; Iniciar & quot ;. O modo de visualização é ativado automaticamente. O resto dos parâmetros são definidos da mesma maneira, como durante o teste de robôs comerciais.


O comportamento do indicador é mostrado em um gráfico, que é plotado com base em seqüências de tiques simulados no testador.


Algorithmic Trading System Design & amp; Implementação.


AlgorithmicTrading é um desenvolvedor de sistemas de negociação de terceiros especializado em sistemas de negociação automatizada, estratégias de negociação algorítmica e análise de negociação quantitativa. Oferecemos dois algoritmos de negociação distintos aos comerciantes de varejo e investidores profissionais.


Assista ao nosso blog de video trading algorítmico, onde nosso desenvolvedor principal analisa o desempenho de 6/10/17 & ndash; 8/8/17 usando nosso sistema de negociação automatizado. Visite nosso Algorithmic Trading Blog para ver todos os vídeos de desempenho para 2018-2017 YTD. A negociação de futuros e opções envolve um risco substancial de perda e não é adequado para todos os investidores.


Comece em Algorithmic Trading hoje.


Os Destaques do Swing Trader.


Nossa Estratégia de Negociação Swing comercializa os S & amp; P 500 Emini Futures (ES) e Ten Year Note (TY). Este é um sistema de negociação 100% automatizado que pode ser executado automaticamente com os melhores esforços por vários corretores registrados da NFA. Também pode ser instalado e carregado na plataforma Tradestation. Os seguintes dados cobrem o período de caminhada (para fora da amostra) que abrange 10/1 / 15-9 / 17/17. Futures Trading envolve um risco substancial de perda e não é apropriado para todos os investidores. O desempenho passado não é indicativo de desempenho futuro. Esses dados assumem que 1 unidade (US $ 15.000) foi negociada durante todo o período em análise (não composto).


* As perdas podem exceder a redução máxima. Isso é medido de um ponto para o outro, fechando o comércio para fechar o comércio. O desempenho passado não é indicativo de desempenho futuro.


O Swing Trader Monthly P / L.


Os negócios que começam em outubro de 2018 são considerados Walk-Forward / Out-of-Sample, enquanto os negócios anteriores a outubro de 2018 são considerados back-testados. O lucro / perda dado é baseado em uma conta de US $ 15.000 que vende uma unidade no Swing Trader. Estes dados não são compostos.


* As perdas podem exceder a redução máxima. Isso é medido de um ponto para o outro, fechando o comércio para fechar o comércio. O desempenho passado não é indicativo de desempenho futuro.


REGRA CFTC 4.41: Os resultados são baseados em resultados de desempenho simulados ou hipotéticos que possuem certas limitações inerentes. Ao contrário dos resultados apresentados em um registro de desempenho real, esses resultados não representam a negociação real. Além disso, como esses negócios não foram efetivamente executados, esses resultados podem ter uma compensação menor ou excessiva do impacto, se houver, de certos fatores do mercado, como a falta de liquidez. Programas de negociação simulados ou hipotéticos em geral também estão sujeitos ao fato de serem projetados com o benefício de retrospectiva. Nenhuma representação está sendo feita que qualquer conta será ou será capaz de alcançar lucros ou perdas semelhantes às exibidas.


Noções básicas de negociação algorítmica.


Algorithmic Trading, também conhecido como Quant Trading é um estilo de negociação que utiliza algoritmos de previsão de mercado para encontrar negociações potenciais. Existem várias sub-categorias de negociação quantitativa para incluir High Frequency Trading (HFT), Arbitrage Estatístico e Market Prediction Analysis. Na AlgorithmicTrading, nos concentramos no desenvolvimento de sistemas de negociação automatizados que colocam negociações de swing, dia e opções para aproveitar as várias ineficiências do mercado.


Atualmente oferecemos dois Futures Trading Systems que comercializam o ES & amp; Futuros de TY. Continue lendo para ver por si mesmo como implementar um sistema de comércio de algo projetado profissionalmente pode ser benéfico para seus objetivos de investimento. Nós não somos consultores de negociação de commodities registrados e, portanto, não controlamos diretamente contas de clientes e ndash; No entanto, negociamos ambos os sistemas de negociação com nosso próprio capital utilizando um dos corretores de execução comercial automatizada.


Exemplo de troca algorítmica.


Estratégia de negociação de futuros: o pacote Swing Trader.


Este pacote utiliza nossos algoritmos de melhor desempenho desde o início. Visite a página do negociante de swing para ver os preços, as estatísticas de comércio, a lista de comércio completo e muito mais. Este pacote é ideal para os céticos que desejam trocar um sistema robusto que tenha feito o bem no comércio cego de troca / saída de amostras. Cansado de modelos otimistas back-testados que nunca parecem funcionar quando comercializados ao vivo? Em caso afirmativo, considere este sistema comercial de caixa preta. Este é o nosso algoritmo de negociação mais popular para venda.


Detalhes no Swing Trader System.


Futuros & amp; Estratégia de negociação de opções: o pacote S & amp; P Crusher v2.


Este pacote utiliza sete estratégias de negociação na tentativa de diversificar melhor sua conta. Este pacote utiliza rotas de swing, jornadas, condores de ferro e chamadas cobertas para aproveitar as várias condições do mercado. Este pacote é negociado em tamanhos de unidades de US $ 30.000 e foi divulgado ao público em outubro de 2018. Visite a página do produto S & amp; P Crusher para ver os resultados testados com base em relatórios de tradição.


Detalhes sobre o S & amp; P Crusher.


Cobrindo os Essentials of Automated Trading System Design.


Vários sistemas de negociação algorítmica estão disponíveis.


Escolha de um dos nossos sistemas de negociação e ndash; The Swing Trader ou o S & amp; P Crusher. Cada página mostra a lista de comércio completo, incluindo otimização de postagem, resultados avançados. Estes sistemas de negociação informatizados de caixa preta são totalmente automatizados para gerar alfa enquanto tentam minimizar o risco.


Algoritmos de negociação múltipla trabalhando juntos.


Nossa metodologia de troca de quantias nos utiliza empregando várias estratégias de negociação de algo para diversificar melhor sua conta de negociação de automóveis. Saiba mais visitando nossa página de metodologia de design de estratégias comerciais.


Negociações durante Bear & amp; Bull Markets.


Em nossa opinião, a chave para o desenvolvimento de um sistema de negociação algorítmico que realmente funciona, é dar conta de múltiplas condições de mercado. A qualquer momento, o mercado poderia passar de um mercado de touro para urso. Ao assumir uma posição agnóstica de direção do mercado, estamos tentando superar em Bull e amp; Condições do mercado de urso.


Sistemas de negociação totalmente automatizados.


Você pode negociar automaticamente nosso software algorítmico usando um corretor de auto-execução (com os melhores esforços). Temos vários corretores para você escolher. Remova decisões emocionais baseadas em sua negociação usando nosso sistema de negociação automatizado.


O Algorithmic Trading funciona?


Acompanhe o progresso diário de nossos algoritmos de negociação quantitativos com o aplicativo intermediário OEC. Você também receberá declarações diárias da firma de compensação registrada da NFA. Você pode comparar cada uma das suas negociações com a lista comercial que publicamos no final de cada dia. Os exemplos completos de negociação algorítmica são publicados para todos verem. A lista de comércio completo pode ser vista visitando a página de negociação algorítmica para o sistema que você está negociando. Deseja ver algumas declarações das contas ao vivo? Visite os retornos ao vivo e amp; página de declarações.


Estratégias de negociação múltiplas.


Nossos sistemas de negociação quantitativos têm expectativas diferentes com base nos algoritmos de previsão empregados. Nossos Sistemas Automatizados de Negociação colocam negociações swing, day trade, condors de ferro e amp; chamadas cobertas. Essas estratégias 100% Quant são baseadas puramente em indicadores técnicos e algoritmos de reconhecimento de padrões.


Nosso software de negociação automatizado ajuda a remover suas emoções da negociação.


Algoritmos de negociação múltipla são negociados como parte de um sistema de comércio algorítmico maior.


Cada estratégia de negociação algorítmica oferecida possui vários pontos fortes e fracos. Seus pontos fortes e fracos são identificados com base em três estados de mercado potenciais: Strong Up, Sideways & amp; Down movendo mercados. A estratégia de negociação do condor de ferro supera os mercados de tendências laterais e ascendentes, enquanto o algoritmo de notas de tesouraria se destaca em mercados em movimento descendente. Com base nos testes de back-testing, espera-se que o algoritmo de momentum funcione bem durante os mercados em movimento. Marque a seguinte coleção de vídeos, onde cada algoritmo de negociação oferecido é revisado pelo desenvolvedor principal. Os pontos fortes de cada troco comercial são revisados ​​juntamente com os fracos daqueles.


Diversos tipos de estratégias de negociação são usados ​​em nosso software de negociação automatizado.


Negociações diárias são inseridas & amp; saíram no mesmo dia, enquanto os negócios de balanço terão um comércio de longo prazo com base nas expectativas para o S & amp; P 500 a tendência maior ou menor no termo intermediário. As negociações de opções são colocadas nas opções S & P 500 Weekly em futuros, geralmente entrando em uma segunda-feira e mantendo até a expiração de sexta-feira.


Estratégias de negociação Swing.


As seguintes Estratégias de Negociação Swing colocam negociações de swing direcional no S & amp; P 500 Emini Futures (ES) e no Ten Year Note (TY). Eles são usados ​​em ambos os sistemas de negociação automatizados que oferecemos para aproveitar as tendências de longo prazo que nossos algoritmos de previsão de mercado esperam.


Futures Swing Trading Strategy # 1: Momentum Swing Trading Algorithm.


A Estratégia de Negociação do Momentum Swing coloca negociações de swing no Emini S & amp; P Futures, aproveitando as condições do mercado que sugerem que um termo intermediário se mova mais alto. Este algoritmo de negociação é usado em ambos os nossos sistemas de negociação automatizados: o S & amp; P Crusher v2 & amp; O Swing Trader.


Futures Swing Trading Strategy # 2: Algoritmo de dez anos de Tesouro.


A Estratégia de Negociação do Tesouro (TY) coloca negociações de swing na Nota de dez anos (TY). Uma vez que o TY normalmente se move inverso para os mercados mais amplos, esta estratégia cria um comércio de swing que é semelhante ao curto-circuito do S & amp; P 500. Este T-Note algo tem expectativas positivas para condições de mercado em baixa. Este algoritmo de negociação é usado em ambos os nossos sistemas de negociação automatizados: o S & amp; P Crusher v2 & amp; O Swing Trader.


Estratégias de negociação diária.


No dia seguinte, as estratégias de negociação colocam negociações diárias no S & amp; P 500 Emini Futures (ES). Eles quase sempre entram em negociações durante os primeiros 20 minutos após a abertura dos mercados de ações e sairão antes do fechamento dos mercados. Paradas apertadas são utilizadas em todos os momentos.


Futures Day Trading Strategy # 1: Day Trading Short Algorithm.


A Estratégia de Negociação de Curto Prazo coloca negociações diárias no Emini S & amp; P Futures quando o mercado mostra fraqueza pela manhã (prefere uma grande diferença). Esta estratégia de negociação é utilizada no sistema de negociação automatizado S & amp; P Crusher v2.


Futures Day Trading Strategy # 2: Algoritmo de negociação Day Breakout.


A estratégia de negociação Breakout Day coloca negócios diários nos Emini-S & P Futures quando o mercado mostra força na parte da manhã. Esta estratégia de negociação de futuros é utilizada no sistema de negociação automatizado S & amp; P Crusher v2.


Futures Day Trading Strategy # 3: Morning Gap Day Trading Algorithm.


A Estratégia de Negociação do Morning Gap Day coloca transações de dia curtas nos Emini S & amp; P Futures quando o mercado tem uma grande lacuna, seguido por um curto período de fraqueza. Esta estratégia de negociação é utilizada no sistema de negociação automatizado S & amp; P Crusher v2.


Estratégias de negociação de opções.


As seguintes estratégias de negociação de opções coletam premium nas opções semanais S & amp; P 500 Emini (ES). Eles são usados ​​em nosso S & amp; P Crusher v2 para aproveitar de lado, baixo e amp; up moving market conditions. Um benefício para as opções de negociação com nossas estratégias de negociação algorítmica é que eles são suportados em um ambiente de negociação automatizado usando um dos corretores de auto-execução.


Estratégia de Negociação de Opções nº 1: Algoritmo de Negociação Ferro Condor.


A Estratégia de Negociação de Opções de Condor de Ferro é perfeita para o indivíduo que quer uma taxa de vitoria comercial mais vendida por devolução ou que simplesmente quer receber prémio no S & amp; P 500 Emini Futures vendendo Iron Condors. Quando nossos algoritmos esperam uma condição de mercado à margem ou para cima, este sistema criará um comércio Iron Condor. Esta estratégia é usada em um dos nossos Sistemas Automatizados de Negociação: The S & amp; P Crusher v2.


Estratégia de Negociação de Opções # 2: Algoritmo de Opções de Chamadas Cobertas.


A Estratégia de Negociação de Opções de Chamada Coberta se vende de chamadas cobertas de dinheiro contra os algoritmos de momentum Long ES swing trades, para coletar premium e ajudar a minimizar as perdas se o mercado se mover contra nossa posição de algoritmo de momentum. Quando negociado com o Momentum Swing Trading Algorithm - como é o caso no S & amp; P Crusher & amp; amp; ES / TY Futures Trading Systems, isso cria uma posição de chamada coberta. Quando negociados no Bearish Trader Trading System, as chamadas são vendidas sem serem cobertas e, portanto, são nulas. Em ambos os casos & ndash; como um suporte ao longo do algoritmo & ndash; Ele funciona bem em condições de mercado de lado e para baixo. Esta estratégia é usada em um dos nossos Sistemas Automatizados de Negociação: The S & amp; P Crusher v2.


Embora cada uma dessas estratégias de negociação possa ser negociada sozinha, elas são negociadas melhor em uma coleção mais ampla de algoritmos de negociação e ndash; como visto em um dos nossos Sistemas Automatizados de Negociação, como The Swing Trader.


Algoritmos de negociação que realmente funcionam?


Esta série de vídeos de negociação algorítmica é feita para que nossos clientes possam ver os detalhes de cada comércio semanalmente. Assista a cada um dos seguintes vídeos de negociação algorítmica para ver em tempo real, como nossos algoritmos de negociação funcionam. Sinta-se livre para visitar nossos comentários e ampères de AlgorithmicTrading; Página de imprensa para ver o que os outros estão falando sobre nós.


Inscrição na newsletter.


Obtenha atualizações de desempenho da AlgorithmicTrading juntando-se a nossa newsletter.


O que separa o comércio algorítmico de outras técnicas técnicas de negociação?


Hoje em dia, parece que todos têm uma opinião sobre as técnicas de negociação técnica. Cabeça e amp; Padrões de ombros, MACD Bullish Crosses, VWAP Divergences, a lista continua e continua. Nesses blogs de vídeo, nosso engenheiro de design líder analisa alguns exemplos de estratégias de negociação encontradas on-line. Ele toma suas Dicas de negociação, codifica e executa um teste de back-back simples para ver o quão eficaz eles realmente são. Depois de analisar seus resultados iniciais, ele otimiza o código para ver se uma abordagem quantitativa para negociação pode melhorar as descobertas iniciais. Se você é novo na negociação algorítmica, esses blogs de vídeo serão bastante interessantes. Nosso designer utiliza máquinas de estados finitos para codificar estas dicas comerciais básicas. Como o Algorithmic Trading é diferente do comércio técnico tradicional? Simplificando, Algorithmic Trading exige precisão e dá uma janela em um potencial de algoritmos com base em back-testing que tem limitações.


Procurando por Tutorial de Negociação Algorítmica Gratuita e amp; Como fazer vídeos?


Assista múltiplas apresentações de vídeo educacional por nosso designer principal em negociação algorítmica para incluir um vídeo que cobre nossa Metodologia de Design de Quant Trading e um Tutorial de Negociação Algorítmica. Esses vídeos de estratégia comercial fornecem exemplos de codificação de algoritmos de negociação e apresentamos a nossa abordagem de negociação de mercados usando análise quantitativa. Nesses vídeos, você verá muitas razões pelas quais a negociação automática está decolando para incluir ajudar a remover suas emoções da negociação. Visite nossa página de Vídeos de Comércio Educacional para ver uma lista completa de mídia educacional.


Comece a usar um dos nossos sistemas de negociação automatizada hoje.


Don & rsquo; T saudades. Junte-se aos que já estão negociando com AlgorithmicTrading. Comece hoje com um dos nossos pacotes de negociação algorítmica.


Várias opções de Execução de Comércio Automatizado estão disponíveis.


Nossos algoritmos de negociação podem ser executados automaticamente usando um dos corretores de auto-execução registrados da NFA (com os melhores esforços) ou podem ser comercializados em seu próprio PC usando MultiCharts ou Tradestation.


O FOX Group é uma empresa de corretagem independente que se encontra no icônico edifício da Câmara de Comércio de Chicago, no coração do distrito financeiro da cidade. Eles estão registrados no NFA e são capazes de executar automaticamente nossos algoritmos com os melhores esforços.


Interactive brokers é um corretor registrado NFA que pode executar automaticamente nossos algoritmos com os melhores esforços. Além disso, eles apóiam clientes canadenses.


Se você preferir executar os algoritmos em seu próprio PC, o MultiCharts é a plataforma preferencial de software de negociação para execução automática. Oferece benefícios consideráveis ​​aos comerciantes e oferece vantagens significativas em relação às plataformas concorrentes. Ele vem com gráficos de alta definição, suporte para mais de 20 feeds de dados e mais de 10 corretores, testes dinâmicos de estratégia de nível de portfólio, suporte EasyLanguage, relatórios interativos de desempenho, otimização genética, scanner de mercado e repetição de dados.


O TradeStation é mais conhecido pelo software de análise e plataforma de negociação eletrônica que fornece ao comerciante ativo e certos mercados de comerciantes institucionais que permitem aos clientes projetar, testar, otimizar, monitorar e automatizar suas próprias ações personalizadas, opções e opções; estratégias de negociação de futuros. Tradestation é outra opção para indivíduos que desejam negociar automaticamente nossos algoritmos em seu próprio PC.


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 19 de abril de 2018.


Neste artigo, quero apresentar-lhe os métodos pelos quais eu próprio identifico estratégias de negociação algorítmicas rentáveis. Nosso objetivo hoje é entender em detalhes como encontrar, avaliar e selecionar esses sistemas. Vou explicar como as estratégias de identificação são tanto sobre preferências pessoais quanto sobre o desempenho da estratégia, como determinar o tipo e a quantidade de dados históricos para o teste, como avaliar de forma imparcial uma estratégia de negociação e, finalmente, como avançar para a fase de backtesting e implementação estratégica.


Identificando suas próprias preferências pessoais para negociação.


Para ser um comerciante bem sucedido - de forma discricionária ou algorítmica - é necessário fazer-se algumas perguntas honestas. O Trading oferece a você a capacidade de perder dinheiro em uma taxa alarmante, por isso é necessário "conhecer você mesmo" tanto quanto é necessário entender a estratégia escolhida.


Eu diria que a consideração mais importante na negociação é estar ciente de sua própria personalidade. O comércio e o comércio algorítmico em particular, requer um grau significativo de disciplina, paciência e desapego emocional. Como você está deixando um algoritmo executar sua negociação para você, é necessário ser resolvido para não interferir com a estratégia quando está sendo executado. Isso pode ser extremamente difícil, especialmente em períodos de redução prolongada. No entanto, muitas estratégias que mostraram ser altamente rentáveis ​​em um backtest podem ser arruinadas por uma simples interferência. Compreenda que se você deseja entrar no mundo da negociação algorítmica, você será testado emocionalmente e, para ser bem-sucedido, é necessário trabalhar com essas dificuldades!


A próxima consideração é uma das vezes. Você tem um emprego a tempo inteiro? Você trabalha a tempo parcial? Você trabalha em casa ou tem uma longa viagem diária? Essas perguntas ajudarão a determinar a freqüência da estratégia que você deve procurar. Para aqueles de você no emprego a tempo inteiro, uma estratégia de futuros intradiária pode não ser apropriada (pelo menos até que seja totalmente automatizada!). Suas restrições de tempo também ditarão a metodologia da estratégia. Se sua estratégia é freqüentemente negociada e dependente de feeds de notícias caras (como um terminal da Bloomberg), você terá claramente que ser realista sobre sua capacidade de executar com sucesso durante o escritório! Para aqueles de vocês com muito tempo, ou as habilidades para automatizar sua estratégia, você pode querer examinar uma estratégia mais técnica de negociação de alta freqüência (HFT).


Minha opinião é que é necessário realizar pesquisas contínuas sobre suas estratégias de negociação para manter um portfólio consistentemente lucrativo. Poucas estratégias permanecem "sob o radar" para sempre. Assim, uma parte importante do tempo atribuído à negociação será na realização de pesquisas em andamento. Pergunte a si mesmo se você está preparado para fazer isso, pois pode ser a diferença entre uma forte rentabilidade ou um declínio lento em relação a perdas.


Você também precisa considerar seu capital de negociação. O valor mínimo ideal geralmente aceito para uma estratégia quantitativa é de 50,000 USD (aproximadamente £ 35,000 para nós no Reino Unido). Se eu estivesse começando de novo, eu começaria com uma quantidade maior, provavelmente mais perto de 100,000 USD (aproximadamente £ 70,000). Isso ocorre porque os custos de transação podem ser extremamente caros para estratégias de média a alta freqüência e é necessário ter capital suficiente para absorvê-los em tempos de redução. Se você está considerando começar com menos de 10.000 USD, então você precisará se restringir a estratégias de baixa freqüência, negociando em um ou dois ativos, já que os custos de transação irão comer rapidamente em seus retornos. Interactive Brokers, que é um dos corretores mais amigáveis ​​para aqueles com habilidades de programação, devido à sua API, tem uma conta de varejo mínima de 10.000 USD.


A habilidade de programação é um fator importante na criação de uma estratégia de negociação algorítmica automatizada. Estar bem informado em uma linguagem de programação como C ++, Java, C #, Python ou R permitirá que você crie o sistema de armazenamento de dados, o sistema de backtest e o sistema de execução de ponta a ponta. Isso tem uma série de vantagens, cujo chefe é a capacidade de estar completamente atento a todos os aspectos da infra-estrutura comercial. Também permite que você explore as estratégias de freqüência mais alta, pois você terá o controle total da sua "pilha de tecnologia". Embora isso signifique que você possa testar seu próprio software e eliminar erros, também significa mais tempo gasto na codificação de infra-estrutura e menos na implementação de estratégias, pelo menos na parte anterior da sua carreira de trading. Você pode achar que você está confortável negociando no Excel ou MATLAB e pode terceirizar o desenvolvimento de outros componentes. Eu não recomendaria isso no entanto, especialmente para aqueles que negociavam em alta freqüência.


Você precisa se perguntar o que você espera alcançar por meio de negociação algorítmica. Você está interessado em um rendimento regular, pelo qual você espera obter lucros de sua conta de negociação? Ou, você está interessado em um ganho de capital a longo prazo e pode se negociar sem a necessidade de retirar fundos? A dependência de renda determinará a freqüência de sua estratégia. As retiradas de renda mais regulares exigirão uma estratégia de negociação de maior freqüência com menor volatilidade (ou seja, uma proporção Sharpe mais alta). Os comerciantes de longo prazo podem pagar uma frequência comercial mais tranquila.


Finalmente, não se ilude com a noção de tornar-se extremamente rico num curto espaço de tempo! O comércio de Algo não é um esquema rápido e rápido - se alguma coisa pode ser um esquema rápido e rápido. É preciso disciplina, pesquisa, diligência e paciência importantes para serem bem-sucedidos no comércio algorítmico. Pode levar meses, senão anos, gerar rentabilidade consistente.


Sourcing Algorithmic Trading Ideas.


Apesar das percepções comuns em contrário, é realmente bastante direto localizar estratégias de negociação rentáveis ​​no domínio público. Nunca as idéias comerciais estão mais disponíveis do que hoje. Revistas de finanças acadêmicas, servidores de pré-impressão, blogs comerciais, fóruns de negociação, revistas comerciais semanais e textos especializados fornecem milhares de estratégias de negociação com as quais basear suas idéias.


Nosso objetivo como pesquisadores quantitativos de negócios é estabelecer um pipeline estratégico que nos forneça um fluxo de idéias comerciais em andamento. Idealmente, queremos criar uma abordagem metódica para sourcing, avaliação e implementação de estratégias que encontramos. Os objetivos do pipeline são gerar uma quantidade consistente de novas idéias e fornecer-nos uma estrutura para rejeitar a maioria dessas idéias com o mínimo de consideração emocional.


Devemos ser extremamente cuidadosos para não permitir influências cognitivas na nossa metodologia de tomada de decisão. Isso pode ser tão simples como ter uma preferência por uma classe de ativos sobre outra (o ouro e outros metais preciosos vêm à mente) porque são percebidos como mais exóticos. Nosso objetivo sempre deve ser encontrar estratégias consistentemente lucrativas, com expectativas positivas. A escolha da classe de ativos deve basear-se em outras considerações, como restrições de capital de negociação, taxas de corretagem e capacidades de alavancagem.


Se você não está completamente familiarizado com o conceito de estratégia comercial, então o primeiro lugar a procurar é com os livros didáticos estabelecidos. Os textos clássicos fornecem uma ampla gama de idéias mais simples e diretas, para se familiarizarem com a negociação quantitativa. Aqui está uma seleção que eu recomendo para aqueles que são novos para negociação quantitativa, que gradualmente se tornam mais sofisticados enquanto você trabalha através da lista:


Para uma lista mais longa de livros de negociação quantitativos, visite a lista de leitura QuantStart.


O próximo lugar para encontrar estratégias mais sofisticadas é com fóruns de negociação e blogs comerciais. No entanto, uma nota de cautela: muitos blogs comerciais dependem do conceito de análise técnica. A análise técnica envolve a utilização de indicadores básicos e psicologia comportamental para determinar tendências ou padrões de reversão nos preços dos ativos.


Apesar de ser extremamente popular no espaço comercial geral, a análise técnica é considerada um pouco ineficaz na comunidade de finanças quantitativas. Alguns sugeriram que não é melhor que ler um horóscopo ou estudar folhas de chá em termos de seu poder preditivo! Na realidade, existem indivíduos bem-sucedidos que utilizam análises técnicas. No entanto, como quants com uma caixa de ferramentas matemática e estatística mais sofisticada à nossa disposição, podemos facilmente avaliar a eficácia de tais estratégias "baseadas em TA" e tomar decisões baseadas em dados, em vez de basear nossas em considerações ou preconceitos emocionais.


Aqui está uma lista de bem-respeitados blogs e fóruns de negociação algorítmica:


Depois de ter tido alguma experiência na avaliação de estratégias mais simples, é hora de olhar para as ofertas acadêmicas mais sofisticadas. Algumas revistas acadêmicas serão de difícil acesso, sem inscrições elevadas ou custos pontuais. Se você é um membro ou ex-aluno de uma universidade, você poderá obter acesso a algumas dessas revistas financeiras. Caso contrário, você pode olhar para os servidores de pré-impressão, que são repositórios de internet de rascunhos finais de documentos acadêmicos que estão sendo submetidos a revisão pelos pares. Uma vez que estamos apenas interessados ​​em estratégias que possamos replicar com sucesso, fazer backtest e obter rentabilidade, uma revisão por pares é de menor importância para nós.


A principal desvantagem das estratégias acadêmicas é que muitas vezes podem estar desatualizadas, exigir dados históricos obscuros e dispendiosos, negociar classes de ativos ilíquidas ou não influenciar taxas, derrapagens ou propagação. Também não está claro se a estratégia de negociação deve ser realizada com ordens de mercado, ordens limitadas ou se contém perdas de parada, etc. Portanto, é absolutamente essencial replicar a estratégia o melhor que puder, fazer o backtest e adicionar uma transação realista custos que incluem tantos aspectos das classes de ativos que você deseja negociar.


Aqui está uma lista dos servidores de pré-impressão mais populares e revistas financeiras das quais você pode criar ideias:


E sobre como formar suas próprias estratégias quantitativas? Isso geralmente requer (mas não está limitado a) conhecimento em uma ou mais das seguintes categorias:


Microestrutura de mercado - Para estratégias de freqüência mais altas em particular, pode-se usar a microestrutura do mercado, ou seja, a compreensão da dinâmica do livro de pedidos, a fim de gerar rentabilidade. Diferentes mercados terão várias limitações tecnológicas, regulamentos, participantes do mercado e restrições que estão abertas à exploração através de estratégias específicas. Esta é uma área muito sofisticada e os profissionais de varejo terão dificuldade em ser competitivos neste espaço, particularmente porque a competição inclui fundos de hedge quantitativos grandes e bem capitalizados com fortes capacidades tecnológicas. Estrutura do fundo - Os fundos de investimento em conjunto, como fundos de pensão, parcerias de investimento privado (hedge funds), consultores de negociação de commodities e fundos de investimento, são limitados por uma forte regulamentação e suas grandes reservas de capital. Assim, certos comportamentos consistentes podem ser explorados com aqueles que são mais ágeis. Por exemplo, grandes fundos estão sujeitos a restrições de capacidade devido ao seu tamanho. Assim, se eles precisam rapidamente descarregar (vender) uma quantidade de valores mobiliários, eles terão que diminuí-lo para evitar "mover o mercado". Algoritmos sofisticados podem tirar proveito disso, e outras idiossincrasias, em um processo geral conhecido como arbitragem de estrutura de fundos. Aprendizado de máquinas / inteligência artificial - Os algoritmos de aprendizagem de máquinas tornaram-se mais prevalentes nos últimos anos nos mercados financeiros. Os classificadores (como Naive-Bayes, et al.) Correspondentes de função não-linear (redes neurais) e rotinas de otimização (algoritmos genéticos) foram todos usados ​​para prever caminhos de ativos ou otimizar estratégias de negociação. Se você tem um histórico nesta área, você pode ter alguma visão sobre como determinados algoritmos podem ser aplicados a certos mercados.


Há, é claro, muitas outras áreas para investigar quants. Vamos discutir como apresentar estratégias personalizadas em detalhes em um artigo posterior.


Ao continuar monitorando essas fontes em uma base semanal, ou mesmo diária, você está se preparando para receber uma lista consistente de estratégias de uma variedade diversificada de fontes. O próximo passo é determinar como rejeitar um grande subconjunto dessas estratégias, a fim de minimizar o desperdício de seu tempo e os recursos de backtesting em estratégias que provavelmente não serão lucrativas.


Avaliando Estratégias de Negociação.


A primeira consideração, e indiscutivelmente mais óbvia, é se você realmente entende a estratégia. Você poderia explicar a estratégia de forma concisa ou exigir uma série de advertências e listas de parâmetros infinitas? Além disso, a estratégia tem uma base boa e sólida na realidade? Por exemplo, você poderia apontar alguma lógica comportamental ou restrição da estrutura do fundo que possa estar causando o (s) padrão (s) que você está tentando explorar? Esta restrição suportaria uma mudança de regime, como uma dramática perturbação do ambiente regulatório? A estratégia depende de regras estatísticas ou matemáticas complexas? Aplica-se a qualquer série de tempo financeiro ou é específico para a classe de ativos em que se afirma ser lucrativo? Você deve constantemente pensar nesses fatores ao avaliar novos métodos de negociação, caso contrário você pode desperdiçar uma quantidade significativa de tempo tentando fazer backtest e otimizar estratégias não lucrativas.


Uma vez que você tenha determinado que você entende os princípios básicos da estratégia, você precisa decidir se ele se encaixa com o seu perfil de personalidade acima mencionado. Esta não é uma consideração tão vaga quanto parece! As estratégias diferirão substancialmente em suas características de desempenho. Existem certos tipos de personalidade que podem lidar com períodos mais significativos de redução ou estão dispostos a aceitar um maior risco de retorno maior. Apesar do fato de que nós, como quants, tentamos eliminar todo o viés cognitivo quanto possível e devemos avaliar uma estratégia de forma imparcial, os preconceitos sempre se infiltrarão. Assim, precisamos de um meio consistente e sem emoção através do qual avaliar o desempenho das estratégias . Aqui está a lista de critérios que eu julgo uma nova estratégia potencial por:


Metodologia - O impulso da estratégia está baseado, o retorno médio, o mercado neutro, direcional? A estratégia baseia-se em técnicas de aprendizado estatístico ou de máquinas complexas (ou complexas) que são difíceis de entender e exigem um doutorado em estatísticas para entender? Essas técnicas introduzem uma quantidade significativa de parâmetros, o que pode levar a um viés de otimização? A estratégia é susceptível de suportar uma mudança de regime (ou seja, uma nova regulamentação potencial dos mercados financeiros)? Sharpe Ratio - O índice de Sharpe caracteriza heuristicamente o índice de recompensa / risco da estratégia. Quantifica quanto retorno você consegue para o nível de volatilidade sofrido pela curva patrimonial. Naturalmente, precisamos determinar o período e a frequência em que esses retornos e volatilidade (ou seja, o desvio padrão) são medidos. Uma estratégia de freqüência mais alta exigirá maior taxa de amostragem do desvio padrão, mas um período de tempo geral mais curto, por exemplo. Alavancagem - A estratégia exige alavancagem significativa para ser lucrativa? A estratégia exige o uso de contratos de derivativos alavancados (futuros, opções, swaps) para fazer um retorno? Estes contratos alavancados podem ter uma forte volatilidade e, portanto, podem facilmente levar a chamadas de margem. Você tem o capital comercial e o temperamento para essa volatilidade? Frequência - A frequência da estratégia está intimamente ligada à sua pilha de tecnologia (e, portanto, à experiência tecnológica), ao índice Sharpe e ao nível geral dos custos de transação. Todas as outras questões consideradas, as estratégias de maior freqüência requerem mais capital, são mais sofisticadas e difíceis de implementar. No entanto, assumindo que seu mecanismo de teste de backtest é sofisticado e livre de erros, eles geralmente terão taxas Sharpe muito maiores. Volatilidade - A volatilidade está fortemente relacionada ao "risco" da estratégia. A relação Sharpe caracteriza isso. A maior volatilidade das classes de ativos subjacentes, se não coberta, muitas vezes leva a uma maior volatilidade na curva patrimonial e, portanto, menores índices de Sharpe. Naturalmente, suponho que a volatilidade positiva seja aproximadamente igual à volatilidade negativa. Algumas estratégias podem ter maior volatilidade negativa. Você precisa estar ciente desses atributos. Ganhe / Perda, Lucro / Perda Médio - As estratégias serão diferentes nas suas ganhos / perdas e características médias de lucro / perda. Pode-se ter uma estratégia muito lucrativa, mesmo que o número de negócios perdidos exceda o número de negociações vencedoras. As estratégias de impulso tendem a ter esse padrão, pois dependem de um pequeno número de "grandes sucessos" para serem lucrativos. As estratégias de reversão média tendem a ter perfis opostos onde mais dos negócios são "vencedores", mas os negócios perdidos podem ser bastante graves. Drawdown máximo - A redução máxima é a maior queda percentual global na curva de equidade da estratégia. As estratégias de Momentum são bem conhecidas por sofrerem períodos de redução prolongada (devido a uma série de muitos negócios perdidos incrementais). Muitos comerciantes vão desistir em períodos de redução prolongada, mesmo que os testes históricos sugeriram que este é "business as usual" para a estratégia. Você precisará determinar qual porcentagem de redução (e em que período de tempo) você pode aceitar antes de deixar de negociar sua estratégia. Esta é uma decisão altamente pessoal e, portanto, deve ser considerada com cuidado. Capacidade / liquidez - No nível de varejo, a menos que você esteja negociando em um instrumento altamente ilíquido (como um estoque de pequena capital), você não terá que se preocupar muito com a capacidade da estratégia. A capacidade determina a escalabilidade da estratégia para aumentar o capital. Muitos dos maiores hedge funds sofrem de importantes problemas de capacidade à medida que suas estratégias aumentam em alocação de capital. Parâmetros - Certas estratégias (especialmente aquelas encontradas na comunidade de aprendizagem de máquinas) requerem uma grande quantidade de parâmetros. Todo parâmetro adicional que uma estratégia exige deixa-o mais vulnerável ao viés de otimização (também conhecido como "ajuste de curva"). Você deve tentar segmentar estratégias com o menor número possível de parâmetros ou garantir que você tenha quantidades suficientes de dados para testar suas estratégias. Benchmark - Quase todas as estratégias (a menos que sejam caracterizadas como "retorno absoluto") são medidas em relação a um benchmark de desempenho. O benchmark geralmente é um índice que caracteriza uma grande amostra da classe de ativos subjacentes em que a estratégia negocia. Se a estratégia negociar ações americanas de grande capitalização, o S & P500 seria uma referência natural para medir sua estratégia. Você ouvirá os termos "alfa" e "beta", aplicado a estratégias deste tipo. Vamos discutir esses coeficientes em profundidade em artigos posteriores.


Observe que não discutimos os retornos reais da estratégia. Por que é isso? De forma isolada, os retornos realmente nos fornecem informações limitadas sobre a eficácia da estratégia. Eles não lhe dão uma visão de alavancagem, volatilidade, benchmarks ou requisitos de capital. Assim, as estratégias raramente são avaliadas apenas em seus retornos. Considere sempre os atributos de risco de uma estratégia antes de analisar os retornos.


Nesta fase, muitas das estratégias encontradas em seu pipeline serão rejeitadas, uma vez que não atenderão aos requisitos de capital, alavancar restrições, tolerar a tolerância máxima ou preferências de volatilidade. As estratégias que permanecem podem agora ser consideradas para testes anteriores. No entanto, antes disso é possível, é necessário considerar um critério de rejeição final - o dos dados históricos disponíveis para testar essas estratégias.


Obtenção de dados históricos.


Hoje em dia, a amplitude dos requisitos técnicos em todas as classes de ativos para o armazenamento histórico de dados é substancial. Para se manter competitivo, tanto o lado da compra (fundos) como os de venda (bancos de investimento) investem fortemente em sua infraestrutura técnica. É imperativo considerar sua importância. Em particular, estamos interessados ​​em requisitos de tempo, precisão e armazenamento. Agora vou descrever os conceitos básicos de obtenção de dados históricos e como armazená-lo. Infelizmente, este é um tópico muito profundo e técnico, então não poderei dizer tudo neste artigo. No entanto, vou escrever muito mais sobre isso no futuro, já que minha experiência na indústria anterior no setor financeiro estava principalmente preocupada com aquisição, armazenamento e acesso de dados financeiros.


Na seção anterior, estabelecemos um pipeline de estratégia que nos permitiu rejeitar certas estratégias com base em nossos próprios critérios de rejeição pessoal. Nesta seção, vamos filtrar mais estratégias com base em nossas próprias preferências para obter dados históricos. As principais considerações (especialmente no nível do profissional varejista) são os custos dos dados, dos requisitos de armazenamento e do seu nível de experiência técnica. Também precisamos discutir os diferentes tipos de dados disponíveis e as diferentes considerações que cada tipo de dados nos impõe.


Vamos começar discutindo os tipos de dados disponíveis e os principais problemas sobre os quais devemos pensar:


Dados fundamentais - Isso inclui dados sobre tendências macroeconômicas, como taxas de juros, índices de inflação, ações corporativas (dividendos, estoque-divisões), registros da SEC, contas corporativas, números de ganhos, relatórios de culturas, dados meteorológicos etc. Esses dados são freqüentemente usados ​​para valorizar as empresas ou outros ativos em uma base fundamental, ou seja, por meio de alguns fluxos de caixa futuros esperados. Não inclui séries de preços de ações. Alguns dados fundamentais estão disponíveis gratuitamente nos sites do governo. Outros dados fundamentais históricos de longo prazo podem ser extremamente caros. Os requisitos de armazenamento geralmente não são particularmente grandes, a menos que milhares de empresas estejam sendo estudadas de uma só vez. Dados de notícias - Os dados de notícias são geralmente de natureza qualitativa. Consiste em artigos, postagens de blog, postagens de microblog ("tweets") e editoriais. As técnicas de aprendizagem de máquinas, como os classificadores, costumam ser usadas para interpretar o sentimento. Esses dados também são freqüentemente disponíveis gratuitamente ou baratos, por meio da assinatura de meios de comunicação. Os bancos de dados de armazenamento de documentos "NoSQL" mais novos foram projetados para armazenar esse tipo de dados qualitativos não estruturados. Dados do preço do recurso - Este é o domínio de dados tradicional do quant. Consiste em séries temporais de preços dos ativos. As ações (ações), produtos de renda fixa (títulos), commodities e preços de câmbio se enquadram nesta classe. Os dados históricos diários são geralmente simples de obter para as classes de ativos mais simples, como ações. No entanto, uma vez que a precisão e a limpeza estão incluídas e os preconceitos estatísticos removidos, os dados podem se tornar caros. Além disso, os dados das séries temporais geralmente possuem requisitos de armazenamento significativos, especialmente quando os dados intradiários são considerados. Instrumentos Financeiros - Ações, títulos, futuros e opções derivadas mais exóticas possuem características e parâmetros muito diferentes. Assim, não existe uma estrutura de banco de dados "tamanho único" que possa acomodá-los. Deve ser dado um cuidado significativo à concepção e implementação de estruturas de banco de dados para vários instrumentos financeiros. Vamos discutir a situação ao longo de quando chegamos a construir um banco de dados mestre de valores mobiliários em futuros artigos. Frequência - Quanto maior a frequência dos dados, maiores são os custos e os requisitos de armazenamento. Para estratégias de baixa frequência, os dados diários são frequentemente suficientes. Para estratégias de alta freqüência, pode ser necessário obter dados de nível de tiquetaque e até mesmo cópias históricas de determinados dados de cadastro de trocas comerciais. A implementação de um mecanismo de armazenamento para esse tipo de dados é muito tecnicamente intensiva e só é adequada para aqueles que possuem uma sólida base de programação / técnica. Pontos de referência - As estratégias descritas acima serão muitas vezes comparadas a uma referência. Isso geralmente se manifesta como uma série de tempo financeiro adicional. Para as ações, isso geralmente é um benchmark de estoque nacional, como o índice S & P500 (US) ou FTSE100 (Reino Unido). Para um fundo de renda fixa, é útil comparar-se com uma cesta de títulos ou produtos de renda fixa. A "taxa livre de risco" (ou seja, a taxa de juros apropriada) também é outra referência amplamente aceita. Todas as categorias de classe de ativos possuem um benchmark favorecido, por isso será necessário pesquisar isso com base em sua estratégia específica, se desejar ganhar interesse em sua estratégia externamente. Tecnologia - As pilhas de tecnologia por trás de um centro de armazenamento de dados financeiros são complexas. Este artigo apenas pode arranhar a superfície sobre o que está envolvido na construção de um. No entanto, ele se centra em torno de um mecanismo de banco de dados, como um Sistema de Gerenciamento de Banco de Dados Relacional (RDBMS), como MySQL, SQL Server, Oracle ou um Document Storage Engine (ou seja, "NoSQL"). Isso é acessado através do código de aplicativo "lógica comercial" que consulta o banco de dados e fornece acesso a ferramentas externas, como MATLAB, R ou Excel. Muitas vezes, esta lógica de negócios está escrita em C ++, C #, Java ou Python. Você também precisará hospedar esses dados em algum lugar, seja em seu próprio computador pessoal, seja remotamente através de servidores de internet. Produtos como o Amazon Web Services tornaram isso mais simples e barato nos últimos anos, mas ainda exigirá conhecimentos técnicos significativos para alcançar de forma robusta.


Como pode ser visto, uma vez que uma estratégia tenha sido identificada através do pipeline, será necessário avaliar a disponibilidade, os custos, a complexidade e os detalhes de implementação de um determinado conjunto de dados históricos. Você pode achar que é necessário rejeitar uma estratégia baseada unicamente em considerações de dados históricos. Esta é uma grande área e equipes de doutorados trabalham em grandes fundos garantindo que os preços sejam precisos e oportunos. Não subestime as dificuldades de criar um centro de dados robusto para os seus efeitos de backtesting!


Eu quero dizer, no entanto, que muitas plataformas de backtesting podem fornecer esses dados para você automaticamente - a um custo. Assim, demorará muito da dor de implementação para você, e você pode se concentrar exclusivamente na implementação e otimização da estratégia. Ferramentas como a TradeStation possuem essa capacidade. No entanto, minha visão pessoal é implementar o máximo possível internamente e evitar a terceirização de partes da pilha para fornecedores de software. Eu prefiro estratégias de freqüência mais altas devido aos seus índices de Sharpe mais atraentes, mas muitas vezes estão fortemente acoplados à pilha de tecnologia, onde a otimização avançada é crítica.


Agora que discutimos os problemas relacionados aos dados históricos, é hora de começar a implementar nossas estratégias em um mecanismo de teste. Este será o assunto de outros artigos, pois é uma área de discussão igualmente grande!


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.


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 futuro. 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 o sucesso deles. 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 obtidos). 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.


Fundamentos do comércio algorítmico: conceitos e exemplos.


Um algoritmo é um conjunto específico de instruções claramente definidas destinadas a realizar uma tarefa ou processo.


O comércio algorítmico (negociação automatizada, negociação em caixa preta ou simplesmente algo-trading) é o processo de uso de computadores programados para seguir um conjunto definido de instruções para colocar um comércio para gerar lucros a uma velocidade e freqüência impossíveis para um comerciante humano. Os conjuntos definidos de regras são baseados em tempo, preço, quantidade ou qualquer modelo matemático. Além das oportunidades de lucro para o comerciante, o algo-trading torna os mercados mais líquidos e torna a negociação mais sistemática descartando impactos emocionais humanos nas atividades comerciais. (Para mais, consulte Picking the Right Algorithmic Trading Software.)


Suponha que um comerciante siga esses critérios de comércio simples:


Compre 50 ações de uma ação quando sua média móvel de 50 dias excede a média móvel de 200 dias. Vende ações da ação quando sua média móvel de 50 dias está abaixo da média móvel de 200 dias.


Usando este conjunto de duas instruções simples, é fácil escrever um programa de computador que monitorará automaticamente o preço das ações (e os indicadores de média móvel) e colocará as ordens de compra e venda quando as condições definidas forem atendidas. O comerciante não precisa mais manter um relógio para preços e gráficos ao vivo, ou colocar as ordens manualmente. O sistema de negociação algorítmica automaticamente faz isso para ele, identificando corretamente a oportunidade comercial. (Para mais informações sobre as médias móveis, consulte Médias móveis simples, faça as tendências se destacarem.)


[Se você quiser saber mais sobre as estratégias comprovadas e pontuais que podem eventualmente ser trabalhadas em um sistema de comércio alorítico, confira o Curso de Torneio de Dia de Torneio da Invastopedia Academy. ]


Benefícios da negociação algorítmica.


A Algo-trading oferece os seguintes benefícios:


Negociações executadas com os melhores preços Posicionamento instantâneo e preciso da ordem comercial (com altas chances de execução nos níveis desejados) Negociações cronometradas corretamente e instantaneamente, para evitar mudanças de preços significativas Custos de transação reduzidos (veja o exemplo de falta de implementação abaixo) Verificações automatizadas simultâneas em múltiplos condições de mercado Reduziu o risco de erros manuais na colocação dos negócios Backtest o algoritmo, com base nos dados históricos e em tempo real disponíveis Reduzida a possibilidade de erros por comerciantes humanos com base em fatores emocionais e psicológicos.


A maior parte do dia-a-dia é a negociação de alta freqüência (HFT), que tenta capitalizar a colocação de um grande número de pedidos em velocidades muito rápidas em múltiplos mercados e múltiplos parâmetros de decisão, com base em instruções pré-programadas. (Para obter mais informações sobre o comércio de alta freqüência, consulte Estratégias e Segredos de Empresas de Negociação de Alta Freqüência (HFT).)


O Algo-trading é usado em muitas formas de atividades de comércio e investimento, incluindo:


Investidores de médio a longo prazo ou empresas de compra (fundos de pensão, fundos de investimento, companhias de seguros) que adquirem ações em grandes quantidades, mas não querem influenciar os preços das ações com investimentos discretos e de grande porte. Os comerciantes de curto prazo e os participantes do lado da venda (fabricantes de mercado, especuladores e arbitragentes) se beneficiam da execução comercial automatizada; Além disso, ajudas de algo-trading na criação de liquidez suficiente para os vendedores no mercado. Os comerciantes sistemáticos (seguidores de tendências, comerciantes de pares, hedge funds, etc.) acham muito mais eficiente programar suas regras comerciais e permitir que o programa seja comercializado automaticamente.


O comércio algorítmico proporciona uma abordagem mais sistemática ao comércio ativo do que os métodos baseados na intuição ou instinto do comerciante humano.


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


Qualquer estratégia de negociação algorítmica exige uma oportunidade identificada que seja rentável em termos de melhoria de ganhos ou redução de custos. As seguintes são estratégias de negociação comuns usadas em algo-trading:


As estratégias de negociação algorítmicas mais comuns seguem as tendências em médias móveis, fuga de canais, movimentos no nível de preços e indicadores técnicos relacionados. Estas são as estratégias mais fáceis e simples de implementar através de negociação algorítmica porque essas estratégias não envolvem fazer previsões ou previsões de preços. Os negócios são iniciados com base na ocorrência de tendências desejáveis, que são fáceis e direitas de implementar através de algoritmos sem entrar na complexidade da análise preditiva. O exemplo acima mencionado de média móvel de 50 e 200 dias é uma tendência popular seguindo a estratégia. (Para mais informações sobre as estratégias de negociação de tendências, consulte: Estratégias simples para capitalizar as tendências.)


Comprar um estoque cotado duplo a um preço mais baixo em um mercado e simultaneamente vendê-lo a um preço mais alto em outro mercado oferece o diferencial de preço como lucro ou arbitragem sem risco. A mesma operação pode ser replicada para ações versus instrumentos de futuros, pois os diferenciais de preços existem de tempos em tempos. Implementar um algoritmo para identificar esses diferenciais de preços e colocar as ordens permite oportunidades lucrativas de forma eficiente.


Os fundos do índice definiram períodos de reequilíbrio para que suas participações fossem compatíveis com seus respectivos índices de referência. Isso cria oportunidades rentáveis ​​para comerciantes algorítmicos, que capitalizam os negócios esperados que oferecem lucros de 20 a 80 pontos base, dependendo do número de ações no fundo do índice, apenas antes do reequilíbrio do fundo do índice. Essas negociações são iniciadas através de sistemas de negociação algorítmica para execução atempada e melhores preços.


Muitos modelos matemáticos comprovados, como a estratégia de negociação neutra do delta, que permitem a negociação de combinações de opções e sua segurança subjacente, onde os negócios são colocados para compensar deltas positivos e negativos, de modo que o portfólio delta seja mantido em zero.


A estratégia de reversão média baseia-se na ideia de que os preços altos e baixos de um bem são um fenômeno temporário que retorna periodicamente ao seu valor médio. Identificar e definir uma faixa de preço e implementar algoritmos com base em isso permite que os negócios sejam colocados automaticamente quando o preço do recurso entra e sai do seu alcance definido.


A estratégia de preços médios ponderados por volume quebra uma grande ordem e libera pedaços menores determinados dinamicamente da ordem para o mercado usando perfis de volume histórico específicos de estoque. O objetivo é executar a ordem perto do preço médio ponderado do volume (VWAP), beneficiando assim o preço médio.


A estratégia de preço médio ponderado no tempo quebra uma grande ordem e libera dinamicamente determinados pedaços menores da ordem para o mercado usando intervalos de tempo uniformemente divididos entre o início e o fim do tempo. O objetivo é executar a ordem perto do preço médio entre os horários de início e término, minimizando assim o impacto no mercado.


Até que a ordem comercial seja totalmente preenchida, este algoritmo continua enviando ordens parciais, de acordo com o índice de participação definido e de acordo com o volume negociado nos mercados. A "estratégia de etapas" relacionada envia ordens a uma porcentagem definida pelo usuário de volumes de mercado e aumenta ou diminui essa taxa de participação quando o preço da ação atinge os níveis definidos pelo usuário.


A estratégia de falta de implementação visa minimizar o custo de execução de uma ordem através da negociação do mercado em tempo real, economizando assim o custo da ordem e beneficiando do custo de oportunidade da execução atrasada. A estratégia aumentará a taxa de participação direcionada quando o preço das ações se mover de forma favorável e diminuí-lo quando o preço das ações se mover de forma adversa.


Existem algumas classes especiais de algoritmos que tentam identificar "acontecimentos" do outro lado. Esses "algoritmos de sniffing", usados, por exemplo, por um market maker market market têm a inteligência interna para identificar a existência de qualquer algoritmo no lado da compra de uma grande ordem. Essa detecção através de algoritmos ajudará o fabricante de mercado a identificar grandes oportunidades de ordem e permitir que ele se beneficie ao preencher os pedidos a um preço mais alto. Isso às vezes é identificado como front-running de alta tecnologia. (Para obter mais informações sobre negociação de alta freqüência e práticas fraudulentas, consulte: Se você comprar ações on-line, você está envolvido em HFTs.)


Requisitos técnicos para negociação algorítmica.


Implementar o algoritmo usando um programa de computador é a última parte, batida com backtesting. O desafio é transformar a estratégia identificada em um processo informatizado integrado que tenha acesso a uma conta de negociação para fazer pedidos. São necessários os seguintes:


Conhecimento de programação de computador para programar a estratégia de negociação necessária, programadores contratados ou software de negociação pré-fabricado Conectividade de rede e acesso a plataformas de negociação para colocar os pedidos Acesso a feeds de dados de mercado que serão monitorados pelo algoritmo para oportunidades de colocar pedidos A capacidade e infra-estrutura para voltar a testar o sistema uma vez construído, antes de entrar em operação em mercados reais Dados históricos disponíveis para backtesting, dependendo da complexidade das regras implementadas no algoritmo.


Aqui está um exemplo abrangente: o Royal Dutch Shell (RDS) está listado na Amsterdam Stock Exchange (AEX) e London Stock Exchange (LSE). Vamos construir um algoritmo para identificar oportunidades de arbitragem. Aqui estão algumas observações interessantes:


AEX negocia em Euros, enquanto a LSE negocia em libras esterlinas. Devido à diferença horária de uma hora, a AEX abre uma hora antes da LSE, seguido de ambas as trocas comerciais simultaneamente durante as próximas horas e depois de negociar apenas na LSE durante a última hora à medida que o AEX fecha .


Podemos explorar a possibilidade de negociação de arbitragem nas ações da Royal Dutch Shell listadas nesses dois mercados em duas moedas diferentes?


Um programa de computador que pode ler os preços atuais do mercado Os feeds de preços de LSE e AEX A taxa de câmbio para a taxa de câmbio GBP-EUR Capacidade de colocação de pedidos que podem rotear a ordem para a troca correta do recurso Back-testing em feeds históricos de preços.


O programa de computador deve executar o seguinte:


Leia o preço de entrada do estoque RDS de ambas as bolsas Usando as taxas de câmbio disponíveis, converta o preço de uma moeda para outra. Se houver uma discrepância de preço suficientemente grande (descontando os custos de corretagem) levando a uma oportunidade rentável, então coloque a compra ordem em troca de preços mais baixos e ordem de venda em troca de preços mais elevados Se as ordens forem executadas conforme desejado, o lucro de arbitragem seguirá.


Simples e fácil! No entanto, a prática de negociação algorítmica não é simples de manter e executar. Lembre-se, se você pode colocar um comércio gerado por algo, os outros participantes do mercado podem também. Conseqüentemente, os preços flutuam em milissegundos e até mesmo em microssegundos. No exemplo acima, o que acontece se o seu comércio de compras for executado, mas o comércio de vendas não acontece à medida que os preços de venda mudam quando o seu pedido atinge o mercado? Você vai acabar sentado com uma posição aberta, tornando sua estratégia de arbitragem inútil.


Existem riscos e desafios adicionais: por exemplo, riscos de falha do sistema, erros de conectividade de rede, atrasos de tempo entre ordens comerciais e execução e, o mais importante de tudo, algoritmos imperfeitos. O algoritmo mais complexo é o backtesting mais rigoroso antes de ser posto em ação.


The Bottom Line.


A análise quantitativa do desempenho de um algoritmo desempenha um papel importante e deve ser examinada criticamente. É excitante ir pela automação auxiliada por computadores com a noção de ganhar dinheiro sem esforço. Mas é preciso certificar-se de que o sistema está completamente testado e os limites exigidos são definidos. Os comerciantes analíticos devem considerar a aprendizagem de sistemas de programação e construção por conta própria, ter confiança em implementar as estratégias certas de forma infalível. O uso cauteloso eo teste completo de algo-trading podem criar oportunidades rentáveis. (Para mais informações, consulte Como codificar seu próprio robô Algo Trading.)

No comments:

Post a Comment