Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 674
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
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):
und im Testgerät erhalte ich das Ergebnis:
Vladimir Karputov:
Als Nächstes setze ich einen Haltepunkt (Schritt 1) und führe einen Verlaufstest durch (Schritt 2):
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?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.
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 debuggen und in aller Ruhe, Schritt für Schritt, debuggen und beobachten, wie sich Variablen ändern? Was mache ich falsch?
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?
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):
Und im Testgerät erhalte ich das Ergebnis:
Die oben genannten Punkte wurden bereits erläutert. Es hat funktioniert und es funktioniert. Und ich habe Ihnen ein Beispiel gegeben.
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?
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:
Im Strategietester erhalten wir die folgenden Ergebnisse: