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

 
Slava:

Prüfung/Optimierung an echten Zecken?

Eigene Agenten oder aus der Cloud?

Wenn Sie mit einem benutzerdefinierten Symbol testen, fallen die Cloud-Agenten weg. Die Agenten sind also ihre eigenen, und Sie können ihre Protokolle abrufen und in den Protokollen sehen, wie der Verlauf synchronisiert wurde

Benutzerdefinierte, proprietäre Agenten, fehlerfreie Synchronisierung mit echten Ticks. Expert Advisor für die Wiederholung.

// Критерий оптимизации - сумма входных параметров + сумма нецелых частей секунды каждого тика (в миллисекундах).

input int inFakeRange1 = 0;
input int inFakeRange2 = 0;
input int inFakeRange3 = 0;
input int inFakeRange4 = 0;
input int inFakeRange5 = 0;

long Sum = inFakeRange1 + inFakeRange2 + inFakeRange3 + inFakeRange4 + inFakeRange5;

void OnTick()
{
  MqlTick Tick;
  
  if (SymbolInfoTick(_Symbol, Tick))
    Sum += Tick.time_msc % 1000;
}

double OnTester()
{
  return((double)Sum);
}


Ergebnis.

Anhand des Wertes in der ersten Zeile ist sofort klar, dass der Wert unsinnig ist: Er kann sich nicht so sehr von den Werten in den anderen Zeilen unterscheiden.


Und ein Einzelrennen.


99% Müll in Ticks während der GA-Optimierung. Lassen Sie mich wissen, ob Sie das Problem reproduzieren konnten oder nicht.

Suchbegriff: Oshibka 005.
 
fxsaber:

Benutzerdefinierte, eigene Agenten, fehlerfreie Synchronisierung mit echten Ticks. EA für die Wiedergabe.


Ergebnis.

Anhand des Wertes in der ersten Zeile ist sofort klar, dass der Wert unsinnig ist: Er kann sich nicht so sehr von den Werten in den anderen Zeilen unterscheiden.


Und ein Einzelrennen.


99% Müll in Ticks während der GA-Optimierung. Lassen Sie mich wissen, ob Sie das Problem reproduzieren konnten oder nicht.

Suchbegriff: Oshibka 005.

Sehen Sie sich das Optimierungsprotokoll des Agenten an, für den der unsinnige Wert ausgegeben wurde.

Und das Prüfprotokoll des entsprechenden Einzeldurchgangs.

 
Slava:

Sie müssen sich das Optimierungsprotokoll des Agenten ansehen, für den der unsinnige Wert ausgegeben wurde.

Und ein Testprotokoll des entsprechenden Einzeldurchgangs.

Sehen Sie sich den einzelnen Wert an. Er ist korrekt und unterscheidet sich von allen Optimizer-Werten, nicht nur von einem. D.h. der Fehler ist buchstäblich in jeder Zeile des Optimierers.

Ich schaue mir die Protokolle an. Es wäre gut für Sie, wenn Sie sie selbst durchführen würden.

2020.02.20 10:47:18.839 Core 6  genetic pass (5, 312) returned result 10563025086.000000 in 0:00:05.475
2020.02.20 10:47:20.023 Core 2  genetic pass (5, 209) returned result 8885031952.000000 in 0:00:04.947
2020.02.20 10:47:23.048 Core 3  genetic pass (5, 240) returned result 10373435790.000000 in 0:00:05.984
2020.02.20 10:47:23.366 Core 1  genetic pass (5, 181) returned result 10236426953.000000 in 0:00:05.654
2020.02.20 10:47:24.069 Core 4  genetic pass (5, 271) returned result 10597154696.000000 in 0:00:05.768
2020.02.20 10:47:24.509 Core 5  genetic pass (5, 296) returned result 10580660389.000000 in 0:00:05.853
2020.02.20 10:47:24.613 Core 6  genetic pass (5, 313) returned result 10563025078.000000 in 0:00:05.774
2020.02.20 10:47:25.113 Core 2  genetic pass (5, 218) returned result 8885031945.000000 in 0:00:05.089
Der richtige Wert wurde hervorgehoben. Ich bin das Protokoll durchgegangen. Nur Core1 hat den richtigen Wert.
 
fxsaber:

Ich bin das Protokoll durchgegangen. Nur Core1 hat den richtigen Wert.

Vollständig lokalisiert. Einzeldurchlauf auf Core1 stimmt nicht mit Einzeldurchlauf auf Core2 überein. Ich kann also noch nicht sagen, was davon richtig ist.

 
fxsaber:

Vollständig lokalisiert. Der Einzeldurchlauf auf Core1 ist nicht dasselbe wie der Einzeldurchlauf auf Core2. Ich kann also noch nicht sagen, welche davon richtig ist.

Was steht in den Agentenprotokollen? Hier wird die Geschichte geschrieben.
 
Slava:
Was steht in den Agentenprotokollen? Hier wird die Geschichte geschrieben.

Ich habe verschiedene Zeichen ausprobiert, da es sich nicht immer reproduzieren lässt. Agentenprotokolle bei der Optimierung.

Kern1.

EL      0       12:57:18.438    127.0.0.1       login (build 2323)
ND      0       12:57:18.455    Tester  account info found with currency USD
FO      0       12:57:18.456    Network 1482 bytes of tester parameters loaded
FF      0       12:57:18.456    Network 2748 bytes of input parameters loaded
DS      0       12:57:18.456    Tester  expert file added: Experts\Test123.ex5. 12221 bytes loaded
NK      0       12:57:18.456    Network 1032 bytes of optimized inputs info loaded
PM      0       12:57:18.527    Tester  successfully initialized
GE      0       12:57:18.527    Network 12 Kb of total initialization data received
JR      0       12:57:18.528    Tester  Intel Core i7-2700 K  @ 3.50 GHz, 16301 MB
OE      0       12:57:18.528    Tester  optimization pass 35025 started (batch of 53 tasks)
QQ      0       12:57:18.529    Symbols CHFJPY.rann_RannForex: symbol to be synchronized
RP      0       12:57:18.529    Symbols CHFJPY.rann_RannForex: symbol synchronized, 3720 bytes of symbol info received
LF      0       12:57:18.534    History CHFJPY.rann_RannForex: load 444 bytes of history data to synchronize in 0:00:00.001
EK      0       12:57:18.534    History CHFJPY.rann_RannForex: history synchronized from 2018.02.26 to 2020.02.14
FL      0       12:57:18.537    Ticks   CHFJPY.rann_RannForex: ticks synchronization started
ML      0       12:57:18.538    Ticks   CHFJPY.rann_RannForex: load 64 bytes of tick data to synchronize in 0:00:00.000
MK      0       12:57:18.538    Ticks   CHFJPY.rann_RannForex: history ticks synchronized from 2019.06.03 to 2020.02.14
MG      0       12:57:18.882    History CHFJPY.rann_RannForex,M1: history cache allocated for 740490 bars and contains 469972 bars from 2018.02.26 00:08 to 2019.05.31 23:54
CD      0       12:57:18.882    History CHFJPY.rann_RannForex,M1: history begins from 2018.02.26 00:08
QG      0       12:57:26.327    Tester  35025 OnTester result 6963974890 : passed in 0:00:07.795
JQ      0       12:57:31.481    Tester  5593 OnTester result 10077649365 : passed in 0:00:05.153
CE      0       12:57:32.683    127.0.0.1       tester forced to stop
DS      0       12:57:32.684    Tester  2 of 53 passes processed (2 successfully finished) in 0:00:12.948
CS      0       12:57:32.684            optimize Experts\Test123.ex5 on CHFJPY.rann_RannForex,M1 thread finished
HE      0       12:57:32.684    127.0.0.1       prepare for shutdown


Kern2.

