Distorção em Backteste com ordens LIMIT.

 

Saudações turma!

Já a alguns anos observei que curiosamente ao usar a modelagem OHLC para meus projetos estava sendo a melhor alternativa de resultados em relação à conta real. Sabemos que isso não é uma regra pois para outros casos outras modelagem podem ser melhores.

Algum tempo depois ao revisitar alguns projetos e investigar o porque que as automações melhoravam de forma absurda com as modelagens "tick real" e "tick a tick" Descobri uma forma de medir onde estava o "erro", embora seja apenas uma pequena gambiarra, serviu para diagnosticar e justificar os resultados.

Características do meu projeto:

1. Sempre ordens LIMIT, em torno de 20 trades por dia.

2. Colocação de ordens ao fechamento de barras de 5M sempre acima da máxima ou abaixo da mínima (longe do preço!).

3. Sem ordens de Gain ou Loss. São feitos apenas viradas de mão, até o final do dia, onde uma ordem a mercado zera a posição.

Uso esta automação em conta real a 2,5 anos e os resultados de longo prazo são até melhores que os backtestes em OHLC.

 

O que fiz para comparar as modelagens?

Marquei no "comentário" da ordem o preço LIMIT, desta forma consigo gerar um relatório de onde deveria executar a ordem e onde foi executada de fato.

Resultado:

Modelagem OHLC: todas as ordens são executadas no PRECO LIMIT.

Modelagem TICK REAL: aprox. 20% das ordens são executadas com preço melhor que o PREÇO LIMIT.

Modelagem TICK a TICK: aprox. 60% das ordens são executadas com preço melhor que o PRECO LIMIT.

Além da dificuldade de executar no book de ofertas ainda temos essa "ajudinha" no backteste o que torna ainda mais difícil realizar um estudo de qualquer estratégia que use ordens limitadas.

Alguém já notou algo assim?

Agradeço a atenção de todos que puderem compartilhar suas experiências.

Os projetos permitem que criar robôs de negociação lucrativos! Mas não é exatamente isso
Os projetos permitem que criar robôs de negociação lucrativos! Mas não é exatamente isso
  • 2020.06.12
  • www.mql5.com
Um programa grande começa com um arquivo pequeno que, por sua vez, gradualmente se torna maior, sendo preenchido com conjuntos de funções e objetos. A maioria dos desenvolvedores de robôs lida com esse problema por meio de arquivos de inclusão. Mas, o melhor é começar imediatamente a escrever os programas de negociação em projetos, pois isso é benéfico em todos os aspectos.
 
Leandro Ribeiro Da Conceicao:
Alguém já notou algo assim?
Nunca vi um robo que fosse melhor que o backtest, mas no meu caso eu só uso pra testar o modelo OHLC. Nele tem que ter um outro cuidado, o backtest não pode operar a vela mais recente digo isso porque dificilmente voce vai ter nessa modelagem uma vela muito indecisa. Exemplo, uma vela "real" que seria rompe, volta contra renovando o outro extremo e dai volta a favor do rompimento inicial ficaria sendo no teste filtrada para só essa parte final cortando o primeiro movimento que pode causar um stop na real. Além disso, no OHLC tem que cuidar também que ja tive problema com o horario, o fechamento é pra acontecer as 16:54, mas a ação não teve negocio então só fechou no dia seguinte no testador.
 
Ricardo Rodrigues Lucca #:
Nunca vi um robo que fosse melhor que o backtest, mas no meu caso eu só uso pra testar o modelo OHLC. Nele tem que ter um outro cuidado, o backtest não pode operar a vela mais recente digo isso porque dificilmente voce vai ter nessa modelagem uma vela muito indecisa. Exemplo, uma vela "real" que seria rompe, volta contra renovando o outro extremo e dai volta a favor do rompimento inicial ficaria sendo no teste filtrada para só essa parte final cortando o primeiro movimento que pode causar um stop na real. Além disso, no OHLC tem que cuidar também que ja tive problema com o horario, o fechamento é pra acontecer as 16:54, mas a ação não teve negocio então só fechou no dia seguinte no testador.

Por conta das condições do mercado real (fila do book, slipppage, etc) é muito provável que backtestes sejam piores do que a conta real. Como eu uso uma forma de entrada que sempre fecha uma operação e abre outra (virada de mão) e a média de perdas é 4x maior que a média de ganho, uma única virada de mão que não ocorreu na conta real, mas sim no backteste irá modificar o resultado de todas as demais operações até o final do dia. Num prazo mais longo isso significou pra mim um ganho entre 10% a 15% a mais na conta real. Como são muitas operações ao dia eu já descartei o acaso estatístico. Eu só descobri que a modelagem OHLH era mais fiel ao resultado de conta real depois de muitos meses de comparação.

Mas o fato que me chamou a atenção é a execução do MT5 na modelagem Tick a Tick e Tick Real ter "melhorado" de forma absurda os backtestes - coisa que incrivelmente não acontece no OHLC. É isso que desejo investigar com a turma raiz.