Wednesday, November 9, 2016

Turn Of The Month Estratégia De Negociação

Algumas complicações do comércio mensal


Eu estava olhando recentemente mensal / rotação sistemas de negociação com ações. O conceito parece ter se tornado bastante popular na blogosfera nos últimos anos. Veja este post anterior para mais uma discussão mensal de negociação


O conceito genérico para uma estratégia de rotação é geralmente bastante simples: escolha um conjunto relativamente grande de instrumentos, calcule uma classificação mensal (baseada em retornos de um mês, de seis meses, etc. ou uma combinação de vários retornos mensais e / ou outros fatores ) E alocar seu patrimônio para os principais instrumentos N. Repita todos os meses vendendo instrumentos que caíram do topo N e comprando novos concorrentes.


O sistema parece simples o suficiente para operar e testar, mas como com tudo, o diabo está nos detalhes.


Há, naturalmente, outro diabo em outros detalhes. Rebalanceamento, consideração de volatilidade, dimensionamento de posição, etc. não são levados em conta neste modelo simples 8220; description8221; E a discussão abaixo.


Usando dados de fechamento mensal


Lotes de dados históricos (gratuitos) indo para trás o suficiente para o back-testing relevante contém apenas encerra mensalmente. A suposição habitual feita quando backtesting usando este tipo de dados é usar o preço de fechamento mensal para gerar os sinais de entrada / saída, bem como para os próprios preços de entrada / saída. Operacionalmente, isso obviamente não é possível: você não pode esperar para o mercado próximo para obter preços e gerar sinais, em seguida, voltar ao comércio no mercado próximo.


Esta é uma das razões backtesting software, como Trading Blox não permite o comércio de fechar hoje, embora este 8220, salvaguardar para realista results8221; Pode ser substituído se necessário (usando um comando como order. SetFillPrice (instrument. close [1]) no script pode preencher preço).


Usar dados de fechamento mensal apenas não é necessariamente 8220; wrong8221; Mas representa uma aproximação que se deve ter em conta. Uma solução pode ser obter preços x minutos antes do próximo para gerar sinais e enviar 8220; Market on Close8221; As ordens antes da negociação terminam com o risco potencial de que os movimentos do mercado nesses últimos minutos de fechamento mensal mudariam a classificação real ea geração de sinal (dando diferentes resultados em tempo real de negociação e backtesting).


Outra solução alternativa pode ser realmente o comércio em aberto no dia seguinte; A diferença entre a negociação ao vivo e backtesting resultados, em seguida, sendo a diferença entre o preço de fechamento mensal e preço aberto mensal, que poderia ser caro em termos de desempenho perdido quando se considera a virada do efeito mês.


Usando o OHLC Os dados mensais podem evitar essa aproximação no backtesting, permitindo o uso de Close para classificação / geração de sinal e Open para preço de entrada / saída.


Nota . Para fontes de dados históricos (incluindo os gratuitos), os blogueiros colegas Mebane Faber e Mike Stokes compilaram listas em seus respectivos blogs World Beta e MarketSci. Um novo site Wikiposit parece também muito promissor para todos os tipos de dados gratuitos.


Do meu lado, eu uso e estou muito satisfeito com CSI. O que me dá acesso ao histórico completo de World Futures e World Stocks e permite vários períodos de agregação de dados (diários, semanais, mensais, etc.) com diferentes opções de back-adjustment para futuros.


Diferentes Datas de Abertura / Fechamento Mensal


Outra complicação pode advir de um portfólio de instrumentos negociados em diferentes locais: A abertura / encerramento mensal pode ocorrer em datas diferentes para diferentes instrumentos (ou seja, diferentes mercados próximos em dias diferentes dependendo dos feriados locais das bolsas).


Suponha que alguns instrumentos não sejam negociados para o último dia útil global do mês: é então claramente impossível negociar ao preço de fechamento mensal ao gerar sinais de negociação no último dia do mês, fazendo a solução de x minutos antes do fechamento Impossível de implementar, e aumentando a aproximação backtesting.


Novamente, a utilização de dados mensais do OHLC eo preço aberto como preço de entrada evitaria esta questão.


Outro caso, que pode causar um problema, refere-se a diferentes datas abertas mensais. Imagine a negociação de um sistema de rotação, que é investido no top 10 ações de classificação:


Todo mês, o sistema venderia as ações que caíram entre os 10 primeiros e usaria os recursos para financiar a compra dos novos concorrentes no top 10 (assumindo que não há uso de alavancagem: ou seja, o sistema só pode comprar após a venda, quando Investido em 100%).


Se alguns dos 8220; Sell8221; Os instrumentos não forem negociados no primeiro dia útil global do mês (troca local em férias ou outro motivo), as novas aquisições serão subfinanciadas, com uma decisão a tomar quanto à forma de alocação parcial entre os novos participantes, até Financiamento total está disponível. Isso significaria que os retornos de início de mês de novas adições não seriam totalmente capturados pelo sistema.


O uso de dados de OHLC diários com uma lógica de backtesting mais sofisticada seria necessário para refletir essa lógica nos resultados da simulação. Uma execução de ordem mais automatizada (do que manual) também exigiria um algoritmo mais complexo que definisse como lidar com esses casos e estar ciente dos dias sem negociação.


Naturalmente, esta questão pode ser amplamente evitada através da escolha de um conjunto de instrumentos de todos os negócios na mesma 8220, férias jurisdiction8221 ;.


Observe que a restrição de margem geraria outra questão relacionada ao delta entre os preços usados ​​para o dimensionamento de pedidos (preços de fechamento mensais) e a execução de ordens (preços abertos mensais).


A 8220; jump8221; Em preços pode resultar em uma alocação total superior a 100% do patrimônio líquido. Um buffer para permitir variações de preço é provavelmente necessário quando se calcula o sinal e os tamanhos de posição para o dia seguinte, com o risco de ser ligeiramente sub-alocado a cada mês. Alguns testes apontariam para o 8220, o mais ótimo8221; Tamanho do buffer para limitar a alocação excessiva sem reduzir a alocação média geral demais.


Não somente relevante aos sistemas mensais


Algumas dessas questões realmente se aplicam a sistemas que comercializam em várias freqüências, não necessariamente em uma base mensal. Como para cada modelo ou procedimento de teste, é sempre bom estar ciente de suposições e limitações.


É preciso ter uma idéia das questões relacionadas para decidir se um pode viver com as aproximações resultantes em seus backtests, ou se resultados mais realistas valem o esforço extra no desenvolvimento de backtesting lógica e procedimentos operacionais.


Créditos de imagem: vbecker via flickr (CC)


No comments:

Post a Comment