Atualmente estou desenvolvendo um Expert Advisor que realiza arbitragem entre dois símbolos: WINV24 e INDV24. Eu executo meus backtests com WINV24 como símbolo principal e funciona bem para receber dados de ticks. Porém, ao tentar acessar os dados do tick do INDV24 durante o backtest, todos os valores deste símbolo aparecem como zero (bid, ask, last, etc.).
Aqui está o que verifiquei e tentei até agora:
Disponibilidade de dados: garanti que os dados históricos de ambos os símbolos estejam disponíveis em minha plataforma. Posso carregar e percorrer gráficos do WINV24 e INDV24.
Ativação do símbolo: No meu EA, estou usando SymbolSelect("INDV24", true) para ativar o símbolo durante a inicialização.
Acesso aos dados do tick: Na função OnTick(), tento recuperar os dados do tick para INDV24 usando SymbolInfoTick(), mas os valores retornados são todos zeros.
Configurações de backtest: executei o backtest nos modos "Every Tick" e "Real Ticks", mas o resultado é o mesmo – nenhum dado de tick válido para INDV24.
Alguém tem experiência em executar backtests EA que olham multi símbolos como este? Poderia estar faltando alguma coisa na configuração ou existe uma maneira específica de garantir que ambos os símbolos forneçam dados de tick corretos durante um backtest?
Qualquer ideia ou sugestão seria muito apreciada.
Desde já, obrigado!
Aqui eu nem coloquei ele pra selecionar no testador porque quando ele detecta o simbolo ele tenta baixar e tanto o Cada tick como o real tick deu certo. Certamente se tivesse um problema assim acho que ia ter bem mais reclamação...
O código usado foi esse:
//--- input parameters input string Inp="INDV24"; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { MqlTick source[1]; MqlTick other[1]; //--- if (!SymbolInfoTick(NULL, source[0])) { Print("falhou no pegar dados do ", _Symbol); } else { Print(_Symbol); ArrayPrint(source); } if (!SymbolInfoTick(Inp, other[0])) { Print("falhou no pegar dados do ", Inp); } else { Print(Inp); ArrayPrint(other); } }
Aqui eu nem coloquei ele pra selecionar no testador porque quando ele detecta o simbolo ele tenta baixar e tanto o Cada tick como o real tick deu certo. Certamente se tivesse um problema assim acho que ia ter bem mais reclamação...
O código usado foi esse:
Olá, tudo bem?
Na verdade, eu vi aqui de novo, todas as propriedades são preenchidas, menos o last, e o volume, que são as duas que uso. No seu print essas propriedades também não foram preenchidas.
Saberia o motivo e como resolver?
Olá, tudo bem?
Na verdade, eu vi aqui de novo, todas as propriedades são preenchidas, menos o last, e o volume, que são as duas que uso. No seu print essas propriedades também não foram preenchidas.
Saberia o motivo e como resolver?
ele popula sim esporadicamente, do mesmo jeito que o winv24 fica zerado esporadicamente. Ve as 11h37 do dia 16 o winv tava sem valor last e volume zero e indv24 tava com valor e volume 5. Não sei explicar, mas o que acredito volume 0 no tick é movimento do ask/bid sem negocio. Isso parece mais normal no indv que no winv, mas eh estranho no winv ter acontecido no historico aqui.
Isso torna os backtests muito inconsistentes, toda hora as ordens são recusadas porque winv está com volume zero, e na maior parte do tempo, indv está sem last tick, não da para rodar backtests confiáveis dessa forma.
Sabe se tem como ajustar isso?
Isso torna os backtests muito inconsistentes, toda hora as ordens são recusadas porque winv está com volume zero, e na maior parte do tempo, indv está sem last tick, não da para rodar backtests confiáveis dessa forma.
Sabe se tem como ajustar isso?
eu não sei. mas isso é o histórico errado, ve com o mercado rodando se ocorre em conta demo. Mas normalmente a pessoa se guia pelo bid/ask pras ordens e não o last.
eu não sei. mas isso é o histórico errado, ve com o mercado rodando se ocorre em conta demo. Mas normalmente a pessoa se guia pelo bid/ask pras ordens e não o last.
Em mercado aberto parece acontecer como deveria. Mas os backtests tão muito pouco confiáveis porque os dados históricos (da clear no meu caso) está muito incorreto. E causa vários bugs no EA.
Mas imagino que seja falha dos dados, muito obrigado pela ajuda.
- 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

Atualmente estou desenvolvendo um Expert Advisor que realiza arbitragem entre dois símbolos: WINV24 e INDV24. Eu executo meus backtests com WINV24 como símbolo principal e funciona bem para receber dados de ticks. Porém, ao tentar acessar os dados do tick do INDV24 durante o backtest, todos os valores deste símbolo aparecem como zero (bid, ask, last, etc.).
Aqui está o que verifiquei e tentei até agora:
Disponibilidade de dados: garanti que os dados históricos de ambos os símbolos estejam disponíveis em minha plataforma. Posso carregar e percorrer gráficos do WINV24 e INDV24.
Ativação do símbolo: No meu EA, estou usando SymbolSelect("INDV24", true) para ativar o símbolo durante a inicialização.
Acesso aos dados do tick: Na função OnTick(), tento recuperar os dados do tick para INDV24 usando SymbolInfoTick(), mas os valores retornados são todos zeros.
Configurações de backtest: executei o backtest nos modos "Every Tick" e "Real Ticks", mas o resultado é o mesmo – nenhum dado de tick válido para INDV24.
Alguém tem experiência em executar backtests EA que olham multi símbolos como este? Poderia estar faltando alguma coisa na configuração ou existe uma maneira específica de garantir que ambos os símbolos forneçam dados de tick corretos durante um backtest?
Qualquer ideia ou sugestão seria muito apreciada.
Desde já, obrigado!