Optimieren Sie einen EA und holen Sie sich das Beste aus den optimierten EAs. - Seite 23

 
+1 Nimmt die verbleibende zum Optimieren
Dateien:
 
George Merts:

Das ist in jedem Fall relevant.

Selbst wenn Sie mehrere Optimierungen gleichzeitig durchführen, ermöglicht dies eine bessere Auswahl des besten Satzes von Eingabeparametern - einfach durch Zusammenführen der XML-Dateien und Verarbeitung durch das Auswertungsskript. Probleme kann es nur geben, wenn das Skript Fehler findet, wie beim letzten Mal, als ich nicht alle Variablen in der SET-Datei markiert hatte. Das Skript meldete mir "ungültige Datei", aber ich konnte nicht herausfinden, was falsch war.

Damit Ihre Optimierung berücksichtigt wird. Jetzt werde ich sie bearbeiten, die Version auf Yandex aktualisieren und die nächsten Experten veröffentlichen, die aus der Liga "ausgestiegen" sind. Wenn es interessant ist, kann ich schreiben "wofür ich rausgeschmissen wurde". :)

Im Allgemeinen dachte ich, dass die Genetik jedes Mal die gleichen Ergebnisse auswählt, nicht wahr?

Die Abstiegsstatistiken können gesammelt werden, vielleicht führen diese Daten zu Verbesserungen beim Berater, wenn sich der Ansatz ändert ...

 
Aleksey Vyazmikin:

Im Allgemeinen dachte ich, dass die Genetik jedes Mal die gleichen Ergebnisse liefert, ist das nicht der Fall?

Die Abflugstatistiken können gesammelt werden, vielleicht können diese Daten zur Verbesserung des EA herangezogen werden, wenn sich der Ansatz ändert...

Genetik - kann nicht zu den gleichen Ergebnissen führen. Nur in der Nähe. Und das nur, wenn die Funktion "gerade" genug ist.

Wir haben eine Milliarde cobmin-Optionen. Wir müssen die besten von ihnen auswählen.

Erstens: Wir nehmen eine zufällige 512er Variante. Dies ist die erste Generation.

Dann bilden wir die nächste Generation - wir machen zufällige Parameteränderungen - Mutationen in jeder Kobmination. Wir erhalten 1024 Personen. Wir wählen die 512 mit dem höchsten Wert der Fitnessfunktion aus (Fitnessfunktion - das ist nur die Einstellung Benutzerdefiniert in den Optimierungseinstellungen). Und der Mutationszyklus wiederholt sich.

Die Zyklen werden fortgesetzt, bis keine großen Werte der Fitnessfunktion mehr auftreten.

Obwohl das Ergebnis (ein Wert) bei verschiedenen Optimierungen gleich sein kann, sind die Generationen selbst und die "Wege zum Finden" dieses Wertes unterschiedlich. Und diese Suchpfade werden in der XML-Datei angezeigt. Mein Schätzungsskript läuft durch diese Datei und zählt die Varianz der Fitnessfunktionswerte für die Rück- und Vorwärtsperiode. Dann wird ein Kompromisswert der Fitnessfunktion gewählt, der so groß wie möglich ist, aber die Varianz so klein wie möglich (aber in der zweiten Größenordnung).

Wenn wir zwei verschiedene XML-Optimierungsdateien nehmen, kann der beste Wert in beiden gleich sein. Aber die Abweichung wird zwangsläufig anders sein. Und das - wird die Wahl beeinflussen, es kann sinnvoller sein, einen etwas kleineren Wert der Fitnessfunktion zu nehmen, so dass die Varianz um diesen Wert viel kleiner ist.

 
Aleksey Vyazmikin:
+1 Der Rest ist zu optimieren.

Sie haben 24 Redcodes, ich bearbeite GBPCHF_EMAFlatRTS, das sind 25. Die nächste Datei wird 26 sein. Aber ich muss jetzt rausgehen. Ich bin in etwa vier Stunden zurück, dann poste ich die nächsten Außenseiter.


