Avaliação de EA's rodando com real-money em comparação aos backtests

 

Esse tópico criei pois não achei nenhum outro que abordasse a comparação da execução dos EA's na real (grana de verdade) com os backtests etc. É fato e todos concordam que ao operar no real-money os EA's não se comportam exatamente como nos backtests, mas as seguintes questões surgem:

 1- Quão diferente eles operam no backtest pro real? chega a ser aproximado o desempenho ou completamente diferente?

 2- o que é possivel fazer para ajustá-los ?

 3- que variáveis de resultados impactam mais na discrepância entre os dois ambientes? seria a performance, numero de negócios etc ?

 4- baixo número de trades implica realmente num risco maior de diferença de comportamento do real pro backtest? 

 

Pra quem ja operou com EA's no real-money poderia nos dar essa força!

abraços! 

 
rodrixl :

Esse tópico criei pois não achei nenhum outro que abordasse a comparação da execução dos EA's na real (grana de verdade) com os backtests etc. É fato e todos concordam que ao operar no real-money os EA's não se comportam exatamente como nos backtests, mas as seguintes questões surgem:

 1- Quão diferente eles operam no backtest pro real? chega a ser aproximado o desempenho ou completamente diferente?

 2- o que é possivel fazer para ajustá-los ?

 3- que variáveis de resultados impactam mais na discrepância entre os dois ambientes? seria a performance, numero de negócios etc ?

 4- baixo número de trades implica realmente num risco maior de diferença de comportamento do real pro backtest? 

 

Pra quem ja operou com EA's no real-money poderia nos dar essa força!

abraços! 

Tudo depende da estratégia utilizada pela EA. Eu tenho uma EA que usa escalpelamento e eu nunca fui capaz de executar um backtest realista. Em outro, um outro EA que o comércio só em vela nova e com TP / SL de mais de 30 pips, os backtests estão muito perto de demo / trading conta real.
 
rodrixl:

Esse tópico criei pois não achei nenhum outro que abordasse a comparação da execução dos EA's na real (grana de verdade) com os backtests etc. É fato e todos concordam que ao operar no real-money os EA's não se comportam exatamente como nos backtests, mas as seguintes questões surgem:

 1- Quão diferente eles operam no backtest pro real? chega a ser aproximado o desempenho ou completamente diferente?

 2- o que é possivel fazer para ajustá-los ?

 3- que variáveis de resultados impactam mais na discrepância entre os dois ambientes? seria a performance, numero de negócios etc ?

 4- baixo número de trades implica realmente num risco maior de diferença de comportamento do real pro backtest? 

 

Pra quem ja operou com EA's no real-money poderia nos dar essa força!

abraços! 

Mais um tópico interessante, Rodrigo! Parabéns! Tentarei, rapidamente, externar minha experiência/opinião sobre esse assunto...

Para mim, a principal diferença entre o modo real e o modo de backtest é, justamente, o fato de que esse último não consegue simular com exatidão a realidade... Pelo menos no caso do MT5, o chamado modo "Cada Tick" do backtest não é baseado em ticks reais, mas sim, em ticks simulados, como já bastante discutido nesse tópico. A metodologia de geração dos ticks no Strategy Tester do MT5 pode ser lida nesse artigo, entretanto, apesar de ser uma boa metodologia,  a MetaQuotes não abre totalmente os detalhes dessa metodologia.

Ainda com relação às principais diferenças entre os dois modos, o modo "real" de trading conta com outros aspectos que não existem no backtest, como falhas de energia e falhas ou delays na conexão de internet, entre outros exemplos... No caso de pings de conexão muito altos, corre-se atualmente um sério risco de duplicidade de ordens no MT5, como discutido nesse tópico do fórum em inglês.

A sua pergunta "o que é possível fazer para ajustá-los?" é muito interessante... pelo menos no meu caso, eu costumo usar dentro de OnTimer( ) alguns parâmetros de verificação de erros, como por exemplo o, cancelar o EA (assim como todas as ordens pendentes caso não haja posição) quando ordens em duplicidade forem identificadas... outro exemplo: cancelar o EA (ou emitir um alerta) quando a velocidade de execução das ordens for superior a "x" segundos... enfim, existem "n" checagens altamente relevantes que devem ser feitas quando um EA "black box" for colocado pra rodar... se o EA for um "gray box" é o próprio ser humano quem faz essas checagens... mas no caso de black boxes todas as checagens possíveis devem ser feitas dentro do próprio código... por isso mesmo o EA é chamado de "black box"... :-)

Por fim, as duas variáveis que mais impactam a performance de um EA rodando em modo real são: 1) problemas de conexão (latência ou interrupção) e 2) liquidez do ativo onde o EA está sendo rodado, caso os parâmetros do EA estejam dentro de OnTick()... Logo, um baixo número de trades, pelo menos na minha opinião, implica sim num risco maior para o EA... Interessante notar que uma liquidez muito alta também impacta o EA, caso não sejam implementados filtros para resolver o problema de ordens enviadas em duplicidade.

Espero ter ajudado. Abraços,
Malacarne 

 
Malacarne :

Mais um tópico interessante, Rodrigo! Parabéns! Tentarei, rapidamente, externar minha experiência/opinião sobre esse assunto...

Para mim, a principal diferença entre o modo real e o modo de backtest é, justamente, o fato de que esse último não consegue simular com exatidão a realidade... Pelo menos no caso do MT5, o chamado modo "Cada Tick" do backtest não é baseado em ticks reais, mas sim, em ticks simulados, como já bastante discutido nesse tópico . A metodologia de geração dos ticks no Strategy Tester do MT5 pode ser lida nesse artigo , entretanto, apesar de ser uma boa metodologia,  a MetaQuotes não abre totalmente os detalhes dessa metodologia .

...
É mesmo? O que não é claro, com o método de backtesting e simulação de carrapatos ticks ?
 
angevoyageur:
Tudo depende da estratégia utilizada pela EA. Eu tenho uma EA que usa escalpelamento e eu nunca fui capaz de executar um backtest realista. Em outro, um outro EA que o comércio só em vela nova e com TP / SL de mais de 30 pips, os backtests estão muito perto de demo / trading conta real.

Concordo plenamente com o Alain, a otimização é muito dependente da qualidade dos algoritmos do EA.

Porém, existe um outro fator que é o que considero mais relevante de todos: a infinita incerteza do mercado. Ou seja, por mais que o EA possa apresentar resultados alinhados entre backtesting e testes reais, a qualquer momento tudo pode mudar. 

Portanto minha resposta para tua pergunta 1 é que não há limites para a diferença de desempenho. 

Talvez esse seja o ponto que mais surpreende os novos entrantes no mercado, principalmente os com viés mais científico, pois se iludem com o backtesting.

Mas para sair da teoria e entrar na prática, eu acredito que um bom método deve buscar diminuir a incerteza. A incerteza sempre irá existir, mas podemos buscar diminuir ela, e na área financeira considero isso essencial.

E como se diminui a incerteza: existem várias formas, que incluem os algoritmos do EA (como comentou o Alain) e a validação e testes em tempo real do EA (como comentou o Malacarne).

Para complementar, eu citaria também outras formas, que chamo de filtros, como por exemplo utilizar teste para frente (forward testing), fazer testes em conta demonstração antes de operar em conta real, começar sempre em conta real com baixo saldo, etc.

 

Este tipo de aparece regularmente no site, e é perfeitamente legítimo. Mas as respostas, embora correto em minha opinião, são sempre teórico e abstrato. Então, eu acho que vai ser muito interessante para criar um experimento para demonstrar com que os resultados reais, como backtesting e resultados ao vivo pode ser semelhante / diferente, dependendo da estratégia.

Minha proposta é a seguinte:

Encontramos alguns EA representante da base de código implementação de estratégias diferentes e nós vamos executá-los em uma conta demo para alguns meses ou mesmo um ano. Após este período de testes em um ambiente real, podemos então fazer o backtesting de cada EA para o período determinado. Neste momento temos dados realistas para análise, comparar e jogar algumas conclusões.

 
angevoyageur:

Este tipo de aparece regularmente no site, e é perfeitamente legítimo. Mas as respostas, embora correto em minha opinião, são sempre teórico e abstrato. Então, eu acho que vai ser muito interessante para criar um experimento para demonstrar com que os resultados reais, como backtesting e resultados ao vivo pode ser semelhante / diferente, dependendo da estratégia.

Minha proposta é a seguinte:

Encontramos alguns EA representante da base de código implementação de estratégias diferentes e nós vamos executá-los em uma conta demo para alguns meses ou mesmo um ano. Após este período de testes em um ambiente real, podemos então fazer o backtesting de cada EA para o período determinado. Neste momento temos dados realistas para análise, comparar e jogar algumas conclusões.

A ideia me parece muito interessante... mas rodar um EA durante meses ou anos, apenas para comparar os resultados com o backtest me parece um tanto quanto ambicioso, não acha?
 
angevoyageur:

Este tipo de aparece regularmente no site, e é perfeitamente legítimo. Mas as respostas, embora correto em minha opinião, são sempre teórico e abstrato. Então, eu acho que vai ser muito interessante para criar um experimento para demonstrar com que os resultados reais, como backtesting e resultados ao vivo pode ser semelhante / diferente, dependendo da estratégia.

Minha proposta é a seguinte:

Encontramos alguns EA representante da base de código implementação de estratégias diferentes e nós vamos executá-los em uma conta demo para alguns meses ou mesmo um ano. Após este período de testes em um ambiente real, podemos então fazer o backtesting de cada EA para o período determinado. Neste momento temos dados realistas para análise, comparar e jogar algumas conclusões.

Concordo plenamente, ótimo ponto e sugestão.

Mas note que existe uma questão também importante, que é o conflito de interesses. Por exemplo, sempre que penso em passar exemplos reais (já que tenho vários cases, pois profissionalmente testo diariamente milhares de trading systems em tempo real), considero conflitante, e portanto tenho evitado isso ao máximo ficando no campo teórico apenas.

Entretanto, me coloco à disposição para contribuir analisando exemplos práticos fornecidos por outros usuários, porque ai não verei nenhum conflito de interesses.
 
Malacarne :
A ideia me parece muito interessante... mas rodar um EA durante meses ou anos, apenas para comparar os resultados com o backtest  me parece um tanto quanto ambicioso, não acha?
Sim, é ambicioso, mas acho que precisamos de alguns meses e, provavelmente, um ano para ter dados realistas, com diferentes condições de mercado (de tendência, gama, etc ..). Podemos, eventualmente, publica os resultados de cada mês ou 3 meses. Podemos fazer estes testes para Forex, mas talvez também para outros mercados?
 
figurelli :
Concordo plenamente, ótimo ponto e sugestão.

Mas note que existe uma questão também importante, que é o conflito de interesses. Por exemplo, sempre que penso em passar exemplos reais (já que tenho vários cases, pois profissionalmente testo diariamente milhares de trading systems em tempo real), considero conflitante, e portanto tenho evitado isso ao máximo ficando no campo teórico apenas.

Entretanto, me coloco à disposição para contribuir analisando exemplos práticos fornecidos por outros usuários, porque ai não verei nenhum conflito de interesses.
Entendido. É por isso que eu propus usar publicamente disponível EA de base de código. Se estes EA são vencedor ou perdedor, não importa.
 
angevoyageur:
Entendido. É por isso que eu propus usar publicamente disponível EA de base de código. Se estes EA são vencedor ou perdedor, não importa.

Perfeito, então tenho uma sugestão, que poderia acelerar esse processo, pelo menos para comparação de backtesting com resultados reais em três meses (ou seja começar a análise imediatamente sem esperar esses meses).

A ideia seria utilizar EAs de campeonatos do MT5, pois existem vários deles abertos (por exemplo https://www.mql5.com/en/code/919), principalmente de 2012 (o último de fato), e ai podemos fazer o backtesting a partir do setup utilizado e comparar com os resultados prontos obtidos no mercado real durante o campeonato.

Automated Trading Championship 2012
  • championship.mql5.com
Automated Trading Championship 2012