Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Fala Pessoal.
Estou com problemas no meu EA para mandar ordens do tipo BUY STOP e SELL STOP, está retornando o código 10022 (INVALID EXPIRATION)
A configuração de expiração delas esta para request.type_time=ORDER_TIME_DAY; Conforme especificação do Ativo (WIN).
Ao enviar ordens do tipo BUY LIMIT e SELL LIMIT não tenho problemas, estão configuradas na mesma forma.
OUTRO DETALHE IMPORTANTE: A função OrderCheck Retorna como válido o resquest mas a função OrderSend retorna o 10022.
Abaixo o código do request.
int VendaStop(ulong slippage, double l,double SL,double TP,double price,ulong magic)
{
MqlTradeRequest request;
MqlTradeResult result;
MqlTradeCheckResult check;
ZeroMemory(request);
ZeroMemory(result);
ZeroMemory(check);
int digit=int(SymbolInfoInteger(_Symbol,SYMBOL_DIGITS));
double point=SymbolInfoDouble(_Symbol,SYMBOL_POINT);
double Ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
double Bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
long ds=SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);
double minl=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
double po=NormalizePrice(price);
double lot=l;
lot=NormalizeDouble(lot,2);
if(lot<minl) lot=minl;
request.type = ORDER_TYPE_SELL_STOP ;
request.price = po;
request.action = TRADE_ACTION_PENDING;
request.symbol = _Symbol;
request.volume = lot;
request.magic=magic;
request.type_filling=ORDER_FILLING_FOK;
request.deviation=slippage;
request.type_time=ORDER_TIME_DAY;
if(!DailyResultOutOfLimit()){
if(ActualyOnWorkPeriod())
{
if(!OrderCheck(request,check))
{
Print(__FUNCTION__,"(): Error inputs for trade order");
Print(__FUNCTION__,"(): OrderCheck(): ",CodigoErroResultado(check.retcode));
return(-1);
}
if(!OrderSend(request,result) || result.retcode!=TRADE_RETCODE_DONE)
{
Print(__FUNCTION__,"(): Unable to make the transaction");
Print(__FUNCTION__,"(): OrderSend(): ",CodigoErroResultado(result.retcode));
return(-1);
}
else
{
if(result.retcode!=TRADE_RETCODE_DONE)
{
Print(__FUNCTION__,"(): Unable to make the transaction");
Print(__FUNCTION__,"(): OrderSend(): ",CodigoErroResultado(result.retcode));
return (-1);
}
}
}
else
Print("Venda não enviada por estar fora do horário de tabalho do robo");
}
return(0);
}