Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1454

 
Mikhail Toptunov #:

Signori, ministri!)

Ancora venticinque.

   for(int i=OrdersTotal()-1; i>=0; i--)
      if(m_position.SelectByIndex(i))
        {
         long f= m_position.Magic();
         if(m_position.Comment()==comment)
            if(m_position.Type()==type)
               if(m_position.Magic()==magic)
                  return(true);
        }

Un misto di cavalli, persone....

Che diavolo è questo?

Stiamo chiedendo il numero di ordini aperti, ma stiamo controllando le posizioni. Non funzionerà.
 
JRandomTrader #:

Ahimè, non è proprio così. Ho già mostrato qui come ho ricevuto il codice 10012, zero order ticket, ma l'ordine è stato eseguito. MQ tace su questo argomento.

Ho scritto una stampella per questo, ma sarà possibile verificarlo solo dopo aver ricevuto di nuovo il 10012).

Questa è un'eccezione alle regole, e una persona non è in grado di capire la differenza tra ordini, operazioni e posizioni. E lo confondete anche con le eccezioni))))))

Quando capirà come funziona, sarà in grado di scrivere un assegno per le proprie esigenze.

 
Aleksandr Slavskii #:

... e una persona non riesce a capire la differenza tra ordini, operazioni e posizioni . ..

Quando capirà come funziona, sarà in grado di scrivere un assegno per le proprie esigenze.

Tutto è descritto in dettaglio qui.

Saluti, Vladimir.

 

grazie, sembra aver capito tutto!!!!


//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction&    trans,     // структура торговой транзакции
                        const MqlTradeRequest&        request,   // структура запроса
                        const MqlTradeResult&         result)    // структура ответа
  {
//--- результат выполнения торгового запроса
 ulong            lastOrderID   =trans.order; 

//--- тип транзакции
   ENUM_TRADE_TRANSACTION_TYPE  trans_type=trans.type;
   switch(trans.type)
     {
      case  TRADE_TRANSACTION_POSITION:   // изменение позиции
        {

        }
      break;
      //---
      case TRADE_TRANSACTION_ORDER_ADD:    // добавление нового действующего ордера
        {
         fix_position_open(lastOrderID);
        }
      break;
      case TRADE_TRANSACTION_REQUEST:    // добавление нового действующего ордера
        {

        }
      break;
     }
//---
  }
//--- Фиксируем если позиция открыта --------------------------------+
void fix_position_open(ulong lastOrderID)
  {
//--- Фиксируем если позиция открыта
   for(int i=0; i<ArraySize(position_buff); i++)
      if(position_buff[i].timeOp==1)
         if(!match_open_orders(lastOrderID))
           {
            position_buff[i].timeOp= 0;     // Фиксировать время
            Print("Метод OnTrade() по рынку не выполнен. Код возврата=",m_trade.ResultRetcode(),
                  " (",m_trade.ResultRetcodeDescription(),")"+position_buff[i].comment+" lot "+DoubleToString(position_buff[i].lot));//
           }
         else
           {
            position_buff[i].timeOp= TimeCurrent();
            Print("Метод OnTrade() по рынку выполнен успешно. Код возврата=",m_trade.ResultRetcode(),
                  " (",m_trade.ResultRetcodeDescription(),")"+position_buff[i].comment+" lot "+DoubleToString(position_buff[i].lot));//
           }
  }
//--- Соответствие открытых ордеров ---------------------------------+
bool match_open_orders(long lastOrderID)
  {
//---
   for(int i=PositionsTotal()-1; i>=0; i--)
      if(m_position.SelectByIndex(i))
         if(m_position.Identifier()==lastOrderID)
            return(true);
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(m_order.SelectByIndex(i))
         if(m_order.Ticket()==lastOrderID)
            return(true);
   return(false);
  }
 
Mikhail Toptunov #:

grazie, sembra aver capito tutto!!!!

Una posizione viene aperta quando un ordine viene eseguito, cioè viene effettuata una transazione e l'ordine entra nella storia.

 
Cosa fare se non tutte le funzioni sono disponibili in MQL5
 
Baruandreas #:
Cosa fare se non tutte le funzioni sono disponibili in MQL5

Dimenticare del tutto mql4 e leggere costantemente la documentazione di mql5.

 
Baruandreas #:
Cosa fare se non tutte le funzioni sono disponibili in MQL5

La domanda non è chiara. Innanzitutto chiarite la vostra domanda:

  1. Stiamo parlando di funzioni già esistenti in MQL5?
  2. Esiste una funzione nell'insieme delle funzioni pronte in MQL5, ma non funziona?
  3. Avete bisogno di una certa funzione, ma non c'è una funzione simile nell'insieme delle funzioni MQL5 già pronte?
Saluti, Vladimir.
 
MrBrooklin #:

La sua domanda non è chiara. Innanzitutto, chiarisca la sua domanda:

  1. Stiamo parlando di funzioni già esistenti in MQL5?
  2. Esiste una funzione nel set di MQL5 già pronto, ma non funziona?
  3. Avete bisogno di una certa funzione, ma non c'è nel set di MQL5 già pronto?
Saluti, Vladimir.

Come si è scoperto in seguito, questo è uno di quelli che inquina l'intero forum con le sue domande. Ha persino creato un argomento separato...

 
Alexey Viktorov #:

Come si è scoperto in seguito, si tratta di una di quelle persone che intasano l'intero forum con le sue domande. Ha persino creato un topic a parte...

Ciao Alexey, ora è tutto chiaro.

Saluti, Vladimir.