Optimierung mit dem Strategy Tester - Seite 2

 

schrieb einen EA, führte eine Optimierung durch, siehe.... und aus... Ich habe den Eindruck, dass https://www.mql5.com/ru/docs/series Copy... arbeiten langsam.

Документация по MQL5: Доступ к таймсериям и индикаторам
Документация по MQL5: Доступ к таймсериям и индикаторам
  • www.mql5.com
Доступ к таймсериям и индикаторам - Документация по MQL5
 

Ich optimiere schnell. Ich habe keine Beschwerden. In letzter Zeit beginnt die Optimierung jedoch nicht sofort, sondern bleibt stehen (man hört, dass die Festplatte hart arbeitet). Ich muss ständig von einem Access Point zum anderen springen. Erst dann beginnt die Optimierung zu funktionieren.

 
gumgum:

und aus... Ich habe den Eindruck, dasshttps://www.mql5.com/ru/docs/seriesCopy... arbeitet langsam.

Es ist nicht ganz klar, was Sie damit meinen.

Erklären Sie das genauer.

 
gpwr:

Ich optimiere schnell. Ich habe keine Beschwerden. In letzter Zeit beginnt die Optimierung jedoch nicht sofort, sondern bleibt stehen (man hört, dass die Festplatte hart arbeitet). Ich muss ständig von einem Access Point zum anderen springen. Erst dann beginnt die Optimierung zu funktionieren.

Würden Sie die Situation, wenn möglich, genauer beschreiben? Wie lange müssen Sie warten? Was wird (wenn überhaupt) in das Logbuch geschrieben?

 
Dmitriy2:

Ich wählte ein paar Parameter aus, klickte auf den Test... Am Morgen zählte ich die Anzahl der Läufe und wie viele noch übrig waren... berechnete, dass es noch 50 Tage bis zum Ende der Optimierung waren... mein Computer hat 4 Kerne + 2 Kernagenten... Ich brauche diese Optimierung nicht, also habe ich sie ausgeschaltet...

Versuchen Sie, zuerst einige Parameter zu optimieren, dann andere, und erhöhen Sie die Schrittweite. Dann können Sie es noch einmal innerhalb der Probe ausführen.
 
alexvd:

Es ist nicht ganz klar, was Sie meinen.

Erklären Sie das genauer.

Zum Beispiel:

double open(string sym,ENUM_TIMEFRAMES tf,int ps)
{
double ren[1]={EMPTY_VALUE};
CopyOpen(sym,tf,ps,1,ren); 
return(ren[0]); 
}

Wenn Sie die letzten 50000 Werte abfragen und die Zeit zum Lesen aus der Datei messen, beträgt der Unterschied ~0%~30%. 50000 Werte und messen Sie die Zeit, um in eine Datei zu schreiben, dann messen Sie die Zeit, um aus der Datei zu lesen, dann ist der Unterschied ~0%~30% zugunsten der ersteren.

Документация по MQL5: Файловые операции / FileWrite
Документация по MQL5: Файловые операции / FileWrite
  • www.mql5.com
Файловые операции / FileWrite - Документация по MQL5
 
gumgum:

Hier ist ein Beispiel:

dann beträgt der Unterschied ~0%~30% zugunsten der ersteren.

Es liest also schneller aus der Datei?

Warum einen Wert auf einmal kopieren, wenn man 50.000 auf einmal kopieren kann (wenn man so viele hat)?

 
alexvd:

Es liest also schneller aus der Datei?

Warum einen Wert auf einmal kopieren, wenn man 50.000 auf einmal kopieren kann (wenn man so viele hat)?

Aus der Datei ist langsamer. Warum also ein solcher Unterschied zwischen "sofort 50000" und dem letzten Aufruf?

 
gumgum:

Warum gibt es also einen solchen Unterschied zwischen "sofort 50.000" und dem letzten Aufruf?

Die Arithmetik ist einfach (die Zahlen sind ungefähr, aber die Größenordnung ist wichtig).

Zugriff auf ein Array-Element ~ 5 CPU-Zyklen.

Der Funktionsaufruf dauert ~100 Taktzyklen.

Dies macht den Unterschied aus, dass ein einziger Funktionsaufruf zum Abrufen der benötigten Datenmenge in Bezug auf die Ausführungsgeschwindigkeit günstiger ist.

 

Die Diskussion scheint sich mit den Besonderheiten des Codes eines bestimmten EA zu befassen. Aber ich habe festgestellt, dass fast die gesamte Zeit für Vorbereitungsarbeiten aufgewendet wird (mehr als 90 %), egal welcher EA optimiert wird. Und so geht es bei jedem Durchlauf (Durchlauf im Protokoll) mit neuen Eingabeparametern, die optimiert werden. Egal, wie gut Sie Ihren Code optimieren, Sie werden nur ein paar Prozent mehr Leistung erhalten.

Analexvd: Bitte lesen Sie den ersten und dritten Beitrag dieses Threads: Ich habe sie ausführlich mit Beispielen und Protokollen beschrieben.

Könnte ein Prüfer die Vorarbeiten nur einmal während der Optimierung durchführen und dann den Expert Advisor anhand der Eingabedaten berechnen, wäre die Optimierungszeit mindestens um eine Größenordnung kürzer. Dann könnten wir über den Code des Expert Advisors selbst sprechen.