Tudo sobre Backtesting, Otimização, Setups, Validação e Testes de Estratégias - página 6

 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Problemas para operar robôs scalp no mini-dólar

Rogerio Figurelli, 2019.08.26 04:59

Olá  Rogerio Giannetti Torres, boas observações e perguntas, vou tentar contribuir com meus dois centavos nesse assunto, que me parece de alta relevância para quem acredita no potencial dos recursos de conta demo e backtesting, como meu caso. Na verdade, com a entrada forte da inteligência artificial no mercado, não consigo imaginar um robô alpha sem explorar fortemente esses recursos.

Bem, antes de mais nada, note-se que no mercado Forex não existe o preço Last. Na verdade, provavelmente por isso, esse preço nem existia quando se começou a testar o MT5 na B3, em 2014, sendo justamente um problema que foi demandado por mim e outros pioneiros naquela época, tanto para o fabricante quanto para as corretoras. Pouco tempo depois a plataforma teve a significativa evolução de trabalhar com recursos de DOM, com a entrada do preço Last. Vários desses recursos já foram implantados dentro de padrões mundiais, o que facilitou a entrada do MT5 em vários outros mercados, de forma diferente das plataformas nacionais, muitas vezes amarradas a questões e recursos tipicamente regionais.

Entretanto, acredito que a maior divergência esteja no fato de que o pessoal busca estratégias operando no limite, típicas de scalpers, esperando que o backtesting vá gerar resultados realistas sem nenhuma alteração no EA, justamente em um ambiente onde a plataforma ainda necessita de uma série de melhorias — ainda que se perceba várias ações nesse sentido —  para alinhamento com o funcionamento real das bolsas de forma simulada, e onde o escorregamento de preços (slippage) é extremamente complexo de ser simulado em qualquer plataforma (ainda mais agora, com a entrada do RLP no mercado). Ou seja, um bom robô hoje, independentemente de plataforma, tem que estar de olho no peixe e no gato, como se diz popularmente, e não adianta jogar a responsabilidade em A ou B, mas sim trabalhar para ter uma arquitetura própria que transforme esses problemas em oportunidades e diferencial competitivo. Mas esse é assunto para outra thread específica.

Voltando ao mundo real, outro problema que vejo seguidamente no fórum é a confusão que se faz em relação ao que é exatamente o preço Last, apesar desse nome (último) ser exatamente o que ele representa em uma bolsa: o preço da última negociação de qualquer instrumento, ou seja, o preço de mercado. Em outras palavras, no mercado de ações, é justamente o preço do último negócio, que determina justamente a cotação atual de qualquer ativo. Nesse caso, o último preço representa exatamente o alinhamento do maior preço que algum trader estava disposto a pagar por uma ação (ou seja, o Bid) com o menor preço que algum trader estava disposto a vender uma ação (ou seja, o Ask). Após esse negócio (ou vários outros nas mesmas condições), evidentemente os preços são mantidos dentro de um spread, que é a diferença a ser vencida novamente para a formação de um novo preço de mercado.

Dito isso, minha visão é que se o robô for bem projetado, levando em conta os limites da estrutura de geração de ticks do MT5, e mais recentemente a tecnologia de testes com ticks reais, a qualidade da operação em conta demo e backtesting, em comparação com a operação real, pode aumentar significativamente. O problema é que a maior parte desses preços são apenas uma simulação e não reais, e aí começa o desafio!

Quem desejar se aprofundar nisso, recomendo os dois artigos abaixo:

The algorithm of ticks' generation within the strategy tester of the Metatrader 5 terminal
https://www.mql5.com/en/articles/75

Testing trading strategies on real ticks
https://www.mql5.com/en/articles/2612

Seja como for, acredito que a evolução necessária no MT5 é justamente permitir que recursos como Livro/DOM sejam utilizados no backtesting, o que é extremamente complexo pelo grande volume de dados, mas que se justifica com o recurso de simulação em Cloud.

Enquanto isso não acontecer, me parece que o mais prudente é criar soluções de contorno nos algoritmos buscando emular com a maior precisão possível, dentro dos limites da arquitetura da plataforma, o que acontece de fato no mercado real.

Sds.,
Rogério Figurelli


 
Depois da build 2125 meus agentes locais rede não se comunicam. Já verifiquei rede, ping pra lá ping pra cá , firewall , tudo. Alguma sugestão ?
 
murphybr:
Depois da build 2125 meus agentes locais rede não se comunicam. Já verifiquei rede, ping pra lá ping pra cá , firewall , tudo. Alguma sugestão ?

