Wie man im MT5 mit OrderSend korrekt arbeitet - Seite 12

 
prostotrader:

Beantwortung der Frage"Wie arbeitet man korrekt im MT5 mit OrderSend"

Darauf gibt es eine einfache Antwort.

Bis die Entwickler das Problem behoben haben, wird

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;
   }
}

Wenn sie das tun, dann

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


Ich habe den allgemeinen Eindruck, dass 5 roh ist, roh...
 
Maxim Kuznetsov:
Ich habe den allgemeinen Eindruck, dass die 5 roh ist, roh...

Keiner ist vor Fehlern gefeit.

Außerdem dauert es sehr lange, Fehler zu korrigieren.

 
prostotrader:

Beantwortung der Frage"Wie arbeitet man richtig in MT5 mit OrderSend"

Darauf gibt es eine einfache Antwort.

Bis die Entwickler das Problem beheben

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;
   }
}

Was ist, wenn das OrderSend-Paket?

Und wenn sie festgelegt ist, dann

Das werden sie nicht. Es ist ein Chip.
 
fxsaber:

Was ist, wenn ein OrderSend-Paket?


Wer ein Bündel Tickets nimmt, bekommt ein Bündel Wasser!
 

Für Liebhaber von 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();////////
  }
}
 

Oder so

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:

Das werden sie nicht. Es ist ein Chip.

Es ist schade, dass sich die Entwickler nicht zur OrderSend()-Situation äußern.

Ist es ein "Chip" oder wird er repariert?

 
fxsaber:

Das werden sie nicht. Es ist ein Chip.

SD sagte, dass ab dem nächsten Build OrderSend() richtig funktionieren wird :)
 
prostotrader:
SD antwortet, dass OrderSend() im nächsten Build richtig funktionieren wird :)
Was für einen Spaß sie dort haben

offenen Positionen die vollständige Struktur des Geschäfts oder der Position abrufen" zu ergänzen.

 

Trotzdem habe ich die Antwort bekommen, die ich oben geschrieben habe.

Vielleicht haben Sie nicht sehr überzeugend geschrieben oder Sie haben das Argument der fehlenden Funktion nicht vorgebracht.