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 habe irgendwo in einem Forum gelesen, dass Kommentare während der Tests nicht in das Protokoll geschrieben werden (um Speicherplatz zu sparen). Meine Frage lautet also: Wie kann ich das Programm im Prüfprogramm debuggen? Ich habe printf und PrintFormat ausprobiert - nichts funktioniert im Tester, ich habe sogar Alert ausprobiert.
Geprüft. Mein Makler ist ein lokaler Makler (zumindest ist er unter "Lokal" aufgeführt). Nachdem der Expert Advisor im Modus"Every tick" ausgeführt wurde, stimmt der Inhalt der Registerkarte "Log" mit dem Inhalt der Agentenprotokolldatei überein (Expert Advisor und Protokolldateien im Anhang).
Ja, ich vergaß. Der Testzeitraum ist "Letzter Monat".
In Ihrem Protokoll steht "Debug-Version von 'test.ex5', bitte neu kompilieren".
Das bedeutet, dass EX5, das zum Debuggen gedacht ist (das Drücken von F5 im Editor erzeugt EX5 mit Debugging-Informationen), nicht im Tester ausgeführt werden kann.
Wir werden eine automatische Neukompilierung solcher EAs vornehmen. In der Zwischenzeit sollten Sie Ihren EA manuell neu kompilieren.
Und Sie können den vollständigen Code mitbringen?
Und wahrscheinlich habe ich die ganze Sache heraufbeschworen, ich kann mir keinen anderen Grund vorstellen...
Ich werde versuchen, die Situation ausführlicher zu beschreiben.
Es gibt eine einfache Klasse "CMqlTimer", deren Aufgabe es ist, den Zeitpunkt des Wechsels von verschiedenen Zeitintervallen zu verfolgen: Stunde, Tag, Woche, Monat, Jahr.
Alles wird mit sehr einfachen Primitiven realisiert, zum Beispiel, wenn die Minuten gleich 0 sind, dann ist die "neue Stunde" gekommen; wenn die Nummer des Wochentages nicht mit der in der Variable gespeicherten übereinstimmt, dann ist der Tageswechsel ("00:00:00" nach Serverzeit) gekommen. Also weiter.
Die Analyse wird durchgeführt, wenn der Timer in CMqlTimer::OnTimer() im Abstand von 1 Sekunde ausgelöst wird. Wenn sich das Zeitintervall ändert, muss die Funktion ausgeführt werden. Wenn es zum Beispiel ein "neuer" Tag ist, sollte die Funktion CMqlTimer::OnRolloverDay() ausgeführt werden.
Wenn wir den Rest des Codes entfernen und nur OnRolloverDay() schreiben, sieht das Ergebnis wie folgt aus:
Alle Benutzerereignisse werden aufgezeichnet und zur Bearbeitung an die Hauptklasse weitergegeben
Es sieht in etwa so aus
Daher erreichen die Ereignisse OnChartEvent im Testmodus nicht, d.h. der Expert Advisor kann ein mit EventChartCustom gesendetes Ereignis im Testmodus nicht verarbeiten. Überprüfen Sie dies, indem Sie alle Ereignisse im Protokoll anzeigen lassen.
PS
Das Interessanteste ist, dass die Demo alle Ereignisse zu erreichen, aber in der Tester ist die Arbeit verweigert.
Vor 319 funktionierte alles und im Tester wurden die Ereignisse erfolgreich verarbeitet. Ob es bei der letzten Version funktioniert hat, kann ich nicht sagen...
In Ihrem Protokoll steht "Debug-Version von 'test.ex5', bitte neu kompilieren".
Das bedeutet, dass EX5, das zum Debuggen gedacht ist (das Drücken von F5 im Editor erzeugt EX5 mit Debugging-Informationen), nicht im Tester ausgeführt werden kann.
Wir werden eine automatische Neukompilierung solcher EAs vornehmen. In der Zwischenzeit sollten Sie Ihren EA manuell neu kompilieren.
Und wahrscheinlich habe ich die ganze Sache heraufbeschworen, ich kann mir keinen anderen Grund vorstellen...
Ich werde versuchen, die Situation ausführlicher zu beschreiben.
...Ich verstehe nicht, was falsch ist, EA funktioniert im Tester ohne Fehler und in der Testmaschine des Veranstalters geht auch ohne Fehler.
Wenn ich es auf einem Demokonto ausführe, erhalte ich eine Fehlermeldung, wenn ich versuche, einen Auftrag zu eröffnen:
2010.09.06 13:26:50 Trades '101894' : fehlgeschlagener Sofortkauf 0.10 USDJPY bei 84.179 [Nicht unterstützter Füllmodus]
2010.09.06 13:26:45 Trades '101894' : fehlgeschlagener Sofortkauf 0.10 USDCAD bei 1.03689 [Nicht unterstützter Füllmodus]
2010.09.06 13:26:39 Trades '101894' : fehlgeschlagener Sofortkauf 0.10 USDJPY bei 84.174 [Nicht unterstützter Füllmodus]
2010.09.06 13:26:34 Trades '101894' : fehlgeschlagener Sofortkauf 0.10 USDCAD bei 1.03685 [Nicht unterstützter Füllmodus]
2010.09.06 13:26:28 Trades '101894' : fehlgeschlagener Sofortkauf 0.10 USDJPY bei 84.174 [Nicht unterstützter Füllmodus]
2010.09.06 13:26:23 Trades '101894' : fehlgeschlagener Sofortkauf 0.10 USDCAD bei 1.03688 [Nicht unterstützter Füllmodus]
2010.09.06 13:26:18 Trades '101894' : fehlgeschlagener Sofortkauf 0.10 USDJPY bei 84.181 [Nicht unterstützter Füllmodus]
SELL-Anfrage:
Antrag auf BUY:
OrderCheck findet keinen Fehler.
Ersetzte ORDER_FILLING_CANCEL-Abfrage durch ORDER_FILLING_AON-Abfrage, Experte arbeitet.
Aber das Problem bleibt, warum gibt es einen solchen Unterschied im Tester- und Serverbetrieb.
Was für ein Witz, wenn der Meisterschaftsserver in die andere Richtung geht.