OS      0       12:57:18.438    127.0.0.1       login (build 2323)
IG      0       12:57:18.456    Tester  account info found with currency USD
OL      0       12:57:18.460    Network 1482 bytes of tester parameters loaded
OE      0       12:57:18.460    Network 2748 bytes of input parameters loaded
EP      0       12:57:18.460    Tester  expert file added: Experts\Test123.ex5. 12221 bytes loaded
GJ      0       12:57:18.460    Network 1032 bytes of optimized inputs info loaded
FM      0       12:57:18.532    Tester  successfully initialized
QJ      0       12:57:18.532    Network 12 Kb of total initialization data received
IS      0       12:57:18.532    Tester  Intel Core i7-2700 K  @ 3.50 GHz, 16301 MB
OG      0       12:57:18.532    Tester  optimization pass 115298 started (batch of 18 tasks)
IQ      0       12:57:18.533    Symbols CHFJPY.rann_RannForex: symbol to be synchronized
KP      0       12:57:18.533    Symbols CHFJPY.rann_RannForex: symbol synchronized, 3720 bytes of symbol info received
KE      0       12:57:18.545    History CHFJPY.rann_RannForex: load 444 bytes of history data to synchronize in 0:00:00.002
FD      0       12:57:18.545    History CHFJPY.rann_RannForex: history synchronized from 2018.02.26 to 2020.02.14
DK      0       12:57:18.546    Ticks   CHFJPY.rann_RannForex: ticks synchronization started
PO      0       12:57:18.547    Ticks   CHFJPY.rann_RannForex: load 64 bytes of tick data to synchronize in 0:00:00.000
HJ      0       12:57:18.547    Ticks   CHFJPY.rann_RannForex: history ticks synchronized from 2019.06.03 to 2020.02.14
JH      0       12:57:18.856    History CHFJPY.rann_RannForex,M1: history cache allocated for 740490 bars and contains 469972 bars from 2018.02.26 00:08 to 2019.05.31 23:54
PS      0       12:57:18.856    History CHFJPY.rann_RannForex,M1: history begins from 2018.02.26 00:08
EF      0       12:57:25.613    Tester  115298 OnTester result 14612465132 : passed in 0:00:07.073
GP      0       12:57:30.797    Tester  26858 OnTester result 9858144627 : passed in 0:00:05.184
DR      0       12:57:32.684    127.0.0.1       tester forced to stop
NR      0       12:57:32.684    Tester  2 of 18 passes processed (2 successfully finished) in 0:00:12.257
CP      0       12:57:32.684            optimize Experts\Test123.ex5 on CHFJPY.rann_RannForex,M1 thread finished
GF      0       12:57:32.685    127.0.0.1       prepare for shutdown
 
fxsaber:

Ich habe verschiedene Zeichen ausprobiert, da es sich nicht immer reproduzieren lässt. Agentenprotokolle bei der Optimierung.

Kern1.


Kern2.

Und bei einem dieser Mittel haben Sie die falschen Ergebnisse erhalten?
 
Slava:
Und bei einem dieser Agenten haben Sie die falschen Ergebnisse erhalten?

Ich hatte keine Protokolle über diese Situation, da ich verboten hatte , Protokolle zu schreiben. Also musste ich eine weitere Kopie des Terminals von Grund auf neu starten und das Experiment wiederholen, bei dem die Protokolle alle geschrieben werden.

Oben sehen Sie die Optimierungsprotokolle. Dort hat jeder Agent zwei Durchläufe gezählt, nach denen die Stopptaste gedrückt wurde, weil die OnTester-Ergebnisse für jeden der Agenten durcheinander geraten sind.

Die Protokolle der beiden oben genannten Agenten. Ich werde versuchen, eine Situation zu schaffen, die Sie selbst nachvollziehen können.

 
fxsaber:

Ich hatte keine Protokolle über diese Situation, da ich verboten hatte, Protokolle zu schreiben. Also musste ich eine weitere Kopie des Terminals von Grund auf neu starten und das Experiment wiederholen, bei dem die Protokolle alle geschrieben werden.

Oben sehen Sie die Optimierungsprotokolle. Dort hat jeder Agent zwei Durchläufe gezählt, nach denen die Stopptaste gedrückt wurde, weil die OnTester-Ergebnisse für jeden der Agenten durcheinander geraten sind.

Die Protokolle der beiden oben genannten Agenten. Ich werde versuchen, eine Situation zu schaffen, die Sie selbst nachvollziehen können.

Das ist genau das, was ich über die Agentenprotokolle wissen möchte. Waren die Ergebnisse für beide Mittel falsch?

Ich muss Agentenprotokolle mit korrekten Ergebnissen und Agentenprotokolle mit falschen Ergebnissen sehen

 
Slava:

Ich frage speziell nach den Protokollen der Agenten. Waren die Ergebnisse für beide Mittel falsch?

Ich muss Agentenprotokolle mit korrekten Ergebnissen und Agentenprotokolle mit falschen Ergebnissen sehen

Beide Agenten hatten die falschen Ergebnisse für die Optimierungsläufe. Ich habe es fast geschafft, es auf einem sauberen Terminal zu reproduzieren... Ich werde es in Kürze veröffentlichen.


Übrigens, was ist der Grund dafür, dass die Agenten nach dem Schließen des Terminals noch im Speicher hängen?