Diskussion zum Artikel "Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil I). Konzept, Datenverwaltung und erste Ergebnisse" - Seite 6

 
pennyhunter:

Thanks a lot!

I am fairly new to programming and I was afraid of your articles because they look so cryptic and have no pictures in them AHAHAHA.

But no actually they are very well written and well translated and they are helping me jump into object oriented programming.

:)

OK. Your welcome

 

Offensichtlich gibt es einen Fehler in der folgenden Passage:

+------------------------------------------------------------------+
| Returns StopLoss position closing flag |
+------------------------------------------------------------------+
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.BestellGrund()==DEAL_REASON_SL : false
);
#endif
}
//+------------------------------------------------------------------+
//| Gibt das Flag zum Schließen der Position durch TakeProfit zurück |
//+------------------------------------------------------------------+
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
}

Die zurückgegebene Nachricht lautet: 'Status' - nicht deklarierter Bezeichner Order.mqh

Leider kann ich das Problem nicht lösen.

Ich danke Ihnen.

 
albertpess:

Offenbar ist in der folgenden Passage ein Fehler enthalten:

+------------------------------------------------------------------+
| Returns StopLoss position closing flag |
+------------------------------------------------------------------+
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.BestellGrund()==DEAL_REASON_SL : false
);
#endif
}
//+------------------------------------------------------------------+
//| Gibt das Flag zum Schließen der Position durch TakeProfit zurück |
//+------------------------------------------------------------------+
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
}

Die zurückgegebene Nachricht lautet: 'Status' - nicht deklarierter Bezeichner Order.mqh

Leider kann ich das Problem nicht lösen.

Ich danke Ihnen.

MetaTrader 4 ? oder MetaTrader 5 ?

 

Das gleiche geschieht in:

m_long_prop[ORDER_PROP_PROFIT_DE] = this.GewinnInPunkte();

e

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

Beide Schnipsel innerhalb des geschlossenen parametrischen Konstruktors

Dankeschön

 
Artyom Trishkin:

MetaTrader 4 oder MetaTrader 5?

MT5
 
albertpess :
MT5

Ich würde gerne wissen, was Sie tun.

Bitte fügen Sie den Code über diese Schaltfläche in der Symbolleiste des Nachrichteneingabefensters ein

 

Ich studiere Ihre Artikel. Mein Ziel ist es, zu lernen, wie man mit Klassen arbeitet.

 
Artyom Trishkin:

Ich würde gerne wissen, was Sie tun.

Bitte fügen Sie den Code über diese Schaltfläche in der Symbolleiste des Nachrichteneingabefensters ein

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 
  }
//+------------------------------------------------------------------+
//| Liefert das Flag zum Schließen der Position durch 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 :

Ich studiere Ihre Artikel. Mein Ziel ist es, zu lernen, wie man mit Klassen arbeitet.

Funktioniert das dem Artikel beigefügte Testprogramm?
Welche Fehler treten auf?
Bitte beschreiben Sie das genauer.