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 7

 
Ich möchte diese Gelegenheit nutzen, um Ihnen für Ihre hervorragende Arbeit zu danken. Ich fange endlich an, die Klassenbildung zu verstehen.
 

Nun, ich studiere den Code gemäß Ihrem Vorschlag, die Schritte zu befolgen.

Im Moment schließe ich das Studium von Artikel 1 ab und habe direkt nach der Implementierung des Konstruktors der geschützten Klasse aufgehört.

Das Stück Code, das ich Ihnen geschickt habe, hat nach der Kompilierung einen Fehler. Er befindet sich in dem Abschnitt, der das Flag zum Schließen der Position durch TakeProfit zurückgibt.

Offenbar ist der Bezeichner "Status" nicht deklariert.

 

Нашел "проблему" .... Была между клавиатурой и компьютером ... МЕНЯ!

После вставки всех методов переменная была определена ...

Так как я еще не дошел до конца кода, то искал ошибку ... Но в последовательности переменная определена и все решено.

Извините за неудобства.

Спасибо

 
albertpess :

Nun, ich studiere den Code entsprechend Ihrem Vorschlag, um die Schritte zu befolgen.

Im Moment schließe ich das Studium von Artikel 1 ab und habe direkt nach der Implementierung des Konstruktors der geschützten Klasse aufgehört.

Das Stück Code, das ich Ihnen geschickt habe, hat nach der Kompilierung einen Fehler. Er befindet sich in dem Abschnitt, der das Flag zum Schließen der Position durch TakeProfit zurückgibt.

Offenbar ist der Bezeichner "Status" nicht deklariert.

Irgendwo haben sie also etwas falsch gemacht. Etwas übersehen.

Laden Sie einfach die an den Artikel angehängten Dateien in Ihren Terminal-Ordner und kompilieren Sie den EA.

Und erst dann zerlegen Sie alles Schritt für Schritt wie im Artikel beschrieben.

 
Artyom Trishkin:

Irgendwo haben sie also etwas falsch gemacht. Etwas übersehen.

Laden Sie einfach die an den Artikel angehängten Dateien in Ihren Terminal-Ordner herunter und kompilieren Sie den EA.

Und erst dann zerlegen Sie alles Schritt für Schritt wie im Artikel beschrieben.

Ich danke Ihnen.

 
Sehr nützlich und gut gemacht! Danke
 
Es ist ziemlich gut.
 

Implementierung des Konstruktors der geschützten Klasse:

//+------------------------------------------------------------------+
//| Geschlossener parametrischer Konstruktor|
//+------------------------------------------------------------------+
COrder::COrder(ENUM_ORDER_STATUS order_status,const ulong ticket)
  {
//--- Ganzzahlige Eigenschaften speichern
   m_ticket=ticket;
   m_long_prop[ORDER_PROP_STATUS]                              = order_status;
   m_long_prop[ORDER_PROP_MAGIC]                               = this.OrderMagicNumber();
   m_long_prop[ORDER_PROP_TICKET]                              = this.OrderTicket();

Hallo Artyom,

können wir verwenden:

m_long_prop[ORDER_PROP_TICKET] = (long)ticket; // ticket ist der übergebene Parameter.

 
Ming Ge # :
this. BestellTicket ();

Wenn

 this . OrderTicket ();

den oben eingestellten Wert von m_ticket zurückgibt, dann ist es möglich.

Aber ich habe das vor so langer Zeit geschrieben, dass ich mich nicht mehr auf Anhieb erinnern kann.

Ich habe nachgeschaut. Diese Methode schreibt das Ticket in die Eigenschaft order:

 //+------------------------------------------------------------------+
 //| Возвращает тикет|
 //+------------------------------------------------------------------+
 long COrder::OrderTicket( void ) const 
  {
 #ifdef __MQL4__
   return ::OrderTicket();
 #else
   long res= 0 ;
   switch ((ENUM_ORDER_STATUS) this .GetProperty(ORDER_PROP_STATUS))
     {
       case ORDER_STATUS_MARKET_POSITION   :
       case ORDER_STATUS_MARKET_ORDER      :
       case ORDER_STATUS_MARKET_PENDING    :
       case ORDER_STATUS_HISTORY_PENDING   :
       case ORDER_STATUS_HISTORY_ORDER     :
       case ORDER_STATUS_DEAL              : res=( long )m_ticket;  break ;
       default                             : res= 0 ;               break ;
     }
   return res;
 #endif
   }

Entscheiden Sie selbst, ob Sie es durch eine einfache Zuweisung ersetzen müssen oder nicht.