Voce nao pode fazer essa operação ask+g, ask-l, etc diretamente na ordem de compra ou venda. Você deve normalizar os valores antes.
Voce nao pode fazer essa operação ask+g, ask-l, etc diretamente na ordem de compra ou venda. Você deve normalizar os valores antes.
Claudio obrigado pe;a pronta resposta.
Fiz assim mas o problema persiste. Tou achando que nao utilizei a funcao de checar se tinha posicao aberta
//+------------------------------------------------------------------+
//| LOGICA DE ROTEAMENTO |
//+------------------------------------------------------------------+
//--- zerado
ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
bid = SymbolInfoDouble(_Symbol, SYMBOL_BID);
if( !comprado && !vendido && HoraNegociacao() )
{
//--- sinal de compra
if( sinalCompra )
{
double SL = ask -L;
double TP = ask +G;
trade.Buy(LOTE,_Symbol,0,SL, TP ,"Compra a mercado");
}
//--- sinal de venda
if( sinalVenda )
{
double SL = bid +L;
double TP = bid -G;
trade.Sell(LOTE,_Symbol,0 , SL, TP,"Venda a mercado");
}
}
}
Voce continua sem normalizar os valores.
Dê uma olhada na função NormalizeDouble (https://www.mql5.com/pt/docs/convert/normalizedouble).
- www.mql5.com
Olá pessoal,
como fazer para que o robo só entre em uma operaçao por candle???
P -los na MT5??
Olá THIRDAWESOME, você precisa multiplicar a posição por _Point e deve resolver esse problema
- 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
Boa noite,
Sou iniciante no EA do MT5, e estou com problema na DEMO onde ordens são fechadas sem atingir o SL ou TP. Alguém pode ajudar?? Eu testei em ações e nao percebi esse erro.
No relatório do Backtest saiu isso:
- 2020.10.05 19:00:55.489 Core 2 2020.09.28 14:51:25 failed exchange buy 1 WDOX20 at 5663.500 sl: 5645.500 tp: 5668.500 [Invalid stops].
No caso estava SL=20 e TP=5. Se for somar os valores seriam: SL: 5643.5 e TP: 5668.5
Ativo WDOX20
//+------------------------------------------------------------------+
//| LOGICA DE ROTEAMENTO |
//+------------------------------------------------------------------+
//--- zerado
ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
bid = SymbolInfoDouble(_Symbol, SYMBOL_BID);
if( !comprado && !vendido && HoraNegociacao() )
{
//--- sinal de compra
if( sinalCompra )
{
trade.Buy(LOTE,_Symbol,0,ask-L, ask+G ,"Compra a mercado");
}
//--- sinal de venda
if( sinalVenda )
{
trade.Sell(LOTE,_Symbol,0 , bid+L,bid-G,"Venda a mercado");
}
}
}