Alexej, wenn Sie rote Codes verwenden wollen, ist es sinnvoller, eine separate Version von "Liga" zu kompilieren, die sofort mit den von Ihnen ausgewählten Codes für den gewählten Aktionszeitpunkt "geladen" wird. Damit müssen Sie in den Einstellungen nur noch das gewünschte Risiko angeben. Alle ausgewählten Systeme arbeiten unabhängig voneinander, als ob sie mehrere Kopien der Liga wären, jedes auf seinem eigenen Magic (dies ist, wie die EAs auf einem gemeinsamen Demo-Konto arbeiten, es gibt nicht 270 EAs, sondern nur fünf, aber sie arbeiten mit allen 270 TS).

Für Interessierte, die Expert Advisor Trading Systems League - zum Download auf YandexDisk verfügbar

EALeague
EALeague
  • yadi.sk
View and download from Yandex.Disk
 
GBPJPY_ChnTrendRTS
Dateien:
 
George Merts:

Erstens - wir nehmen eine zufällige Auswahl von 512. Dies ist die erste Generation.

Nehmen wir oder der Optimierer? Ich bezweifle nur etwas an der Zufälligkeit, d. h. was erzeugt diese Zufälligkeit, ist der Algorithmus bekannt? Ist sie zeitlich begrenzt?


George Merts:

Dann bilden wir die nächste Generation - bei jedem Schustern nehmen wir zufällige Änderungen der Parameter vor - Mutationen. Wir erhalten 1024 Personen. Wir wählen die 512 mit dem höchsten Wert der Fitnessfunktion aus (die Fitnessfunktion ist einfach die Einstellung Benutzerdefiniert in den Optimierungseinstellungen). Und der Mutationszyklus wiederholt sich.

Und wo kann ich Beispiele dafür sehen, wie sich eine solche Funktion selbst kompiliert?

Oder handelt es sich nur um eine einzige Zahl, die auf einer individuellen Berechnung basiert und zu einem höheren oder niedrigeren Wert tendieren sollte, und dementsprechend, wenn es eine Dynamik gibt, dann tropft die Genetik in genau diese Richtung?

George Merts:

Sie haben 24 Regcodes, ich bearbeite GBPCHF_EMAFlatRTS, das sind 25. Wenn Sie die nächste Datei posten, sind es 26. Aber ich muss jetzt gehen. Ich bin in vier Stunden zurück und werde die nächsten "Outsider" posten.


Alexej, wenn du Readcodes verwenden willst, ist es sinnvoller, eine separate Version von "League" zu kompilieren, die sofort mit den von dir ausgewählten Codes für den gewählten Zeitpunkt der Aktion "geladen" wird. Damit müssen Sie in den Einstellungen nur noch das gewünschte Risiko angeben. Alle der ausgewählten Systeme - wird unabhängig voneinander arbeiten, als ob sie mehrere Kopien der Liga, die jeweils auf ihre eigene Magie (so arbeiten die Experten auf dem gemeinsamen Demo-Konto, gibt es nicht 270 Advisors, sondern nur fünf, aber sie arbeiten alle 270 TS).

Hmmm, ich weiß nicht einmal, wie ich sie auswählen soll... was gibt es dann zu optimieren, oder nur einen "Risikowert"?

 

Richtig. Es passt. Es ist alles in Ordnung, alles verarbeitet, eingebettet in die Liga.

Ich habe die Idee, EAs zur Optimierung so zu modifizieren, dass ich aus den XML-Dateien sofort ersehen kann, auf welchem Symbol sie ausgeführt wurden und in welchem Zeitraum sie zurück- und vorwärtsgelaufen sind. Ich werde mich am Wochenende darum kümmern.

Im Moment muss ich noch einige Anleitungen für Neulinge schreiben.

Aleksey Vyazmikin:

Schlagen wir den Schläger oder den Optimierer? Ich habe nur Zweifel an der Zufälligkeit, d.h. was erzeugt diese Zufälligkeit und ist der Algorithmus bekannt? Ist sie zeitabhängig?

Der Optimierer, natürlich. Es führt eine genetische Optimierung durch.

Und soweit ich weiß und sehe, werden die anfänglichen Parametersätze rein zufällig generiert, höchstwahrscheinlich durch einen Prozessorbefehl, der Zufallszahlen ausgibt. Idealerweise sollte ein RDRAND-Prozessorbefehl verwendet werden, der eine Zufallszahl erzeugt, die viele spezielle Standards erfüllt. Aber natürlich können Zufallszahlen auch pseudozufällig sein - das ist nicht viel schlimmer - wir brauchen keine robuste Kryptographie, sondern eine einheitliche "Saat" für das Wertefeld.

 
Aleksey Vyazmikin:

Und wo kann ich Beispiele für eine selbstkompilierte Funktion wie diese sehen?

Oder handelt es sich nur um eine einzige Zahl, die auf den Ergebnissen einer benutzerdefinierten Berechnung basiert, die zu einem höheren oder niedrigeren Wert tendieren sollte, und dementsprechend, wenn es eine Dynamik gibt, dann tropft die Genetik in genau diese Richtung?

Ja, das stimmt, die Fitnessfunktion ist das Ergebnis von OnTester(), das die Passage charakterisiert. Im einfachsten Fall handelt es sich um den Wert der Kaution am Ende des Durchgangs. Der Optimierer wählt Kobmins aus, bei denen diese Funktion maximal ist. Und es bilden sich immer neue Generationen, die sich dem Maximum nähern.

Ich verwende eine clevere Multifaktor-Funktion, die die Qualität des Handels sehr gut widerspiegelt. Ich habe diesen Code einmal gegen eine Gebühr erhalten, aber jetzt bereue ich es nicht.

Dort hat der genetische Algorithmus im Allgemeinen eine ganze Menge Tricks, es gab sogar irgendwo einen Artikel über genetische Algorithmen, und es wurde viel darüber gesprochen.

 
Aleksey Vyazmikin:

Hmmm, ich weiß gar nicht, wie ich sie auswählen soll... was gibt es danach zu optimieren, oder nur einen Wert für "Risiko"?

Sie brauchen nichts zu optimieren, alles ist bereits vor Ihnen optimiert. Was Sie jetzt tun, ist, die Außenseitersysteme so zu optimieren, dass sie zu Favoriten für andere Parametersätze werden. Setzen Sie sie auf die Demo, und sehen Sie, wie sie handeln. Einige von ihnen werden das Glück haben, die offenen Positionen zu besetzen. Das werden wir in einem Monat sehen. Zu diesem Zeitpunkt werden die ehemaligen Favoriten einen Testschuss abgegeben haben und aus dem Handel genommen werden, und neue Systeme, die optimiert werden, werden ihren Platz einnehmen.

Wir nehmen jedes beliebige System, stellen den Risikowert ein - und schon können Sie handeln.

Aber "wie man auswählt"... Das ist meine Hauptfrage. Wenn ich "nur schleifen" - dann visuell und durch die "Qualität" Parameter. Diese Systeme, die ich ausgewählt habe - ich habe sie auf einem realen Konto, die Investition Passwort, das Sie haben. Aber, sie wurden intuitiv gewählt. Leider habe ich noch keine klaren Kriterien entwickelt.

Schauen Sie sich also die Charts an und wählen Sie das Beste aus - das ist Ihre Entscheidung für den Moment. Die Auswahl ist offensichtlich groß.

 

Systeme, die überoptimiert werden müssen:

Zwei wiesen eine zu lange SL-Warteschlange auf, bei den übrigen wurde der zulässige Spielraum überschritten.

Grund der Beschwerde: