Fehler, Irrtümer, Fragen - Seite 1695

 
Rashid Umarov:
Was bedeutet ORDER_TYPE_BUY? Drucken Sie es einfach aus und vergewissern Sie sich, dass es 0 ist. Es gibt also keine Reihenfolge.

D.h. nach dem Öffnen einer Position in der MqlTradeTransaction Struktur ist order_type einfach nicht verfügbar? Oder ist es einfach nur 0?

Rashid, wenn es Ihnen nichts ausmacht, könnten Sie mir eine einfachere Antwort geben? Gut, ich drucke es aus und es wird 0 sein, aber wie soll ich es verstehen?


Jetzt geht's los... Während ich tippte, gab mir Vladimir eine umfassende Antwort. Danke, ich habe es verstanden. Wie immer, habe ich die Dokumentation nicht gelesen...

 
Karputov Vladimir:

Für verschiedene Arten von Transaktionen werden unterschiedliche Felder der MqlTradeTransaction-Struktur ausgefüllt:

wie Sie sehen können, ist für TRADE_TRANSACTION_DEAL_ADD die .order_type ist nicht ausgefüllt.

Übrigens ist das manchmal irreführend. warum kann ein nicht ausgefüllter Wert nicht z.B. als WRONG_VALUE angegeben werden?
 
Alexey Viktorov:


Rashid, wenn es nicht zu viel Mühe macht, können Sie mir eine einfachere Antwort geben? Ich drucke es also aus, es wird 0 sein, aber wie soll ich es verstehen?

In diesem Fall brauchen Sie sich die Auftragsart nicht anzusehen - sie ist einfach nicht vorhanden.
 
Alexey Kozitsyn:
Übrigens ist das manchmal irreführend... Warum kann er nicht als WRONG_VALUE angegeben werden, z. B. wenn der Wert nicht ausgefüllt ist?
Ich bin selbst auf diese Harke getreten. Kann ich nicht sagen)
 
Rashid Umarov:
Ich bin selbst auf diese Harke getreten. Ich kann es nicht sagen.)
Es ist nur so, dass WRONG_VALUE implizit auf den Typ jeder Aufzählung gecastet wird, richtig? Sie würden es also tun))
 
Rashid Umarov:
In diesem Fall ist es nicht nötig, sich die Auftragsart anzusehen - sie ist einfach nicht vorhanden.

Wie langsam ich beim Tippen bin... Während ich meinen Beitrag bearbeitete...

Alexey Viktorov:

Hinzugefügt.

Na ja... Während ich tippte, gab mir Vladimir eine umfassende Antwort. Herzlichen Dank. Wie immer habe ich die Dokumentation nicht gelesen...

Ich danke Ihnen.

 

Wie erkenne ich meinen Handle auf einem Chart in einem Indikator?ChartIndicatorName ist nicht geeignet, da es einen kurzen Namen zurückgibt. Und mit demselben Namen kann bereits derselbe Indikator mit anderen Eingabeparametern ausgeführt werden.

Ich muss in der Lage sein, den Indikator aus dem Diagramm und seinen Berechnungen zu entfernen.

 
fxsaber:

Wie erkenne ich meinen Handle auf einem Chart in einem Indikator?ChartIndicatorName ist nicht geeignet, da es einen kurzen Namen zurückgibt. Und mit demselben Namen kann bereits derselbe Indikator mit anderen Eingabeparametern ausgeführt werden.

Ich muss in der Lage sein, den Indikator aus dem Diagramm und seinen Berechnungen zu entfernen.

Was passiert, wenn ich den Kurznamen bei der Erstellung ändere?
 

Sollte mein Beispiel nicht erben / eine Methode von einer übergeordneten Klasse nehmen? Wie erhält man eine Methode der übergeordneten Klasse in abgeleiteten Klassen, um sie später zu verwenden.

Also die übergeordnete Klasse hat Methoden "eins, zwei, drei" Ich möchte nur Methode "zwei und drei" in Nachkommen zu verwenden und nicht zu sehen, Methode "eins" und auch, dass "zwei und drei" wird später verfügbar sein

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class test
  {
public:

   int rezult(void)
     {
      static int t=0;
      t++;
      return t;
     }
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class test_end : public test
  {
public:
   virtual int       rezult(void);
  };

test_end go;
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   go.rezult();
// 'rezult' - function must have a body TEst.mq4        42      7
  }
//+------------------------------------------------------------------+
 
Vladimir Pastushak:

Sollte mein Beispiel nicht erben / eine Methode von einer übergeordneten Klasse nehmen? Wie erhält man eine Methode der übergeordneten Klasse in abgeleiteten Klassen, um sie später zu verwenden.

Also die übergeordnete Klasse hat Methoden "eins, zwei, drei" Ich möchte nur Methode "zwei und drei" in Nachkommen zu verwenden und nicht zu sehen, Methode "eins" und auch, dass "zwei und drei" wird weiter verfügbar sein

Erstens ist nicht klar, ob versucht wurde, eine Methode als virtuell zu deklarieren oder nicht. Wenn sie virtuell sein muss, dann schreiben Sie virtuell in eine Basisklasse, nicht in eine abgeleitete (weil sonst Basiszeiger an die Basismethode weiterverkauft werden, selbst wenn Sie eine Instanz einer abgeleiteten Klasse in sie setzen).

Wenn Sie eine Methode in einer abgeleiteten Klasse nicht überschreiben wollen, erwähnen Sie sie überhaupt nicht, und wenn doch, sollte sie mit einem Körper überschrieben werden.

Um die Methode schließlich vor der abgeleiteten Klasse zu verbergen, müssen Sie eine Zwischenklasse einführen, in der diese Methode in den privaten Bereich verschoben oder in der Basisklasse privat gemacht werden sollte (aber warum ist sie dann virtuell?).