Backtesting bem sucedido de estratégias de negociação algorítmica - parte ii


Backtesting bem sucedido de estratégias de negociação algorítmica - Parte II


Por Michael Halls-Moore em 9 de maio de 2017


No primeiro artigo sobre backtesting bem-sucedido, discutimos biases estatísticos e comportamentais que afetam nosso desempenho backtest. Também discutimos pacotes de software para backtesting, incluindo Excel, MATLAB, Python, R e C ++. Neste artigo, vamos considerar como incorporar custos de transação, bem como certas decisões que precisam ser feitas ao criar um mecanismo de backtest, como tipos de pedidos e freqüência de dados.


Custos de transação


Um dos erros mais frequentes começo ao implementar modelos de negociação é negligenciar (ou grosseiramente subestimar) os efeitos dos custos de transação em uma estratégia. Embora muitas vezes se supõe que os custos de transação refletem apenas comissões de corretor, existem de fato muitas outras maneiras de os custos serem acumulados em um modelo de negociação. Os três principais tipos de custos que devem ser considerados incluem:


Comissões / Taxas


A forma mais direta de custos de transação incorridos por uma estratégia de negociação algorítmica são comissões e taxas. Todas as estratégias requerem alguma forma de acesso a uma troca. Diretamente ou através de intermediário de corretagem ( "corretor"). Estes serviços incorrer em um custo incremental com cada comércio, conhecido como comissão.


Os corretores geralmente fornecem muitos serviços, embora os algoritmos quantitativos somente façam realmente uso da infra-estrutura de troca. Assim, as comissões de corretagem são frequentemente pequenas por base de comércio. Corretores também cobram taxas. Que são custos incorridos para limpar e liquidar negócios. Além disso, há impostos impostos por governos regionais ou nacionais. Por exemplo, no Reino Unido existe um imposto de selo para pagar em transacções de acções. Como comissões, taxas e impostos geralmente são fixos, eles são relativamente simples de implementar em um motor de backtest (veja abaixo).


Deslizamento / latência


Deslizamento é a diferença de preço alcançada entre o momento em que um sistema de negociação decide negociar e o momento em que uma transação é realmente realizada em uma bolsa. Deslizamento é um componente considerável dos custos de transação e pode fazer a diferença entre uma estratégia muito rentável e um que executa mal. O deslizamento é uma função da volatilidade do ativo subjacente, da latência entre o sistema de negociação eo câmbio eo tipo de estratégia que está sendo executada.


Um instrumento com maior volatilidade é mais susceptível de estar em movimento e, portanto, os preços entre sinal e execução podem diferir substancialmente. Latência é definida como a diferença de tempo entre geração de sinal e ponto de execução. As estratégias de freqüência mais altas são mais sensíveis a problemas de latência e melhorias de milissegundos nessa latência podem fazer toda a diferença em relação à lucratividade. O tipo de estratégia também é importante. Os sistemas Momentum sofrem mais com o deslizamento em média, porque eles estão tentando comprar instrumentos que já estão se movendo na direção da previsão. O oposto é verdadeiro para a média reverter estratégias como estas estratégias estão se movendo em uma direção oposto ao comércio.


Impacto de Mercado / Liquidez


Impacto no mercado é o custo incorrido para os comerciantes devido à dinâmica oferta / demanda da bolsa (e ativos) através do qual eles estão tentando negociar. Uma grande ordem em um ativo relativamente ilíquido é susceptível de mover o mercado substancialmente como o comércio terá de acessar um grande componente da oferta atual. Para contrariar isso, os grandes negócios em bloco são divididos em pequenos "pedaços" que são transacionados periodicamente, à medida que a nova liquidez chega à bolsa. No extremo oposto, para instrumentos altamente líquidos, como o contrato de futuros de índice S & P500 E-Mini, negociações de baixo volume não são susceptíveis de ajustar o "preço atual" em qualquer grande quantidade.


Os ativos mais ilíquidos são caracterizados por uma maior dispersão. Que é a diferença entre os preços de lance e de oferta atuais no livro de ordens de limite. Este spread é um custo de transação adicional associado a qualquer negócio. Spread é um componente muito importante do custo total da transação - como evidenciado pela miríade de UK propagação de apostas empresas cujas campanhas publicitárias expressam o "aperto" de seus spreads para instrumentos altamente negociados.


Modelos de custos de transação


A fim de modelar com êxito os custos acima num sistema de backtesting, foram introduzidos vários graus de modelos de transacção complexos. Eles variam de simples modelagem plana até uma aproximação quadrática não-linear. Aqui vamos descrever as vantagens e desvantagens de cada modelo:


Modelos de custo de transação fixa / fixa


Os custos de transação planos são a forma mais simples de modelagem de custo de transação. Eles assumem um custo fixo associado a cada negócio. Assim, eles representam melhor o conceito de comissões de corretagem e taxas. Eles não são muito precisos para modelar comportamentos mais complexos, como derrapagem ou impacto no mercado. Na verdade, eles não consideram volatilidade de ativos ou liquidez em tudo. Seu principal benefício é que eles são computacionalmente simples de implementar. No entanto, é provável que significativamente sob ou sobre estimativa custos de transação, dependendo da estratégia que está sendo empregada. Assim, raramente são usados ​​na prática.


Modelos de custos de transações lineares / por peça lineares / quadraticos


Modelos de custos de transação mais avançados começam com modelos lineares, continuam com modelos lineares pedaços e concluem com modelos quadráticos. Eles se encontram em um espectro de menos para a mais precisa, ainda que com menos a maior esforço de implementação. Uma vez que o deslizamento e o impacto no mercado são fenômenos inerentemente não-lineares, as funções quadráticas são as mais exatas na modelagem dessas dinâmicas. Os modelos de custo de transação quadrática são muito mais difíceis de implementar e podem levar muito mais tempo para serem computados do que para modelos simples ou lineares mais simples, mas são freqüentemente usados ​​na prática.


Os traders algorítmicos também tentam usar os custos de transação históricos reais para suas estratégias como insumos para seus modelos de transação atuais para torná-los mais precisos. Trata-se de negócios complicados e muitas vezes se aproxima das áreas complicadas de modelagem de volatilidade, derrapagem e impacto no mercado. No entanto, se a estratégia de negociação é a transação de grandes volumes em curtos períodos de tempo, então estimativas precisas dos custos de transação incorridos podem ter um efeito significativo sobre a estratégia bottom-line e, portanto, vale a pena investir na pesquisa desses modelos.


Estratégia Backtest Implementação Questões


Embora os custos de transação sejam um aspecto muito importante das implementações de backtesting bem-sucedidas, há muitos outros problemas que podem afetar o desempenho da estratégia.


Tipos de ordens comerciais


Uma escolha que um trader algorítmico deve fazer é como e quando fazer uso das diferentes ordens de troca disponíveis. Esta escolha geralmente cai no domínio do sistema de execução. Mas vamos considerá-lo aqui, pois pode afetar muito o desempenho backtest estratégia. Existem dois tipos de ordem que podem ser executadas: ordens de mercado e ordens de limite.


Uma ordem de mercado executa um comércio imediatamente, independentemente dos preços disponíveis. Assim, os grandes negócios executados como ordens de mercado, muitas vezes obter uma mistura de preços como cada ordem de limite subsequente no lado oposto é preenchido. Ordens de mercado são consideradas ordens agressivas, uma vez que quase certamente serão preenchidos, embora com um custo potencialmente desconhecido.


Ordens de limite fornecem um mecanismo para a estratégia para determinar o pior preço em que o comércio será executado, com a ressalva de que o comércio não pode ser preenchido parcial ou totalmente. As ordens de limite são consideradas ordens passivas, uma vez que são muitas vezes não preenchidas, mas quando eles são um preço é garantido. A coleção de ordens de limite de um câmbio individual é conhecida como o livro de ordem de limite. Que é essencialmente uma fila de ordens de compra e venda em determinados tamanhos e preços.


Quando backtesting, é essencial para modelar os efeitos de usar ordens de mercado ou limitar corretamente. Para estratégias de alta freqüência em particular, os backtests podem significativamente superar a negociação ao vivo se os efeitos do impacto no mercado e o livro de pedidos limitados não forem modelados com precisão.


OHLC Data Idiosyncrasies


Há questões específicas relacionadas com as estratégias de backtesting ao fazer uso de dados diários na forma de figuras Open-High-Low-Close (OHLC), especialmente para as ações. Note que esta é precisamente a forma de dados fornecidos pelo Yahoo Finance, que é uma fonte muito comum de dados para comerciantes de algoritmos de varejo!


Conjuntos de dados baratos ou gratuitos, embora sofram de viés de sobrevivência (o qual já discutimos na Parte I), também são freqüentemente alimentações de preços compostos de múltiplas trocas. Isto significa que os pontos extremos (ou seja, o aberto, fechar, alto e baixo) dos dados são muito suscetíveis a valores "periféricos" devido a pequenas encomendas em trocas regionais. Além disso, esses valores também são, por vezes, mais propensos a ser tick-erros que ainda têm de ser removidos do conjunto de dados.


Isso significa que se sua estratégia de negociação faz uso extensivo de qualquer um dos pontos OHLC especificamente, desempenho backtest pode diferir do desempenho ao vivo como ordens podem ser encaminhadas para diferentes intercâmbios, dependendo do seu corretor e seu acesso disponível à liquidez. A única maneira de resolver esses problemas é fazer uso de dados de freqüência mais alta ou obter dados diretamente de uma troca individual em si, ao invés de um feed composto mais barato.


No próximo par de artigos vamos considerar a medição de desempenho do backtest, bem como um exemplo real de um backtesting algoritmo, com muitos dos efeitos acima incluídos.


Michael Halls-Moore


Mike é o fundador da QuantStart e tem estado envolvido na indústria de finanças quantitativas nos últimos cinco anos, principalmente como desenvolvedor quantitativo e, mais tarde, como consultor de comerciantes de quant para hedge funds.

Comments