Обсуждение статьи "Библиотека для простого и быстрого создания программ для MetaTrader (Часть I). Концепция, организация данных, первые результаты" - страница 6

 
pennyhunter:

Спасибо большое!

Я совсем новичок в программировании и боялся ваших статей, потому что они выглядят так загадочно и в них нет картинок АХАХАХА.

Но нет, на самом деле они очень хорошо написаны и хорошо переведены, и они помогают мне вникнуть в объектно-ориентированное программирование.

:)

ХОРОШО. Добро пожаловать

 

По-видимому, в следующем отрывке допущена ошибка:

+------------------------------------------------------------------+
| Возвращает флаг закрытия позиции StopLoss |
+------------------------------------------------------------------+
bool COrder::OrderCloseByStopLoss(void) const
{
#ifdef __MQL4__
return(::StringFind(::OrderComment(),"[sl")>WRONG_VALUE);
#else
return
(
this.Status()==ORDER_STATUS_HISTORY_ORDER ? this.OrderReason()==ORDER_REASON_SL :
this.Status()==ORDER_STATUS_DEAL ? this.OrderReason()==DEAL_REASON_SL : false
);
#endif
}
//+------------------------------------------------------------------+
//| Возвращает флаг закрытия позиции по TakeProfit |
//+------------------------------------------------------------------+
bool COrder::OrderCloseByTakeProfit(void) const
{
#ifdef __MQL4__
return(::StringFind(::OrderComment(),"[tp")>WRONG_VALUE);
#else
return
(
this.Status()==ORDER_STATUS_HISTORY_ORDER ? this.OrderReason()==ORDER_REASON_TP :
this.Status()==ORDER_STATUS_DEAL ? this.OrderReason()==DEAL_REASON_TP : false
);
#endif
}

Возвращается сообщение: 'Status' - необъявленный идентификатор Order.mqh

К сожалению, я не могу решить эту проблему.

Спасибо.

 
albertpess:

По всей видимости, в следующем отрывке допущена ошибка:

+------------------------------------------------------------------+
| Возвращает флаг закрытия позиции StopLoss |
+------------------------------------------------------------------+
bool COrder::OrderCloseByStopLoss(void) const
{
#ifdef __MQL4__
return(::StringFind(::OrderComment(),"[sl")>WRONG_VALUE);
#else
return
(
this.Status()==ORDER_STATUS_HISTORY_ORDER ? this.OrderReason()==ORDER_REASON_SL :
this.Status()==ORDER_STATUS_DEAL ? this.OrderReason()==DEAL_REASON_SL : false
);
#endif
}
//+------------------------------------------------------------------+
//| Возвращает флаг закрытия позиции по TakeProfit |
//+------------------------------------------------------------------+
bool COrder::OrderCloseByTakeProfit(void) const
{
#ifdef __MQL4__
return(::StringFind(::OrderComment(),"[tp")>WRONG_VALUE);
#else
return
(
this.Status()==ORDER_STATUS_HISTORY_ORDER ? this.OrderReason()==ORDER_REASON_TP :
this.Status()==ORDER_STATUS_DEAL ? this.OrderReason()==DEAL_REASON_TP : false
);
#endif
}

Возвращается сообщение: 'Status' - необъявленный идентификатор Order.mqh

К сожалению, я не могу решить эту проблему.

Спасибо.

MetaTrader 4 или MetaTrader 5?

 

То же самое происходит в:

m_long_prop[ORDER_PROP_PROFIT_EN] = this.ProfitInPoints();

e

m_double_prop[this.IndexProp(ORDER_PROP_PROFIT_FULL)] = this.ProfitFull();

Оба сниппета внутри параметрического конструктора Closed.

Спасибо

 
Artyom Trishkin:

MetaTrader 4 или MetaTrader 5?

MT5
 
albertpess :
MT5

Я хотел бы знать, что вы делаете.

Пожалуйста, вставьте код с помощью этой кнопки на панели инструментов окна ввода сообщения.

 

Я изучаю ваши статьи. Моя цель - научиться работать с классами.

 
Artyom Trishkin:

Я хотел бы знать, что вы делаете.

Пожалуйста, вставьте код с помощью этой кнопки на панели инструментов окна ввода сообщения

bool COrder::OrderCloseByStopLoss(void) const
  {
#ifdef __MQL4__
   return(::StringFind(::OrderComment(),"[sl")>WRONG_VALUE);
#else 
   return
     (
     this.Status()==ORDER_STATUS_HISTORY_ORDER ? this.OrderReason()==ORDER_REASON_SL : 
     this.Status()==ORDER_STATUS_DEAL ? this.OrderReason()==DEAL_REASON_SL : false
     );
#endif 
  }
//+------------------------------------------------------------------+
//| Возвращает флаг для закрытия позиции по TakeProfit |
//+------------------------------------------------------------------+
bool COrder::OrderCloseByTakeProfit(void) const
  {
#ifdef __MQL4__
   return(::StringFind(::OrderComment(),"[tp")>WRONG_VALUE);
#else 
   return
     (
      this.Status()==ORDER_STATUS_HISTORY_ORDER ? this.OrderReason()==ORDER_REASON_TP : 
      this.Status()==ORDER_STATUS_DEAL ? this.OrderReason()==DEAL_REASON_TP : false
     );
#endif 
  }
 

Спасибо.

Я не знал об этой функции.

 
albertpess :

Я изучаю ваши статьи. Моя цель - научиться работать с классами.

Работает ли тестовая программа, прилагаемая к статье?
Какие ошибки возникают?
Пожалуйста, опишите подробнее.