Frage zur genetischen Optimierung

 

Ich beschloss, mit der Optimierung des TS zu beginnen, aber da es eine Menge Parameter zu optimieren gibt - 13, und der TS für M1 konzipiert ist und es nicht mehr als 10 Trades pro Monat gibt, beschloss ich, einen genetischen Algorithmus zu verwenden und die Historie für 1 Monat zu nehmen.

Beim ersten Durchlauf betrug die berechnete Zeit mehr als 250 Stunden und die Anzahl der Kombinationen mehr als 83 Milliarden. In dem Artikel "Genetische Algorithmen in MetaTrader 4. A Comparison with the Optimizer's Direct Search" besagt, dass wir uns nicht auf die berechnete Zeit konzentrieren sollten; sie entspricht nicht der Realität in der genetischen Optimierung, aber der Artikel wurde vor langer Zeit geschrieben, vielleicht entsprechen die neuesten Builds von MT4 bereits dem? Soll ich also warten? Ich erwartete keine Probleme mit der Optimierung, als ich TS erstellte, aber es stellt sich heraus, dass TS gut zu sein scheint, aber ich kann es nicht manuell einstellen, es gibt zu viele Parameter und kleine Änderungen in ihnen führen zu einer erheblichen Umstrukturierung des Systems.

Können Sie mir auch sagen, was die Zahlen in der linken unteren Ecke bedeuten: die erste ist die Anzahl der Läufe, in Klammern - die Anzahl der Kombinationen, und was ist zwischen ihnen unter / ?

 
Angela >> :

Ich beschloss, mit der Optimierung des TS zu beginnen, aber da es eine Menge Parameter zu optimieren gibt - 13, und der TS für M1 konzipiert ist und es nicht mehr als 10 Trades pro Monat gibt, beschloss ich, einen genetischen Algorithmus zu verwenden und die Historie für 1 Monat zu nehmen.

Beim ersten Durchlauf betrug die berechnete Zeit mehr als 250 Stunden und die Anzahl der Kombinationen mehr als 83 Milliarden. In dem Artikel "Genetische Algorithmen in MetaTrader 4. A Comparison with the Optimizer's Direct Search" besagt, dass wir uns nicht auf die berechnete Zeit konzentrieren sollten, da sie in der genetischen Optimierung nicht der Realität entspricht, aber der Artikel wurde vor langer Zeit geschrieben, vielleicht entsprechen die neuesten Builds von MT4 bereits diesem Wert? Soll ich also warten? Ich erwartete keine Probleme mit der Optimierung, als ich TS erstellte, aber es stellt sich heraus, dass TS gut zu sein scheint, aber ich kann es nicht manuell einstellen, es gibt zu viele Parameter und kleine Änderungen in ihnen führen zu einer erheblichen Umstrukturierung des Systems.

Bitte sagen Sie mir auch, was die Zahlen in der unteren linken Ecke bedeuten: die erste ist die Anzahl der Läufe, in Klammern - die Anzahl der Kombinationen, und was steht dazwischen unter / ?

Die Zahlen in der Genetik bezeichnen die Anzahl der Kombinationen / Kombinationen in der Genetik.

Es ist eine Art Eigenwerbung, um zu zeigen, wie großartig wir MetaQuoteure sind und wie viel Zeit wir dank der Genetik sparen können.

\Es gibt viele Parameter, die optimiert werden müssen - 13\ Ich rate dazu, die Parameter in Paare und Dreiergruppen aufzuteilen,

(hier müssen Sie überlegen, was mit was gepaart ist) und wählen Sie schrittweise aus.

Es ist bequemer, ein zweidimensionales Optimierungsdiagramm auf diese Weise zu betrachten.

Im Allgemeinen wählt die Genetik verstreute Maxima aus und es ist immer noch besser, eine einfache Suche durchzuführen.

Ich persönlich nutze die Genetik, um einen lokalen Bereich zu finden, in dem ich bereits eine vollständige Suche durchgeführt habe.

 
Urain писал(а) >>

In der Genetik beziehen sich die Zahlen auf die Anzahl der Quoten/Quoten in der Genetik (die Anzahl der direkten Stichproben).

Dies ist eine Art Eigenwerbung, um zu zeigen, wie cool wir als MetaQuotesters sind und wie viel Zeit wir Ihnen dank der Genetik sparen.

