초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1454

 
Mikhail Toptunov #:

여러분, 장관님들!)

다시 스물다섯입니다.

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

말과 사람의 혼합....

이게 대체 뭐죠?

미체결 주문 수를 묻는 중인데 포지션을 확인하는 중입니다. 그건 안 되겠는데요.
 
JRandomTrader #:

아아, 그렇지 않습니다. 이미 여기에 코드 10012, 제로 주문 티켓을 받았지만 주문이 실행 된 방법을 보여 드렸습니다. MQ는 이 문제에 대해 침묵하고 있습니다.

나는 그것에 대한 목발을 썼지 만 10012를 다시받은 후에야 확인할 수있을 것입니다 ).

이것은 규칙의 예외이며 사람은 주문, 거래 및 포지션의 차이점을 이해할 수 없습니다. 그리고 당신은 또한 그를 예외와 혼동합니다))))))

그가 그것이 어떻게 작동하는지 이해하면 그는 자신의 필요에 맞는 수표를 쓸 수있을 것입니다.

 
Aleksandr Slavskii #:

... 그리고 사람은 주문, 거래 및 포지션의 차이를 이해할 수 없습니다 . ..

그가 그것이 어떻게 작동하는지 이해하면 그는 자신의 필요에 맞는 수표를 쓸 수있을 것입니다.

모든 것이 여기에 자세히 설명되어 있습니다.

안부, 블라디미르.

 

고마워요, 알아낸 것 같아요!!!!


//+------------------------------------------------------------------+
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 #:

고마워요, 알아낸 것 같아요!!!!

주문이 체결되면 포지션이 개설됩니다. 즉, 거래가 이루어지고 주문이 기록에 남게 됩니다.

 
MQL5에서 모든 기능을 사용할 수 없는 경우 수행 방법
 
Baruandreas #:
MQL5에서 모든 기능을 사용할 수 없는 경우 수행 해야 할 작업

MQL4는 아예 잊어버리고 MQL5 설명서를 계속 읽으세요.

 
Baruandreas #:
MQL5에서 모든 기능을 사용할 수 없는 경우 수행 방법

질문이 명확하지 않습니다. 먼저 질문을 명확히 하세요:

  1. MQL5에 이미 존재하는 함수에 대해 이야기하는 건가요?
  2. MQL5의 기 성 함수 집합에 함수가 있지만 작동하지 않나요?
  3. 특정 기능이 필요하지만 기성품 MQL5 함수 세트에 그러한 기능이 없습니까?
감사합니다, 블라디미르.
 
MrBrooklin #:

질문이 명확하지 않습니다. 먼저 질문을 명확히 하세요:

  1. MQL5에 이미 존재하는 함수에 대해 이야기하는 건가요?
  2. 기성 MQL5 세트에 함수가 있지만 작동하지 않나요?
  3. 특정 기능이 필요하지만 기성품 MQL5 세트에 그러한 기능이 없습니까?
안부, 블라디미르.

나중에 밝혀 졌 듯이 이것은 그의 질문으로 전체 포럼을 오염시키는 사람들 중 한 명입니다. 그는 심지어 별도의 주제를 만들었습니다...

 
Alexey Viktorov #:

나중에 알게 된 사실이지만, 그는 질문으로 전체 포럼을 방해하는 사람 중 한 명입니다. 그는 심지어 별도의 주제를 만들기도 했습니다...

안녕하세요 Alexey, 이제 모든 것이 명확 해졌습니다.

안부, 블라디미르.

사유: