Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 194

 

Hallo, Hilfe von den Experten!

Aus der Dokumentation

Globale Variablen

"Die Initialisierung der globalen Variablen wird einmal durchgeführt, nachdem das Programm in den Speicher des Client-Terminals geladen wurde und bevor das erste Init-Ereignis verarbeitet wird. Für globale Variablen, die Objekte von Klassen sind, werden bei der Initialisierung die entsprechenden Konstruktoren aufgerufen."

Aber wenn ich die Periode des Diagramms ändere, wird der Konstruktor der globalen Objektklasse im Indikator aufgerufen.

Wie kann man erreichen, dass der Konstruktor einmal nach dem Start des Indikators aufgerufen wird?

 
Gudgeon:

Aber wenn ich die Diagrammperiode ändere, wird der Konstruktor der Objektklasse im Indikator aufgerufen.

Wie kann man erreichen, dass der Konstruktor einmal nach dem Start des Indikators aufgerufen wird?

Änderung der TF für den Indikator - Start einer neuen Kopie des Programms.

 
fxsaber:

Ändern der TF für den Indikator - Ausführen einer neuen Kopie des Programms.

Ich danke Ihnen!

Unerwarteterweise verstehe ich das in der Dokumentation nicht.

Bei Expert Advisors ist alles in Ordnung.

 
Wie lange es dauert, Ihr Programm zu kompilieren, können Sie wie folgt herausfinden.
LastModifyEX5() - __DATETIME__
 
fxsaber:
Wie lange es dauert, Ihr Programm zu kompilieren, können Sie wie folgt herausfinden.
Was bedeutet LastModifyEX5()? Ich kann sie auf der Website nicht finden.
 
Alexey Viktorov:
Und dieses LastModifyEX5() was? Ich kann sie auf der Website nicht finden.

Sie müssen dies selbst über die WinAPI schreiben. Die Umsetzung ist dabei zweitrangig.

 

Meine Freunde, liebe Hobbyisten!

Wie kann ich programmatisch die Sichtbarkeit für einen bestimmten Indikator auf einem bestimmten TF einstellen?

In Anbetracht der Tatsache, dass es weitere 5 Indikatoren für andere TFs geben kann.

Ich habe in der Beschreibung gesucht, und ganz einfach, die Suche in der Hilfe, aber die Suche der Beschreibung gibt kein Ergebnis auf den Mechanismus, um es zu lösen.


Ich weiß, wie man die Sichtbarkeit von Objekten einstellt.

 
Der Begrenzer kann seineORDER_TIME_SETUP_MSC ändern - im Falle einer Teilausführung wird diese Eigenschaft gleich der Zeit der ersten (möglicherweise vorletzten) Teilausführung.
 
Im Tester wird diese Bedingung immer ausgelöst.
int OnInit()
{
  MqlTick Tick;
  
  return(SymbolInfoTick(_Symbol, Tick) && (TimeCurrent() != Tick.time));
}
Es ist schwer zu sagen, ob dies ein Fehler im Tester oder eine Funktion ist.
 

Es wurdeeinmal eine Methode zur Bestimmung des GMT-Offsets der Serverzeitvorgeschlagen. Es funktioniert nicht immer genau.

Die nachstehende Fassung scheint eine genaue Version zu sein.

// Аналог по серверному времени - https://www.mql5.com/ru/docs/dateandtime/timegmtoffset
int TimeServerGMTOffset( void )
{
  MqlCalendarValue Value[1];
  
  CalendarValueHistoryByEvent(840030016, Value, D'2020.12.03', D'2020.12.06');
  
  return((13 - ((Value[0].time / 3600) % 24)) * 3600);
}

// Аналог по серверному времени - https://www.mql5.com/ru/docs/dateandtime/timegmt
datetime TimeServerGMT( void )
{
  return(TimeTradeServer() + TimeServerGMTOffset());
}


Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Merkmale der Sprache mql4, Feinheiten und Tricks

fxsaber, 2018.03.29 14:32

Anwendungen

#define  PRINT(A) Print(#A + " = " + (string)(A))

void OnStart()
{  
  PRINT(TimeGMT());
  PRINT(TimeServerGMT());  
}
Grund der Beschwerde: