Fehler, Irrtümer, Fragen - Seite 2587

 
elibrarius:
Ich denke, es ist einfacher, Balken aus Dateien zu lesen.

Ich habe Ihnen eine Lösung in einer Zeile geschrieben - fügen Sie das Testdatum zu dieser Bedingung hinzu und testen Sie im Tester ohne Probleme, die Leistung wird zumindest abnehmen

oder noch besser, tun Sie, was admin vorschlägt - die Datei ist natürlich kein Problem, aber die Versuchung ist groß, mit dem Neuronetz an den falschen Stellen zu spicken - so habe ich es meistens gemacht ))))

 
Roman:

Der Code verwendet lock_guard
. Wenn er jedoch auskommentiert wird, ändert sich nichts
.

Allerdings begann es undicht zu werden, und es ist klar, warum, weil die Größe der
Wenn ich aus dem Urlaub zurückkomme, werde ich mich mit dem Thema befassen, wenn es nicht zu viel Mühe macht. Aber logischerweise liegt der Fehler nicht in mql, sondern in Ihrem Code. Übrigens, nur so zum Spaß, was wäre, wenn die Bibliothek mit welcher Kodierung arbeitet? Sind Sie sicher, dass utf-16, aber was ist, wenn es utf-8, nachdem alle, die häufigste.
 
Igor Makanu:

Ich habe Ihnen eine Lösung in einer Zeile geschrieben - fügen Sie das Testdatum zu dieser Bedingung hinzu und testen Sie im Tester ohne Probleme, die Leistung wird zumindest sinken

Oder noch besser, folgen Sie einfach dem Vorschlag des Admins - die Datei wird kein Problem sein, aber Sie könnten versucht sein, das Neuronet zu benutzen, um an Stellen zu schauen, an denen Sie es nicht tun sollten - so ist es mir meistens ergangen )))

Ich habe es überprüft - es hat nicht geholfen.

Und das sollte es auch nicht. Schließlich heißt es in dem von admin zitierten Artikel:
DieMindestmenge der vom Handelsserver herunterzuladenden Historie für die Zeitrahmen D1 und darunter beträgt ein Jahr.

Und die 100000 M15-Barren, die ich beantragt habe, sind etwa 3 Jahre. Im ersten Jahr werden die Balken kopiert, das sind 37k Balken, und danach sind sie einfach nicht mehr im Prüfgerät, da hilft auch kein Warten.

 
elibrarius:

Ich habe es überprüft - es hat nicht funktioniert.

Das sollte es nicht sein. Schließlich heißt es in dem von der Verwaltung zitierten Artikel:
DerMindestumfang der Historie beim Herunterladen vom Handelsserver für die Zeitrahmen D1 und darunter beträgt ein Jahr.

Und die 100000 M15-Barren, die ich beantragt habe, sind etwa 3 Jahre. Im ersten Jahr werden die Balken kopiert, das sind 37k Balken, und danach sind sie einfach nicht mehr im Prüfgerät, da hilft auch kein Warten.

Es funktioniert bei mir, ich habe den Test 2000 - 2019 auf M15 gesetzt, Expertencode:

input int InpBars = 100000;

void OnTick()
{  static bool print_once = true;
   int bars = Bars(_Symbol, _Period);
   if(bars < InpBars) return;

   if(print_once)
   {  Print("OK - ", TimeCurrent());
      print_once = false; }

}

Ich habe es im Protokoll:

2019.10.04 22:15:19.567 Core 1 EURUSD,M15: Test von Experts\IgorM\tst.ex5 von 2000.01.01 00:00 bis 2019.10.03 00:00 mit Eingaben gestartet:

2019.10.04 22:15:19.567 Core 1 InpBars=100000

2019.10.04 22:15:19.567 Kern 1 2003.01.16 19:30:00 OK - 2003.01.16 19:30:00

2019.10.04 22:15:19.567 Core 1 Endsaldo 10000.00 USD

Fügen Sie der Bedingung ein Datum hinzu, an dem die Tests beginnen und die NS trainiert werden sollen, oder tun Sie, was der Administrator vorgeschlagen hat
 
Igor Makanu:

Ich habe alles zum Laufen gebracht, Test 2000 - 2019 auf M15 gesetzt, Expertencode:

Ich habe es in das Protokoll aufgenommen:

2019.10.04 22:15:19.567 Core 1 EURUSD,M15: Test von Experts\IgorM\tst.ex5 von 2000.01.01 00:00 bis 2019.10.03 00:00 mit Eingaben gestartet:

2019.10.04 22:15:19.567 Core 1 InpBars=100000

2019.10.04 22:15:19.567 Kern 1 2003.01.16 19:30:00 OK - 2003.01.16 19:30:00

2019.10.04 22:15:19.567 Core 1 Endsaldo 10000.00 USD

fügen Sie das Datum hinzu, ab dem Sie die Prüfung in der Bedingung beginnen wollen, und unterrichten Sie die NS, oder tun Sie es wie von admin vorgeschlagen

Jetzt verstehe ich Ihre Idee)

D.h. Sie sollten den Test nicht für die letzten 2 Monate, sondern für 3 Jahre durchführen, alle diese 3 Jahre in OnTick überspringen und die Berechnung nur für die letzten 2 Monate starten.

Ja - das ist die einfachste Lösung. Ich danke Ihnen!

 
elibrarius:

Und die 100.000 Barren M15, die ich beantragt habe, sind etwa 3 Jahre. Im ersten Jahr werden die Balken kopiert, das sind 37.000 Balken, und dann sind sie einfach nicht im Prüfgerät, da hilft kein Warten.

Schneller geht es, wenn Sie mit Ihrer Verlaufsdatei im Optimierungsmodus"Mathematische Berechnungen" arbeiten.

 
elibrarius:

Jetzt verstehe ich Ihre Idee)

D.h. der Test sollte nicht für die letzten 2 Monate, sondern für 3 Jahre durchgeführt werden, alle diese 3 Jahre in OnTick überspringen und die Berechnungen nur für die letzten 2 Monate starten.

Ja - das ist die einfachste Lösung. Ich danke Ihnen!

Zeit zur Bedingung hinzufügen

input int InpBars = 100000;
input datetime InpDataTest = D'2015.01.01 00:00'; 
void OnTick()
{  static bool print_once = true;
   int bars = Bars(_Symbol, _Period);
   datetime t = TimeCurrent();
   if(bars < InpBars || t < InpDataTest  ) return;

   if(print_once)
   {  Print("OK, TimeCurrent() =  ", t);
      print_once = false; }

}

2019.10.04 22:36:42.729 Core 1 EURUSD,M15: Test von experts\IgorM\tst.ex5 von 2000.01.01 00:00 bis 2019.10.03 00:00 mit Eingaben gestartet:

2019.10.04 22:36:42.729 Core 1 InpBars=100000

2019.10.04 22:36:42.729 Core 1 InpDataTest=1420070400

2019.10.04 22:36:42.729 Core 1 2015.01.02 09:00:00 OK, TimeCurrent()= 2015.01.02 09:00:00

2019.10.04 22:36:43.041 Core 1 Endsaldo 10000.00 USD



 
Igor Makanu:

Zeit zur Bedingung hinzufügen

2019.10.04 22:36:42.729 Core 1 EURUSD,M15: Test von experts\IgorM\tst.ex5 von 2000.01.01 00:00 bis 2019.10.03 00:00 mit Eingaben gestartet:

2019.10.04 22:36:42.729 Core 1 InpBars=100000

2019.10.04 22:36:42.729 Core 1 InpDataTest=1420070400

2019.10.04 22:36:42.729 Core 1 2015.01.02 09:00:00 OK, TimeCurrent() = 2015.01.02 09:00:00

2019.10.04 22:36:43.041 Core 1 Endsaldo 10000.00 USD



Ja, ich danke Ihnen. Alles funktioniert.

 
Aleksey Vyazmikin:

Schneller geht es, wenn Sie mit Ihrer Verlaufsdatei im Modus"Mathematische Berechnungen" des Optimierers arbeiten.

Dies ist der Fall, wenn man sich rein auf die NS selbst bezieht und das Ergebnis betrachtet.

Ich teste den Handel jetzt, damit sowohl die Kosten als auch die Spreads berücksichtigt werden. Das Ergebnis ist, dass der Handelsroboter für den Einsatz im Tester bereit ist und mit einem echten Handel verbunden werden kann.

 
elibrarius:

Nun, das ist so, wenn man sich nur mit dem NS selbst beschäftigt und das Ergebnis betrachtet.

Ich teste den Handel jetzt, damit sowohl die Kosten als auch die Spreads berücksichtigt werden. Deshalb bin ich an einem fertigen Roboter interessiert, den ich mir im Tester ansehen und mit dem realen Handel verbinden kann.

Ich verstehe immer noch nicht - brauchen Ihre Prädiktoren mehr Berechnungstiefe? Ich brauche wirklich eine - MA an den Tagen :) Ich beginne einfach ein Jahr früher mit den Tests, und der Handel vor diesem Datum kann verboten werden...