EA baseado no volume não faz backteste mas funciona na conta real. É possível resolver?
Estude esse código: Download livre do indicador 'CopyTicksInd' por 'barabashkakvn' para MetaTrader 5 no CodeBase MQL5, 2016.03.04

- www.mql5.com
Boa tarde Rogério.
Inicialmente, obrigado pela ajudar, mas dei uma olhada no código que me enviou, porém não consegui achar uma forma na qual ele me ajudasse a resolver a questão de não conseguir fazer backtest analisando o volume do tick.
Meu conhecimento não é muito avançado, então se você puder me explicar um pouco melhor.
Obrigado!!!
Olá,
bom, já tentou fazer backteste com ticks reais?
Tenta recuperar o tipo da flag dessa maneira
enum eTipoDeFlag { negocioDireto, compra, venda, } int _TipoDeFlag(int pFlags) { int retorno = -1; if(( (pFlags & TICK_FLAG_BUY) == TICK_FLAG_BUY) && ( (pFlags & TICK_FLAG_SELL) == TICK_FLAG_SELL) ) { retorno = negocioDireto; } else if((pFlags & TICK_FLAG_BUY) == TICK_FLAG_BUY) { retorno = compra; } else if((pFlags & TICK_FLAG_SELL) == TICK_FLAG_SELL) { retorno = venda; } return retorno; };
Os valores devem ser testados bit a bit
Vê se é somente este o seu problema
Ah....e claro, como não colocou no seu código de exemplo, não esquece de copiar os ticks para dentro do array
CopyTicks(_Symbol, ticks, COPY_TICKS_TRADE, 0, 1 ); //No exemplo acima só copiei uma negociação, se deixar o valor do último parâmetro 0 ele vai copiar tudo que foi negociado naquele instante em que leu os dados
MqlTick tick;
...
if(tick.flags == 56) //56 = BUY
{agressao= agressao + tick.volume_real;}
if(tick.flags == 88) //88 = SELL
{agressao= agressao - tick.volume_real;}
...
Onde exatamente este código está enfiado?
Bom, eu prefiro não saber em que lugar obscuro ele está enfiado... Desculpe, não resisti.
Olha, presumindo que vc usa o MT5, é bem fácil resolver. Põe uma marca de depuração com F9 nessa parte do codigo, ou em uma linha antes, e quando ele parar ali visualize o conteúdo da variável usando a guia "depurar" da caixa de ferramentas. Provavelmente essas variáveis estão vindo com valores diferentes no backtest

- Aplicativos de negociação gratuitos
- VPS Forex grátis por 24 horas
- 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
Boa noite! Estou com um problema.
Criei um EA que faz suas análises baseadas no volume de cada tick, e durante o mercado ele funciona normalmente, porém no backteste ou na otimização ele não faz nenhuma operação? Testei com a modelagem "Cada tick" e "Cada tick é baseado em um tick real", e tanto com "tick.volume", quanto "tick.volume_real", e o resultado é o mesmo.
Alguém saberia me ajudar? Estou fazendo algo de errado?
MqlTick tick;
...
if(tick.flags == 56) //56 = BUY
{agressao= agressao + tick.volume_real;}
if(tick.flags == 88) //88 = SELL
{agressao= agressao - tick.volume_real;}
...