Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 674

 
Leo59:

Ich schaffe es nicht, etwas in das Protokoll des Testers zu drucken(). Wie machen Sie das?

Hier ist der Code von OnInit() aus dem Expert Advisor:

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   SymbolSelect("EURJPY",true);
   Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
   SymbolSelect("USDJPY",true);
//---
   return(INIT_SUCCEEDED);
  }


Dann setze ich einen Haltepunkt (Schritt 1) und führe den Test mit dem Verlauf aus (Schritt 2):

OnInit()

und im Testgerät erhalte ich das Ergebnis:

2016.11.23 13:02:24.191 2016.06.13 00:00:00   OnInit, 2016.06.13 00:00
 

Vladimir Karputov:

Als Nächstes setze ich einen Haltepunkt (Schritt 1) und führe einen Verlaufstest durch (Schritt 2):

Seltsamerweise ist diese blaue Schaltfläche, auf die Sie mit der Zahl "2" hinweisen, bei mir nicht aktiv. Könnte es daran liegen, dass ich mit MT4 arbeite?
 
Aber dennoch, wenn so etwas geschrieben wird:


Einige Funktionen des Client-Terminal-Strategie-Testers sind nur eingeschränkt nutzbar.

Funktionen Print() und PrintFormat()

Um die Leistung bei der Optimierung der EA-Parameter zu erhöhen, werden die FunktionenPrint() undPrintFormat() nicht ausgeführt. Die Ausnahme ist die Verwendung dieser Funktionen innerhalb desOnInit()-Handlers. Dies erleichtert uns die Suche nach Fehlerursachen, wenn Fehler auftreten.


warum diePrint()-Funktionen innerhalb desOnInit()-Handlers nicht wie gewohnt funktionieren?

Und im Allgemeinen, über andere benutzerdefinierte Funktionen in init() im Optimierungsmodus?
 
Leo59:
Seltsamerweise ist meine blaue Schaltfläche, auf die Sie mit "2" zeigen, nicht aktiv. Könnte es daran liegen, dass ich mit MT4 arbeite?

Ja, das ist der Grund, warum ich jeden EA frei auf HISTORY testen kann, d.h. einen Zeitrahmen wählen, z.B. von 2016.06.20 bis 2016.11.11 und ruhig, Schritt für Schritt, debuggen und Änderungen in Variablen beobachten, während Sie das nicht tun können.

Lohnt es sich also, auf einem alten Endgerät sitzen zu bleiben, dessen Support abgelaufen ist? Oder vielleicht sollten Sie den modernen MetaTrader 5 verwenden? Tatsächlich verfügt MetaTrader 5 bereits über Hedging:Die Handelsplattform MetaTrader 5 verfügt über Hedging.

 
Vladimir Karputov:

Ja, das ist der Grund, warum ich jeden EA frei auf HISTORY testen kann, d.h. einen Zeitrahmen wählen, z.B. von 2016.06.20 bis 2016.11.11 und ruhig, Schritt für Schritt, debuggen und Änderungen in Variablen beobachten, während Sie das nicht tun können.

Lohnt es sich also, auf einem alten Endgerät sitzen zu bleiben, dessen Support abgelaufen ist? Oder vielleicht sollten Sie den modernen MetaTrader 5 verwenden? Schließlich verfügt MetaTrader 5 bereits über Hedging:Die Handelsplattform MetaTrader 5 verfügt über Hedging.

Warum kann ich in MT4 ein Debugging durchführen und die Veränderungen der Variablen Schritt für Schritt beobachten? Was mache ich falsch?
 
Artyom Trishkin:
Warum kann ich in MT4 debuggen und in aller Ruhe, Schritt für Schritt, debuggen und beobachten, wie sich Variablen ändern? Was mache ich falsch?
WAS machen Sie falsch: sehr schnelles Lesen oder absichtliches Überspringen von Text.
 
Liebe!!!!

Inhaltliche Frage:

Warum funktioniert diePrint()-Funktion innerhalb desOnInit()-Handlers nicht wie gewohnt? Und wie sieht es generell mit anderen benutzerdefinierten Funktionen in init() im Optimierungsmodus aus?

 
Leo59:
Liebe!!!!

Inhaltliche Frage:

Warum funktioniert diePrint()-Funktion innerhalb desOnInit()-Handlers nicht wie gewohnt? Und was ist generell mit anderen benutzerdefinierten Funktionen in init() im Optimierungsmodus?

Alles ist oben erklärt. Es hat funktioniert und funktioniert. Ich habe Ihnen ein Beispiel gezeigt.

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Fragen von Anfängern

Wladimir Karputow, 2016.11.23 12:07

Hier ist der Code von OnInit() von EA:

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   SymbolSelect("EURJPY",true);
   Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
   SymbolSelect("USDJPY",true);
//---
   return(INIT_SUCCEEDED);
  }


Außerdem setze ich einen Haltepunkt (Schritt 1) und beginne mit der Prüfung der Historie (Schritt 2):

OnInit()

Und im Testgerät erhalte ich das Ergebnis:

2016.11.23 13:02:24.191 2016.06.13 00:00:00   OnInit, 2016.06.13 00:00

 
Vladimir Karputov:

Die oben genannten Punkte wurden bereits erläutert. Es hat funktioniert und es funktioniert. Und ich habe Ihnen ein Beispiel gegeben.


Vladimir, in Ihrem Beispiel mit Haltepunkt und Ausführen von Test von MetaEditor, und nicht von Tester im Terminal ist nicht Standard.

Ich möchte mich wiederholen:

1. Warum funktioniert die Print()-Funktion imOnInit()-Handler nicht wie gewohnt?

2. Wie funktionieren die anderen Benutzerfunktionen in init() im Optimierungsmodus?

 
Leo59:
Vladimir, in Ihrem Beispiel mit dem Haltepunkt und der Beginn der Prüfung von MetaEditor, und nicht von der Tester im Terminal ist nicht Standard.

Nochmals:

1. Warum funktioniert diePrint()-Funktion innerhalb desOnInit()-Handlers nicht wie gewohnt?

2. Wie funktionieren die anderen Benutzerfunktionen in init() im Optimierungsmodus?

Ich habe das Gefühl, dass Sie das Terminal noch nie eingeschaltet haben.

Hier ist der Code der OnInit() des Expert Advisors:

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   SymbolSelect("EURJPY",true);
   Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
   SymbolSelect("USDJPY",true);
//---
   return(INIT_SUCCEEDED);
  }

Schritt für Schritt. Schritt Eins - Starten des Testers vom Terminal aus (ein einziger Durchlauf), Testen der Historie mit Visualisierung:

Schritt 1

Im Strategietester erhalten wir die folgenden Ergebnisse:

Schritt 2

Grund der Beschwerde: