MetaTrader 5 Strategy Tester: Bugs, Bugs, Verbesserungsvorschläge - Seite 64

 

Es scheint, dass beim Starten des Tests (d.h. durch Klicken auf "Start" im Strategy Tester) der Tester-Agent die erforderlichen Dateien (einschließlich der DLL) nicht in seinen internen MQL{Libraries-Ordner kopiert. Ich habe zwei Ereignisse identifiziert:

Wenn ich eine "Test.dll"-Datei in meinem EA habe, dann

1) Strategy Tester meldet, dass die Datei Test.dll.ex5 nicht gefunden wird

2) Der Test-Agent kopiert die Datei Test.dll nicht in seinen internen Ordner, so dass der Strategy Tester meldet, dass Test.dll nicht gefunden werden kann.

% appdata% \ Roaming \ MetaQuotes \ Tester \ <MT5 ID> \ Agent-127.0.0.1-3000 \ MQL5 \ Bibliotheken \

 
Rashid Umarov:

Es gab kein Verbot

Es gab eine schwere IP-Blockade - der Server war nicht erreichbar. Es war unmöglich, sich über einen Anonymisierer anzumelden, da das Passwort falsch sein sollte.

Im Allgemeinen ein automatischer Standardschutz vor skrupellosen Benutzern.

 
Luis:

Es scheint, dass beim Starten des Tests (d.h. durch Klicken auf "Start" im Strategy Tester) der Tester-Agent die erforderlichen Dateien (einschließlich der DLL) nicht in seinen internen MQL{Libraries-Ordner kopiert. Ich habe zwei Ereignisse identifiziert:

Wenn ich eine "Test.dll"-Datei in meinem EA habe, dann

1) Strategy Tester meldet, dass die Datei Test.dll.ex5 nicht gefunden wird

2) Der Test-Agent kopiert die Datei Test.dll nicht in seinen internen Ordner, so dass der Strategy Tester meldet, dass Test.dll nicht gefunden werden kann.

% appdata% \ Roaming \ MetaQuotes \ Tester \ <MT5 ID> \ Agent-127.0.0.1-3000 \ MQL5 \ Bibliotheken \

Ich habe den gleichen Fehler im Strategy Tester!

2020.02.25 02:03:35.725 Tester Datei ***.dll.ex5 open error [2]

Wenn Sie die Bibliothek umbenennen (und die Erweiterung .ex5 hinzufügen), tritt ein weiterer Fehler auf:

2020.02.25 02:09:32.567 2020.02.18 00:00:00 Kann 'Receive_Information' nicht aufrufen, '***.dll' ist nicht geladen

2020.02.25 02:09:32.568 2020.02.18 00:00:00 unaufgelöster Importfunktionsaufruf



 
Slava:

Genaue Wiedergabe bei gedrückter Stopptaste.

Wenn Sie eine verantwortungsvolle Optimierung durchführen müssen, ist es wahrscheinlich besser, dies nach dem Neustart des Terminals zu tun, ohne die Schaltfläche "Stopp" zu drücken.

 
fxsaber:

Wenn Sie eine verantwortungsvolle Optimierung durchführen müssen, ist es wahrscheinlich besser, dies nach dem Neustart des Terminals zu tun, ohne die Schaltfläche "Stopp" zu drücken.

Möglicherweise. Aber wir sollten uns nicht darauf verlassen.

Dieses Verhalten (beim Drücken der Stopptaste) wurde behoben, und die Korrektur ist in der neuesten Version enthalten

 
Slava:

Möglicherweise. Aber wir sollten uns nicht darauf verlassen.

Dieses Verhalten (mit der Stopp-Schaltfläche) wurde behoben, und die Korrektur ist in der neuesten Version enthalten

Dann müssen Sie erneut nach dem Grund suchen, warum der Optimierungsdurchgang nicht derselbe ist wie der einzelne Durchgang.

 
fxsaber:

Dann müssen wir erneut nach dem Grund suchen, warum der Optimierungsdurchgang nicht derselbe ist wie der einzelne Durchgang.

Zählt der Testexperte Millisekunden von Ticks, die zu Diskrepanzen führen?

Damit haben wir das Problem erkannt und dann mit demselben Expert Advisor überprüft

 
Slava:

Ergibt der Test-EA, der Millisekunden von Ticks zählt, Diskrepanzen?

Das Problem wurde von demselben Sachverständigen geprüft.

Dieser EA in 2340 wies keine weiteren Diskrepanzen auf.


Der Fehlpass ist in der Live-EA aufgetreten. Ich werde die Methode anwenden, die sich beim letzten Mal bewährt hat.

Forum für Handel, automatisierte Handelssysteme und Strategietests

MetaTrader 5 Strategy Tester: Bugs, Bugs, Verbesserungsvorschläge

fxsaber, 2020.02.20 08:57

Ich habe die während der GA-Optimierung erhaltenen Zeitrahmenstatistiken verglichen. Und die Dauer des Einzelausweises.


Im Frame-Status erfolgt die Ausführung nach Ticks, die nicht in der Historie stehen: Mir ist sofort aufgefallen, dass es viele Geschäfte/Aufträge gibt, die genau eine Sekunde lang ausgeführt werden.

Zum Beispiel hat ein einzelner Durchlauf in der Historie einen Eintrag am 2019.06.04 02:00:00.206 und einen Frame-Durchlauf am 2019.06.04 02:00:00.000(die Tick-Historie hat zu diesem Zeitpunkt keinen Tick).


Das kostet eine Menge Zeit...

 
Experimentierumgebung:

MT5 build 2342 beta
ein EA ohne Market Order (nur Pending Order)
16487771 Ticks benutzerdefinierte Symboldaten
4 lokale Testpersonen
4 physische CPU-Kerne, 32g RAM, Windows 7 x64


Experimentelle Methode:

Richten Sie für jede reale Handelsoperation eine entsprechende virtuelle Trandingoperation ein.

Verwendung der Funktionen FrameAdd () und FrameNext (), um einige Informationen aus dem Optimierungsprozess auszugeben und in einer lokalen Textdatei zu protokollieren (Excel A bis T).


Ergebnis des Experiments:

Es besteht eine Wahrscheinlichkeit von weniger als 20 %, dass die Optimierungsaufgabe perfekt und mit denselben korrekten Ergebnissen wie bei einem einzelnen Test abgeschlossen wird.

In den allermeisten Fällen sind jedoch alle von der Optimierungsaufgabe gelieferten Ergebnisse falsch.



Bei einem einzigen Test und einem erfolgreichen Optimierungstest sind alle Ergebnisse der realen und virtuellen Handelsoperationen identisch.

Während des fehlgeschlagenen Optimierungstests können nur die virtuellen Handelsgeschäfte das korrekte Transaktionsergebnis zurückgeben, während alle von den realen Handelsgeschäften zurückgegebenen Daten, wie die Anzahl der Transaktionen und der Gewinnbetrag, falsch sind.

(Unter normalen Umständen würde ein echter Handelsvorgang die Funktion OrderSend () korrekt aufrufen und die Transaktionsstatusinformationen in OnTradeTransaction () und OnTrade () zurückmelden.

B: Nummer des Auftragspasses
D: Menge der verarbeiteten Zecken
F: Summe aller Briefkurse
H: Summe aller Gebotspreise
J: Menge der virtuellen schwebenden Aufträge
L: Menge der virtuellen Geschäfte
N: Nettogewinn des virtuellen Handels

P: Menge der tatsächlich ausstehenden Aufträge
R: Menge der realen Handelsgeschäfte
T: Nettogewinn des Realhandels


Alle Werte von Spalte D bis N sind korrekt (grünes Kästchen), d. h. die Verarbeitung der Zeckendaten in der Optimierungsaufgabe funktioniert immer richtig.


Falsche Werte im roten Kasten:

1. über P:
P sollte genau dasselbe sein wie J, da sowohl virtuelle als auch reale Aufträge unter denselben Voraussetzungen gezählt werden sollten.
Wenn die Voraussetzungen erfüllt sind, geben Sie sofort den Codeblock für "P ++" ein. Danach geben Sie OrderSend () ein.
Die extrem abnormalen P-Ergebnisse bedeuten, dass die nachfolgenden Anweisungen manchmal korrekt (J) und manchmal nicht korrekt springen, wenn das Programm unter denselben Bedingungen läuft.

2. über R:
R wird in OnTradeTransaction () gezählt.
Der Auftrag in P, wenn er ausgelöst wird, sollte in R gezählt werden.
Alle R-Nullen bedeuten, dass die realen Handelsaktivitäten im laufenden EA nie OnTradeTransaction () eingegeben haben.
Vielleicht liegt es daran, dass die aktuellen P-Ergebnisse nur zufällige Fehler sind, keine aussagekräftigen Pendelungen?

3. über T:
Der Gewinn oder Verlust in T sollte aus der Position in R stammen.
Wenn die Positionszähler in R alle null sind, woher kommen dann die Gewinn-/Verlustberechnungen in T?


4. Eine letzte Anmerkung:
Der Wert von P liegt sehr nahe an dem vom Strategietester zurückgegebenen Wert "Total Trades", ist aber nicht exakt derselbe.
Auf der Grundlage meiner mehrfachen Tests scheint es, dass der Wert von "Total Trades" immer in der gleichen arithmetischen Reihenfolge wie der Eingabeoptimierungsparameter von EA ist und den gleichen Schrittwert hat.
Es ist normal, dass die Eingabeparameter arithmetische Folgen sind, aber der Wert einer Variablen, deren Bedeutung völlig irrelevant ist, ist auch eine ähnliche arithmetische Folge?

 

Warum kommt nicht ein Moderator hier rein und löscht den Beitrag und lässt ihn stattdessen stehen:

<DELETED>

Dies ist ein englischsprachiges Forum

Beitrag auf Englisch

? Doppelte Standards?