OrderSend ile MT5'te nasıl düzgün çalışılır - sayfa 12

 
prostotrader :

" MT5'te OrderSend ile Nasıl Çalışılır " konusunun sorusunun yanıtlanması

basit bir cevap var

Geliştiriciler hatayı düzeltene kadar

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

Ve düzelttiklerinde

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


5'in ham-ham olduğuna dair genel bir izlenimim var ...
 
Maxim Kuznetsov :
5'in ham-ham olduğuna dair genel bir izlenimim var ...

Hiç kimse hatalardan bağışık değildir.

Başka bir şey, hataların düzeltilmesinin uzun zaman almasıdır.

 
prostotrader :

" MT5'te OrderSend ile Nasıl Çalışılır " konusunun sorusunun yanıtlanması

basit bir cevap var

Geliştiriciler hatayı düzeltene kadar, o zaman

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

Ve bir paket OrderSend varsa?

Ve düzelttiklerinde

Düzeltmeyecekler. Bu bir özelliktir.
 
fxsaber :

Ve eğer bir paket OrderSend?


PACKU biletlerini alan, bir SU POMPASI alacak!
 

PAKET sevenler için

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 (); ////////
  }
}
 

ya da öyle

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 :

Düzeltmeyecekler. Bu bir özelliktir.

Geliştiricilerin OrderSend () ile durum hakkında yorum yapmaması üzücü.

Bu bir "hile" mi yoksa düzeltecekler mi? ...

 
fxsaber :

Düzeltmeyecekler. Bu bir özelliktir.

SD, bir sonraki derlemeden OrderSend() 'in olması gerektiği gibi çalışacağını söyledi :)
 
prostotrader :
SD, bir sonraki derlemeden OrderSend()'in olması gerektiği gibi çalışacağını söyledi :)
orada eğlenirler

açık pozisyonların geçmişinden bir anlaşma veya pozisyonun tam olarak oluşturulmuş bir yapısını almalı" sürecini eklemeye çalışıyorsunuz.

 

Yine de bana yukarıda yazdığımı cevapladılar.

Belki çok inandırıcı yazmadınız veya işlevin eksikliği hakkında tartışmadınız.