\Es gibt viele Parameter, die optimiert werden müssen - 13\ Ich rate dazu, die Parameter in Paare und Dreiergruppen aufzuteilen,

(Sie müssen darüber nachdenken, was mit was gepaart ist) und die Auswahl schrittweise vornehmen.

Es ist bequemer, ein zweidimensionales Optimierungsdiagramm auf diese Weise zu betrachten.

Im Allgemeinen wählt die Genetik verstreute Maxima aus und es ist immer noch besser, eine einfache Suche durchzuführen.

Ich persönlich verwende Genetik für die Suche nach einem lokalen Gebiet, das ich dann für eine Brute-Force-Suche verwende.

Das Problem besteht darin, dass die meisten Optimierungsparameter durch Rückkopplungen miteinander verbunden sind und die Änderung eines Parameters die Umstrukturierung mehrerer anderer bewirkt, wodurch sich das Bild ändert. Die Strategie ist so konzipiert, dass das Optimum in der gesamten Hyperebene der verwendeten Parameter gesucht wird. Also werde ich diese Strategie wahrscheinlich aufgeben müssen, obwohl es natürlich schade ist, wenn man sie auf der Historie vom 1.01.2007 bis jetzt laufen lässt, sogar ohne Optimierung hat der TS Stabilität gezeigt, zumindest ist er nicht auf Null gefallen, obwohl er für wöchentliche Überoptimierung ausgelegt ist. In den letzten 2 Jahren gab es ein zyklisches Auf und Ab.

Ich werde gehen, um Stress abzubauen und eine neue Strategie auszuarbeiten.

 
Versuchen Sie, bei der Öffnung des Balkens Folgendes zu optimieren
 
83 Milliarden Euro könnten Sie an den falschen Ort bringen. Soweit ich weiß, macht ein Tester, wenn die Gesamtzahl der Durchläufe eine bestimmte Anzahl überschreitet (und das ist bei Ihnen der Fall), in der Genetik nicht mehr als 10.000 Durchläufe. Das heißt, der Prüfer kann, nachdem er irgendwo im riesigen Variantenraum positive Ergebnisse erhalten hat, anfangen, zu diesen Ergebnissen überzugehen, und hat vielleicht einfach keine Zeit, sich wirklich gute Ergebnisse anzusehen... Sie sollten versuchen, die Schrittweite der Parameter zu erhöhen. Dann wird es weniger Möglichkeiten geben. Und dann, nach einer ersten Annäherung, betrachten Sie den Bereich, der Sie am meisten interessiert, genauer.
 
Angela >> :

Das Problem besteht darin, dass die meisten Optimierungsparameter durch Rückkopplungen miteinander verbunden sind und die Änderung eines Parameters zu einer Neuordnung einiger anderer Parameter führt, wodurch sich das Bild ändert.

Das ist im Allgemeinen in Ordnung. Mit Hilfe eines zweidimensionalen Optimierungsdiagramms können Sie die Korrelation ermitteln und durch einen Koeffizienten im Code ausdrücken.

einen Optimierungsbegriff gänzlich ausschließen. Sie stellen zum Beispiel fest, dass die Maximalwerte in einem 2D-Diagramm diagonal verlaufen.

Das bedeutet, dass Sie einen Parameter im Code abhängig machen können ( x2 = x1 + 3 ) und nur x1 optimieren. Viel Glück!

 

Ich wollte nicht auf das Ende der Optimierung warten, also habe ich sie ausgeschaltet. Obwohl TS ist stabil und zeigt gute Ergebnisse auf profitable Trades, aber warten für Wochen für die Optimierung ist zu viel.

Hier ist zum Beispiel das Intervall im obigen Diagramm zu sehen, allerdings für die letzten zwei Monate.

Außerdem habe ich eine separate Optimierung von Kaufen und Verkaufen. Außerdem gibt es zu wenige Angebote, und wegen des schlechten Internets musste ich mein Handelssystem nachts ausschalten, während ich 2-3 Wochen warten konnte, bis die Angebote fertig waren.

Also habe ich gestern Stress abgebaut und angefangen, neue TS zu entwickeln. Ich werde mehr einfach und 390 Zeilen Code mit logischen Bedingungen ist zu viel, und Bremsen stark, Prüfung durch die Öffnung Preise seit 2007 dauerte 4,5 Stunden. Darüber hinaus in einem Monat, werde ich selbst nicht verstehen, was in diesen logischen Bedingungen nakochelya ist.

 
Angela >> :

Außerdem werde ich in einem Monat nicht einmal mehr wissen, was ich unter diesen logischen Bedingungen getan habe.

Schreiben Sie ausführliche Kommentare. ;-). Da der TS verworfen wird, kann er in der Codebase veröffentlicht werden, um ihn zu überarbeiten, vielleicht kann ein Refactoring durchgeführt werden.

 

Erstellung einer neuen Version des TS. Ich habe einen Block erstellt, und bevor ich fortfahre, habe ich beschlossen, einige Parameter zu optimieren, so dass ich mit mehr oder weniger optimalen Anfangseinstellungen weiterarbeiten kann. Ich habe 7 Parameter optimiert, geschätzte Optimierungszeit - 106 Stunden, obwohl sie nach Beginn der Optimierung schrittweise ansteigt, Anzahl der Kombinationen - 44.274.384, geschätzte Anzahl der Läufe - 10.496. Zunächst habe ich den Verlauf für 1 Monat eingestellt, die Optimierung begann, die Ergebnisse der Läufe begannen im Fenster "Optimierungsergebnisse" zu erscheinen. Ich habe in einem Monat 186 Angebote erhalten. Ich beschloss, den Verlauf zu halbieren, um die Optimierung zu beschleunigen, nach dem Start war die Zeit 57 Stunden, aber die Fenster "Optimierungsergebnisse" und "Optimierungsplan" zeigten nichts an, was ist das Problem?

 
Angela >> :

Erstellung einer neuen Version des TS. Ich habe einen Block erstellt, und bevor ich fortfahre, habe ich beschlossen, einige Parameter zu optimieren, so dass ich mit mehr oder weniger optimalen Anfangseinstellungen weiterarbeiten kann. Ich optimierte 7 Parameter, geschätzte Zeit der Optimierung - 106 Stunden, obwohl nach der Optimierung laufen sie nach und nach erhöht, die Zahl der Kombinationen - 44.274.384, geschätzte Anzahl der Läufe - 10.496. Zunächst habe ich den Verlauf für 1 Monat eingestellt, die Optimierung begann, die Ergebnisse der Läufe begannen im Fenster "Optimierungsergebnisse" zu erscheinen. Ich habe in einem Monat 186 Angebote erhalten. Ich beschloss, den Verlauf zu halbieren, um die Optimierung zu beschleunigen, nachdem ich den Roboter 57 Stunden lang laufen ließ, aber die Fenster "Optimierungsergebnisse" und "Optimierungszeitplan" zeigten nichts an, wo liegt das Problem?

1 Im Fenster "Optimierung" haben wir offenbar Parameter in Nebenbedingungen gesetzt, die nicht durch einen einzigen Lauf überwunden werden können,

Wenn es keinen Schwellenwert für den Gewinner gibt, bedeutet dies, dass es keine Auswahlmöglichkeit gibt. Lassen Sie ein Kästchen neben "Maximaler Gewinn" frei,

Wenn mindestens ein Lauf die Barriere überwindet und zumindest einen gewissen Gewinn bringt, wird er angezeigt.


2 Wenn Sie die Anzahl der gleichzeitig optimierten Parameter nicht verringern können, erhöhen Sie den Schritt.

Und dann, nachdem Sie das Ergebnis gesehen haben (im Bereich der Werte), führen Sie es mit einem kleineren Schritt aus.

Zum Beispiel: Per { Start, Schritt, Ende}

Wenn x1 {10,10,100} ist, sehen wir als Ergebnis eine dunkle Gruppe auf x1 von 60 bis 80.

Führen Sie einen zweiten Lauf mit den Parametern x1 {60,1,80} durch und finden Sie das Optimum.

(Wenn ich von einem Graphen spreche, meine ich einen dimensionalen Graphen).

 
Angela >> :

>> Wo liegt das Problem?

Wer weiß, vielleicht geschehen ja Wunder. Bevor ich die Optimierung durchführe, führe ich in der Regel visuelle Läufe mit den gewünschten Parametern durch, wobei die maximal erforderlichen Daten in einem Kommentar angezeigt werden. Es gelingt mir, viele interessante Dinge auf einmal zu sehen, ebenso wie bei der Durchsicht des Protokolls. Schlechte Historie, Indikatorfehler, Fehler des Expert Advisors, etc. Nach ihrer Eliminierung besteht ein größeres Vertrauen in die Genauigkeit der Optimierung.