Descobri. O MetaTester 5 Agents Manager da build 2124 em diante está bugado. Tive que baixar o Manager da build 2085 do site da Metaquotes e instalar separadamente e agora está ok. Para quem usa os agentes de computação distribuída no serviço MQL5 Cloud Network para "alugar" seus agentes, saiba que não está funcionando da build 2124 em diante.
https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5tester.setup.exe?utm_source=www.mql5.com&utm_campaign=download
     

    Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

    Ficou sem alguma resposta ou entender alguma coisa sobre o MetaTrader/MQL? Pergunte aqui!

    Rogerio Figurelli, 2019.09.06 17:38

    Olá  Alexandre Costa, boa tarde, boa pergunta, note que além da configuração escolhida, é importante compatibilizar o código de seu EA com ela. Por exemplo, se você vai utilizar "1 minute OHLC" minha recomendação é alterar o robô para processar apenas a cada novo candle em M1.
    Tudo seria muito fácil se fosse só isso, entretanto, por mais ajustes que você faça nesse sentido, note que ordens pendentes e limites de S/L e T/P fazem parte da simulação também e são assíncronos, ou seja, podem ocorrer em qualquer tick. Dessa forma, a lógica é que quanto menores forem seus limites, mais suscetíveis a erros seus EAs estarão no backtesting "1 minute OHLC".
    Sem dúvida utilizar o tick a tick, principalmente baseado em ticks reais, é a melhor alternativa para não depender do código de EA, e a qualidade das corretoras depende muito de ativo para ativo.
    Para meus robôs, tanto B3 como Forex, prefiro desenvolver tecnologias específicas para isso, várias delas usando aprendizado de máquina, buscando endereçar esses problemas e também aferir melhor a qualidade de cada uma para cada caso específico, fazendo uma comparação das três modalidades (OHLC, tick virtual e tick real).
    Espero que a resposta ajude, qualquer outro ponto é só avisar.
    Sds.,
    Rogério Figurelli


     

    Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

    OHLC x PriceTick

    Nelson Silva, 2019.09.11 05:51

          

        Prezados,


         é um assunto meio redundante, entretanto eu resolvi abrir esse tópico para discutir a diferença entre esses dois modos.

         Grande frustração eu tive quando um dos meus EAs não retornou o mesmo sucesso no modo a cadaTick.

         Para os veteranos em otimização, qual a melhor forma de simular um ohlc no tick?

         Mais uma ponderação, o testador, mesmo no modo ohlc, trabalha com informações futuras?

         Eu precisaria entender melhor as características desses modos, algum de vcs tem algum link, ou material de qualidade explicando essa diferença?

        

        


     

    Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

    Você tem alguma questão sobre Metatrader 5! Pergunte Aqui!

    Cfbpctpc, 2019.09.26 15:44

    Resultados absurdos de Otimizações e BT no OHCL - WIN$N

    Olá galera, estou tendo problemas pra fazer otimizações no MT5 no WIN$N, por exemplo quando vou fazer um BT no OHCL ou vou fazendo otimizações no set de robôs, (que avalia via OHCL), aparece resultados absurdos, tipo se pego qualquer robô carrego lá com o set original que sei que não era pra dar entrada, ele faz várias entradas sem respeitar os parâmetros, alguém sabe se existe como resolver isso??

    Algumas considerações:

    - Já testei sets em outros PCs pra constatar que o problema é no meu (nos outros PCs não há nenhuma entrada, oq seria o correto, e no meu aparece um resultado com várias entradas e tal)

    - No WDO$N os resultados do OHCL ficam corretos

    - Quando faço BT no cadatick ele apresenta resultados correto (inviável fazer otimizações às cegas e vendo como está no cadatick)

    - Esse problema começou há algumas atualizações do MT5 (acredito que parou de funcionar no final do ano passado, esperei atualizações até hoje pra ver se voltava ao normal mas não voltou, antes funcionava normalmente)

    -Meu processador é um AMD FX-8350, existe possibilidade de ser um problema de cálculo do processador??

    - Já desinstalei e reinstalei o MT5, já formatei a máquina mas continuou o  problema

     

    Obrigado


     
    Bom dia a todos,
    Recomendo a atualização do terminal (Build 2170) e verificação das mudanças no sistema de exibição de resultados de otimização.
    Mais detalhes em https://www.mql5.com/pt/forum/323576
    Sds.,
    Rogério Figurelli
    Nova versão da plataforma MetaTrader 5 build 2170: escopos em MQL5, atualização global do testador de estratégia e hospedagem integrada
    Nova versão da plataforma MetaTrader 5 build 2170: escopos em MQL5, atualização global do testador de estratégia e hospedagem integrada
    • 2019.10.03
    • www.mql5.com
    Na sexta-feira, 4 de outubro de 2019, será lançada uma versão atualizada da plataforma MetaTrader 5...
    Razão: