Error making purchase - Code 4756.

 

The code below returns error 4756. Does anyone have any suggestions?

O código abaixo retorna o erro 4756. Alguém tem alguma sugestão?

  

   input double take_profit = 0.1;
   input double stop_loss = 10.0;


   MqlTradeRequest request={};
   MqlTradeResult  result={};
   
   ZeroMemory(request);
   ZeroMemory(result);
   
   double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol, SYMBOL_ASK), _Digits);
   double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol, SYMBOL_BID), _Digits);
   
   long min_stop_level = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL);
   double sl = (stop_loss > min_stop_level) ? stop_loss*_Point : min_stop_level*_Point;
   double tp = (take_profit > min_stop_level) ? take_profit*_Point : min_stop_level*_Point;
   
   Print("Ask: ", Ask);
   Print("min_stop_level: ", min_stop_level);
   Print("sl: ", sl);
   Print("tp: ", tp);
   Print("NormalizeDouble(Ask*sl, _Digits): ", NormalizeDouble(Ask - Ask*sl, _Digits));   
   Print("NormalizeDouble(Ask*tp, _Digits): ", NormalizeDouble(Ask + Ask*tp, _Digits));   
   
//--- parâmetros do pedido
   request.action = TRADE_ACTION_DEAL;                     // tipo de operação de negociação
   request.symbol = _Symbol;                              // símbolo
   request.volume = 0.1;                                   // volume de 0.1 lotes
   request.type = ORDER_TYPE_BUY;                        // tipo de ordem
   request.price = Ask; // preço para abertura
   request.deviation = 0;                                     // desvio permitido do preço
   request.magic = 580835983985349;                          // MagicNumber da ordem
   request.sl = NormalizeDouble(Ask - Ask*sl, _Digits);
   request.tp = NormalizeDouble(Ask + Ask*tp, _Digits);
   request.type_filling = ORDER_FILLING_FOK;
   
//--- envio do pedido
   if(!OrderSend(request,result))
      PrintFormat("OrderSend error %d",GetLastError());     // se não for possível enviar o pedido, sairá um código de erro
//--- informação sobre a operação
   PrintFormat("retcode=%u  deal=%I64u  order=%I64u",result.retcode,result.deal,result.order);


Retorno:


Ask: 344.0
min_stop_level: 0
sl: 0.1
tp: 0.001
NormalizeDouble(Ask*sl, _Digits): 309.6
NormalizeDouble(Ask*tp, _Digits): 344.34
OrderSend error 4756
retcode=10017  deal=0  order=0


I would like to thank you in advance for your attention, sincerely,
Otacílio Ricardo.

Desde já agradeço sua atenção,  cordialmente,
Otacílio Ricardo.

Documentation on MQL5: Constants, Enumerations and Structures / Trade Constants / Trade Operation Types
Documentation on MQL5: Constants, Enumerations and Structures / Trade Constants / Trade Operation Types
  • www.mql5.com
Trading is done by sending orders to open positions using the OrderSend() function, as well as to place, modify or delete pending orders. Each...
 

Error 4756 means: ERR_TRADE_SEND_FAILED 4756 Trade request sending failed.

Cause might be the weekend and a closed server on broker's side?