Fehler, Irrtümer, Fragen - Seite 1683

 
Haltepunkte beim Debuggen innerhalb von OnBookEvent funktionieren nicht -BookEvent-Ereignis tritt nicht auf (Abonnement existiert).
 

Im Code des Indikators wird Folgendes geschrieben:

D.h. Period() gibt int zurück (in diesem Fall 0), während sie ENUM_TIMEFRAMES zurückgeben muss! Gleichzeitig funktioniert _Period normal und enthält den aktuellen Zeitrahmen (in diesem Fall PERIOD_H1). Dies ist auf jeden Fall ein Fehler, da die Hilfe für die Funktion Periode() dies deutlich anzeigt:

Возвращаемое значение

Der Inhalt der Variablen _Period , die den Wert des aktuellen Zeitrahmens des Diagramms speichert. Der Wert kann einer der Werte derAufzählung ENUM_TIMEFRAMESsein .

 

Welcher Vorteil wird in den separaten Fenstern gesehen, die durch den MT5-Build entstehen werden?

 
Vasiliy Sokolov:

Im Code des Indikators steht folgendes:

D.h. Period() gibt int zurück (in diesem Fall 0), während sie ENUM_TIMEFRAMES zurückgeben muss! Gleichzeitig funktioniert _Period normal und enthält den aktuellen Zeitrahmen (in diesem Fall PERIOD_H1). Dies ist auf jeden Fall ein Fehler, denn die Hilfe zur Funktion Period() weist eindeutig darauf hin:

vielleicht ohne die mql5-Datei kompiliert es wie für MT4?
 
Vasiliy Sokolov:

Im Code des Indikators wird Folgendes geschrieben:

D.h. Period() gibt int zurück (in diesem Fall 0), während sie ENUM_TIMEFRAMES zurückgeben muss! Gleichzeitig funktioniert _Period normal und enthält den aktuellen Zeitrahmen (in diesem Fall PERIOD_H1). Dies ist auf jeden Fall ein Fehler, denn die Hilfe zur Funktion Period() weist eindeutig darauf hin:

Sie haben tf als einen Enum-Typ. Aber Sie schreiben es hinein. Achten Sie darauf, auch hier einen Enum-Wert einzutragen.
 
Artyom Trishkin:
Zeitraum() hat den Rückgabetyp ENUM_TIMEFRAMES
 
Комбинатор:
Zeitraum() hat den Rückgabetyp ENUM_TIMEFRAMES

In five gibt Period() ein Enum und _Period ein Int zurück.

In Quartet sind sowohl die vordefinierte _Period als auch Period() vom Typ int.

Da eine Person die implizite Enum-Konvertierungswarnung erhält, schließen wir, dass es sich um eine Vier handelt.

 

Wie kann ich die Zeit des akzeptierten Glases in OnBookEvent herausfinden?

Mit SymbolInfoTick+time_msc ist dies nicht möglich, da OnBookEvent viel häufiger aufgerufen wird als OnTick.

Sie könnten natürlich den Wert time_msc undGetMicrosecondCount in OnTick speichern. In OnBookEvent wird dann die verstrichene Zeit zu time_msc hinzugefügt. Aber irgendwie wird es chaotisch, weil OnBookEvent mit OnTick in Konflikt gerät - während das eine läuft, könnte das andere warten.

 

Bitte fügen Sie in der Spalte Quelle des Expertenprotokolls nicht nur den Namen des Programms (das den Eintrag erstellt hat) und das Symbol, auf dem es läuft, hinzu. Aber auch die Art des Programms - Indikator/Berater/Skript. Und das Handle des Diagramms, auf dem es läuft (kann eine Popup-Meldung sein).

Aus dem gleichen Grund (Griffe), fügen Sie bitte ein Popup der Griffnummer hinzu, wenn Sie den Mauszeiger über die Lesezeichen in der Tabelle bewegen.

Bitte fügen Sie eine Protokollierung für Ereignisse wie das Öffnen eines neuen Diagramms (zusammen mit einem Handle) und das Löschen eines Diagramms hinzu.

 
Ein prägnantes Beispiel dafür, warum Const nützlich sein kann und wie man manchmal einfach nicht ohne ihn auskommt
void Func( const string &Str ) { } // const - обязателен!

void OnStart() { Func(_Symbol); }