Como trabalhar corretamente em MT5 com OrderSend - página 12

 
prostotrader:

Respondendo à pergunta"Como trabalhar corretamente em MT5 com OrderSend".

Há uma resposta simples.

Até que os desenvolvedores resolvam o problema, então

ulong pre_ticket; //Предварительный тикет
ulong order_ticket; //Тикет ордера
//---
if(OrderSend(request,result))
  {
    if(result.retcode==TRADE_RETCODE_DONE)
    {
      pre_ticket=result.order;
    }  
  }
//----------------------------------------------------------------+
//| TradeTransaction function                                        |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
                        const MqlTradeRequest &request,
                        const MqlTradeResult &result)
{
   switch(trans.type)
   {
     case TRADE_TRANSACTION_ORDER_UPDATE:
       if((pre_ticket>0) && (trans.order==pre_ticket))
       {
         switch(trans.order_state)
         {
           case ORDER_STATE_PLACED:
             order_ticket = pre_ticket;
           break;
         }
       }
     break;
   }
}

E quando estiverem, então

ulong order_ticket; //Тикет ордера
//---
if(OrderSend(request,result))
  {
    if(result.retcode==TRADE_RETCODE_DONE)
    {
      order_ticket=result.order;
    }  
  }


Tenho a impressão geral de que 5 é cru, cru...
 
Maxim Kuznetsov:
Tenho a impressão geral de que o 5 é cru, cru...

Ninguém é imune a erros.

Outra coisa é que os erros demoram muito tempo para serem corrigidos.

 
prostotrader:

Respondendo à pergunta"Como trabalhar corretamente em MT5 com OrderSend".

Há uma resposta simples.

Até que os desenvolvedores o consertem

ulong pre_ticket; //Предварительный тикет
ulong order_ticket; //Тикет ордера
//---
if(OrderSend(request,result))
  {
    if(result.retcode==TRADE_RETCODE_DONE)
    {
      pre_ticket=result.order;
    }  
  }
//----------------------------------------------------------------+
//| TradeTransaction function                                        |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
                        const MqlTradeRequest &request,
                        const MqlTradeResult &result)
{
   switch(trans.type)
   {
     case TRADE_TRANSACTION_ORDER_UPDATE:
       if((pre_ticket>0) && (trans.order==pre_ticket))
       {
         switch(trans.order_state)
         {
           case ORDER_STATE_PLACED:
             order_ticket = pre_ticket;
           break;
         }
       }
     break;
   }
}

E se o pacote OrderSend?

E quando é fixado, então

Eles não o farão. É um chip.
 
fxsaber:

E se um pacote OrderSend?


Quem pegar um pacote de ingressos recebe um pacote de água!
 

Para os amantes do PACHE

ulong pre_ticket = 0; //Претикет ордера
ulong order_ticket_1 = 0; //Тикет ордера
ulong order_ticket_2 = 0; //Тикет ордера
ulong order_ticket_3 = 0; //Тикет ордера
ulong order_ticket_4 = 0; //Тикет ордера
ulong order_ticket_5 = 0; //Тикет ордера
uint num_order = 0;
//---
if(OrderSend(request,result))
  {
    if(result.retcode==TRADE_RETCODE_DONE)
    {
      pre_ticket=result.order;
      num_order++;
    }  
  }
//----------------------------------------------------------------+
//| TradeTransaction function                                        |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
                        const MqlTradeRequest &request,
                        const MqlTradeResult &result)
{
   switch(trans.type)
   {
     case TRADE_TRANSACTION_ORDER_UPDATE:
       if((pre_ticket>0) && (trans.order==pre_ticket))
       {
         switch(trans.order_state)
         {
           case ORDER_STATE_PLACED:
             switch(num_order)
             {
               case 1:
                 order_ticket_1 = pre_ticket;
                 pre_ticket = 0;
               break;
               case 2:
                 order_ticket_2 = pre_ticket;
                 pre_ticket = 0;
               break;
               case 3:
                 order_ticket_3 = pre_ticket;
                 pre_ticket = 0;
               break;
               case 4:
                 order_ticket_4 = pre_ticket;
                 pre_ticket = 0;
               break;
               case 5:
                 order_ticket_5 = pre_ticket;
                 pre_ticket = 0;
               break;
             }
           break;
         }
       }
     break;
   }
}
void OnTick()
{
  if(pre_ticket == 0)
  {
    OrderSend();////////
  }
}
 

Ou como este

ulong pre_ticket = 0; //Претикет ордера
ulong order_ticket_1 = 0; //Тикет ордера
ulong order_ticket_2 = 0; //Тикет ордера
ulong order_ticket_3 = 0; //Тикет ордера
ulong order_ticket_4 = 0; //Тикет ордера
ulong order_ticket_5 = 0; //Тикет ордера
uint num_order = 0;
//---
if(OrderSend(request,result))
  {
    if(result.retcode==TRADE_RETCODE_DONE)
    {
      pre_ticket=result.order;
      num_order++;
    }  
  }
//----------------------------------------------------------------+
//| TradeTransaction function                                        |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
                        const MqlTradeRequest &request,
                        const MqlTradeResult &result)
{
   switch(trans.type)
   {
     case TRADE_TRANSACTION_ORDER_UPDATE:
       if((pre_ticket>0) && (trans.order==pre_ticket))
       {
         switch(trans.order_state)
         {
           case ORDER_STATE_PLACED:
             switch(num_order)
             {
               case 1:
                 order_ticket_1 = pre_ticket;
                 pre_ticket = 0;
                 OrderSend();
               break;
               case 2:
                 order_ticket_2 = pre_ticket;
                 pre_ticket = 0;
                 OrderSend();
               break;
               case 3:
                 order_ticket_3 = pre_ticket;
                 pre_ticket = 0;

                 OrderSend(); 

               break;
               case 4:
                 order_ticket_4 = pre_ticket;
                 pre_ticket = 0;
                 OrderSend();
               break;
               case 5:
                 order_ticket_5 = pre_ticket;
                 pre_ticket = 0;
               break;
             }
           break;
         }
       }
     break;
   }
}
 
fxsaber:

Eles não o farão. É um chip.

É uma pena que os desenvolvedores não comentem a situação da OrderSend().

É um "chip" ou eles vão consertá-lo?

 
fxsaber:

Eles não o farão. É um chip.

SD disse que a partir da próxima construção OrderSend() vai funcionar corretamente :)
 
prostotrader:
SD responde que a OrderSend() funcionará corretamente na próxima construção :)
Que diversão eles têm lá

posições abertas a estrutura completa do ofício ou posição".

 

No entanto, recebi a resposta que escrevi acima.

Talvez você não tenha escrito de forma muito convincente ou não tenha argumentado sobre a falta de função.

Razão: