Por favor, gostaria de perguntar sobre recomendações para um backtest mais realista com ativos da B3. Entendo que quando se escolhe "1 minute OHLC" no StrategyTester, o Metatrader 5 acaba enviando para OnTick a ordem abaixo de preços, é isso?
Candle de alta: open, low, high e close
Candle de baixa: open, high, low e close
Entendo que isso acaba gerando uma distorção na simulação, pois não necessariamente o preço seguiu essa ordem de low-high ou high-close no candle. Para minimizar essas distorções, na entrada da operação com 1 minute OHLC cheguei a alterar a estratégia para tomar a decisão do sinal de entrada com base no MqlRates[1] (não usando valores do MqlRates[0], CSymbolInfo.Ask(), CSymbolInfo.Bid()), mas isso acaba limitando a estratégia. No caso de take profit e stop loss, entendo que não tem jeito de minimizar a distorção, concorda? Já que uma operação no StrategyTester pode dar take profit, enquanto na verdade ela poderia ter dado na realidade stop loss.
Nesse contexto, a única opção para usar no StrategyTester seria usar "Every tick based on real ticks"? Caso seja, você acha o histórico de ticks reais das corretoras brasileiras bom? Outro ponto, como os ticks reais demoram muito para serem testados, existe uma opção de rodar um backtest com múltiplas CPUs sem usar o otimizador (já que pelo otimizador não dá para ver no gráfico onde foi cada compra e venda)?
Obrigado.
Oi Rogério, bom dia,
Por favor, gostaria de perguntar sobre recomendações para um backtest mais realista com ativos da B3. Entendo que quando se escolhe "1 minute OHLC" no StrategyTester, o Metatrader 5 acaba enviando para OnTick a ordem abaixo de preços, é isso?
Candle de alta: open, low, high e close
Candle de baixa: open, high, low e close
Entendo que isso acaba gerando uma distorção na simulação, pois não necessariamente o preço seguiu essa ordem de low-high ou high-close no candle. Para minimizar essas distorções, na entrada da operação com 1 minute OHLC cheguei a alterar a estratégia para tomar a decisão do sinal de entrada com base no MqlRates[1] (não usando valores do MqlRates[0], CSymbolInfo.Ask(), CSymbolInfo.Bid()), mas isso acaba limitando a estratégia. No caso de take profit e stop loss, entendo que não tem jeito de minimizar a distorção, concorda? Já que uma operação no StrategyTester pode dar take profit, enquanto na verdade ela poderia ter dado na realidade stop loss.
Nesse contexto, a única opção para usar no StrategyTester seria usar "Every tick based on real ticks"? Caso seja, você acha o histórico de ticks reais das corretoras brasileiras bom? Outro ponto, como os ticks reais demoram muito para serem testados, existe uma opção de rodar um backtest com múltiplas CPUs sem usar o otimizador (já que pelo otimizador não dá para ver no gráfico onde foi cada compra e venda)?
Obrigado.
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
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
Oi Rogério,
Obrigado pelo retorno, por compatibilizar o EA com a configuração de backtest entendo que você está falando de nunca usar o índice 0 do array de MqlRates e indicadores (usar 1 ou algum índice mais antigo), além de não usar SL e TP muito curtos (para minimizar resultados errados), ou tem algo mais?
Obrigado!
Olá Rogerio, como vai?
Busquei algumas respostas nos fóruns e tirei algumas dúvidas. No entanto, não encontrei outras. Poderia, por gentileza, me ajudar?
Estou programando um EA simples (cruzamento de médias) apenas para testar as minhas habilidades. Estou tentando operar no mini dólar e mini índice .. no entanto, quando coloco no volume a quantidade 1, os resultados aparecem como se eu estivesse operando 100 contratos no dólar. O que poderia estar acontecendo?
Desde ja, obrigado.
Estou com um problema ao tentar utilizar minha conta real no Metatrader5, quando coloco o login e senha e escolho a conta real, no caso CLEAR-PRD, aparece as seguinte mensagem:
NO CONNECTION TO CLEAR-PRD
AUTHORIZATION ON CLEAR-PRD FAILED (ACCOUNT DISABLED)
Já a conta demo conecta normalmente.
Alguém já passou por este problema?
Estou com um problema ao tentar utilizar minha conta real no Metatrader5, quando coloco o login e senha e escolho a conta real, no caso CLEAR-PRD, aparece as seguinte mensagem:
NO CONNECTION TO CLEAR-PRD
AUTHORIZATION ON CLEAR-PRD FAILED (ACCOUNT DISABLED)
Já a conta demo conecta normalmente.
Alguém já passou por este problema?
Rogério, boa tarde, fiquei na dúvida se outros podem tentar ajudar quando souber a resposta ou não para seu tópico? Pois você colocou que você vai responder então não sei se estou sendo intrometido rsrsrs. Se eu estiver pode puxar minha orelha viu.
Vou tentar ajudar nesse do Anderson:
Olá Anderson, boa tarde,
..."ACCOUNT DISABLED"...
Na Clear, em Plataformas, quando você assina o MT5 tem um quadrinho pequenino ao lado "Renovação Automática". Se você não marcá-lo, sua assinatura é cancelada quando expira. E as datas são curtas.
A outra possibilidade é conta negativa. Se você tiver na Corretora com saldo negativo sem cobertura a mais de 15 dias, geralmente as plataformas são canceladas automaticamente.
Mas de qualquer forma, parece ser mais um problema a ser resolvido junto a Corretora.
Espero ter ajudado. Abraços.
Oi Rogério,
Obrigado pelo retorno, por compatibilizar o EA com a configuração de backtest entendo que você está falando de nunca usar o índice 0 do array de
MqlRates e indicadores (usar 1 ou algum índice mais antigo), além de não usar SL e TP muito curtos (para minimizar resultados errados),
ou tem algo mais?
Obrigado!
Olá
Alexandre Costa, não estou me referindo a
nenhuma abordagem em específico, o que quero dizer por compatibilizar é evitar perder informações. Por exemplo, se para sua estratégia o
processamento dos ticks faz grande diferença, então você tem que escolher entre utilizar o critério tick a tick no backtesting ou mudar seus
algoritmos para processarem de outra forma.
Sds.,
Rogério Figurelli
Olá Rogerio, como vai?
Busquei algumas respostas nos fóruns e tirei algumas dúvidas. No entanto, não encontrei outras. Poderia, por gentileza, me ajudar?
Estou programando um EA simples (cruzamento de médias) apenas para testar as minhas habilidades. Estou tentando operar no mini dólar e mini índice .. no entanto, quando coloco no volume a quantidade 1, os resultados aparecem como se eu estivesse operando 100 contratos no dólar. O que poderia estar acontecendo?
Desde ja, obrigado.
Olá
VictorCosta67, tudo bem e você? Para um
melhor diagnóstico nessa situação seria necessário analisar seu código fonte. Seja como for, minha suspeita é que esse valor de volume
esteja sendo forçado em alguma área do código (hard coded).
Sds.,
Rogério Figurelli
Rogério, boa tarde, fiquei na dúvida se outros podem tentar ajudar quando souber a resposta ou não para seu tópico? Pois você colocou que você vai responder então não sei se estou sendo intrometido rsrsrs. Se eu estiver pode puxar minha orelha viu.
Vou tentar ajudar nesse do Anderson:
Olá Anderson, boa tarde,
..."ACCOUNT DISABLED"...
Na Clear, em Plataformas, quando você assina o MT5 tem um quadrinho pequenino ao lado "Renovação Automática". Se você não marcá-lo, sua assinatura é cancelada quando expira. E as datas são curtas.
A outra possibilidade é conta negativa. Se você tiver na Corretora com saldo negativo sem cobertura a mais de 15 dias, geralmente as plataformas são canceladas automaticamente.
Mas de qualquer forma, parece ser mais um problema a ser resolvido junto a Corretora.
Espero ter ajudado. Abraços.
Olá
Ruy Christian Hoffmann, muito obrigado, sua
resposta me parece que está correta, mas seja como for, ajuda e participação é sempre bem-vinda, seja o tópico que for nesse fórum.
Sds.,
Rogério Figurelli
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Então decidi criar essa thread para ajudar a quem ainda está com alguma dúvida, pois irei colocar ela como prioridade nas minhas respostas.
Antes de colocar a pergunta aqui, solicito apenas que estude e tente outras áreas do fórum, utilizando aqui como último recurso, justamente para filtrarmos de forma orgânica as perguntas repetitivas.
Sds.,
Rogério Figurelli