Diskussion zum Artikel "Die Rolle der Qualität von Zufallszahlengeneratoren für die Effizienz von Optimierungsalgorithmen" - Seite 4
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ja, natürlich, Änderungen vornehmen, Verbesserungen vornehmen. Eine Codebase wäre also eine großartige Lösung.
Besser als Git. Man kann den Versionsverlauf sehen, alle Änderungen in jeder Datei leicht einsehen, Probleme melden oder eine bestimmte Codezeile kommentieren und vieles mehr.
IMHO ist für die Bewertung der Wirksamkeit der Optimierung in erster Linie die Leistung der gefundenen Parameter bei einer OOS-Stichprobe (z. B. k-fache Kreuzvalidierung) von Bedeutung, und ich habe ein solches Thema noch nicht gesehen - vielleicht habe ich es irgendwo übersehen.
Normalerweise geht es nicht darum, den sorgfältigsten Optimierungsalgorithmus zu finden, sondern darum, dass das System weiterhin so gut wie möglich funktioniert. Ich habe das Gefühl, dass die optimalsten Parameter im Backtest nicht lange genug im Forward-Test überleben, und daher sollte die Effizienz auf andere Weise bewertet werden, z. B. durch die Größe der kontinuierlichen glatten Cluster von Parametern, die den durchschnittlich höchsten FF-Wert ergeben.
Übrigens habe ich in den Tabellen keinen Vergleich der Geschwindigkeit gesehen.
und um die Effizienz der Optimierung zu bewerten, ist die Arbeit der gefundenen Parameter an der OOS-Stichprobe (z. B. k-fache Kreuzvalidierung) von primärer Bedeutung, und ich habe ein solches Thema noch nicht gesehen - vielleicht habe ich es irgendwo übersehen.
Normalerweise geht es nicht darum, den sorgfältigsten Optimierungsalgorithmus zu finden, sondern darum, dass das System weiterhin so gut wie möglich funktioniert. Ich habe das Gefühl, dass die optimalsten Parameter im Backtest nicht lange genug im Forward-Test überleben, und daher sollte die Effizienz auf andere Weise bewertet werden, z. B. durch die Größe der kontinuierlichen glatten Cluster von Parametern, die den durchschnittlich höchsten FF-Wert ergeben.
Übrigens habe ich in den Tabellen keinen Vergleich der Geschwindigkeit gesehen.
Die von Ihnen angesprochene Frage der Robustheit von Handelssystemen hat keinen direkten Bezug zu den Optimierungsalgorithmen selbst.
In dieser Artikelserie werden die Optimierungsalgorithmen selbst, als Werkzeuge, betrachtet und miteinander verglichen.
Die Code-Ausführungsgeschwindigkeit der Algorithmen ist im Vergleich zur Berechnung von FF bei praktischen Aufgaben vernachlässigbar, so dass es keinen besonderen Sinn macht, Messungen durchzuführen.
Grob gesagt, vergleichen wir nur Schaufeln, welche Schaufeln den Boden besser und bis zu welcher Tiefe durchschneiden, es hat keinen Bezug dazu, wo sie eingesetzt werden: zum Graben von Löchern für Kartoffeln oder für Gurken, und der Einfluss der Schaufeln auf die Geschwindigkeit des reifenden Gemüses wird nicht untersucht.
ZЫ. Optimierung und Robustheit von Systemparametern sind unterschiedliche Dinge, die aus irgendeinem Grund fälschlicherweise miteinander verbunden werden. Um robuste Parameter zu ermitteln, sollten andere Methoden angewandt werden (entweder als Nachbearbeitung der Ergebnisse oder parallel zur Optimierung), wie z. B. die Ermittlung von Clustern von Parametern mit gemeinsamem Systemverhalten und andere Methoden.
Sie sprechen die Frage der Robustheit von Handelssystemen an. Diese Frage hat nichts direkt mit den Optimierungsalgorithmen selbst zu tun.
Aber Sie haben sich entschlossen, die Frage des Einflusses der Qualität der HSC auf die Optimierung zu vertiefen (d.h. Sie sind von dem, was direkt mit dem Optimierungsalgorithmus zu tun hat, abgewichen). Das ist lobenswert. Wichtiger ist jedoch imho die Stabilität der gefundenen Lösung, die wahrscheinlich durch verschiedene Arten der Bewertung von "besser" im FF-Raum erreicht wird. Dies steht in direktem Zusammenhang mit dem Optimierungsalgorithmus und seiner praktischen Anwendbarkeit.
1. Sie haben sich entschlossen, die Frage des Einflusses der Qualität des DST auf die Optimierung zu vertiefen (d.h. Sie sind von dem, was direkt mit dem Optimierungsalgorithmus zusammenhängt, abgewichen). Das ist lobenswert.
2. Wichtiger ist jedoch imho die Stabilität der gefundenen Lösung, die wahrscheinlich durch verschiedene Arten der Einschätzung der "Besseren" im FF-Raum erreicht wird. Dies hängt direkt mit dem Optimierungsalgorithmus und seiner praktischen Anwendbarkeit zusammen.
1. Die Frage nach dem Einfluß der Qualität des HCS ist berechtigt, da alle bisher betrachteten Algorithmen ausschließlich stochastischer Natur sind (mit Ausnahme des Nelder-Mead-Algorithmus). Daher stehen die DSTs in direktem Zusammenhang mit der AO.
2. wurde im obigen Beitrag beantwortet. Ich möchte noch etwas hinzufügen: Die Tests verwenden Testfunktionen, die die Rolle dessen erfüllen, was wir brauchen. Dies ist sehr wichtig, um den Moment zu realisieren. Stellen Sie sich vor, Sie hätten die Möglichkeit, ALLE möglichen Durchläufe aller möglichen Mengen durchzuführen, d.h. eine vollständige Aufzählung durchzuführen. Nun stellen Sie sich vor, dass Sie einige davon auswählen müssen, richtig? Wie wählt man sie aus? - Es gibt einige Kriterien, nach denen Sie aus allen Parametern auswählen können. Wenn Sie wissen, welche Parameter (Lösungen) Sie aus allen möglichen, durch eine vollständige Suche erhaltenen, auswählen müssen, dann wissen Sie, welche Kriterien Sie bei der Optimierung anwenden müssen. Die Rolle der Kriterien wird von FF erfüllt.
Welche FF sind anzuwenden, um die Robustheit des Systems zu gewährleisten? - Optimierungsalgorithmen geben auf diese Frage keine Antwort und haben sie auch nie beantwortet. Optimierungsalgorithmen helfen nur dann zu finden, wenn man weiß, wonach man suchen muss.
Die Verantwortung für die Auswahl einer FF liegt allein beim Forscher.
Die Frage nach dem Einfluss der Qualität der HF auf die Ergebnisse der AO ist in diesem und anderen Foren wiederholt aufgetaucht, ich habe die Antwort auf diese Frage nicht in der Öffentlichkeit gesehen, jetzt ist die Antwort da und es gibt Werkzeuge zur Überprüfung.Um die Optimierung ranken sich viele Mythen, Missbräuche und Missverständnisse, deshalb möchte ich es noch einmal wiederholen:
Lassen Sie uns ein Gedankenexperiment durchführen. Alle möglichen Varianten der Systemparameter werden durch eine vollständige Aufzählung ermittelt. In diesem Fall ist der Optimierungsalgorithmus völlig ausgeschlossen, es gibt überhaupt keinen Optimierungsalgorithmus. Wenn man alle möglichen Varianten von Parametern in der Hand hat, stellt sich die Frage: Welche Parameter soll man wählen? - Wenn man die Antwort auf diese Frage kennt, ist es möglich, die Auswahlkriterien aus allen möglichen Varianten in Form einer Fitnessfunktion zu beschreiben, die bereits im Optimierungsprozess angewendet werden kann. So kann der Optimierungsalgorithmus wie bei einer vollständigen Suche zum gewünschten Ergebnis führen, nur schneller. Nach diesem Gedankenexperiment wird deutlich, dass der Optimierungsalgorithmus in keiner Weise "schuld" an dem ist, was er gefunden hat, sondern der Benutzer, der die gewünschten Kriterien nicht genau beschrieben hat.
Und das ist wichtig.
Es ist besser als Git. Sie können den Versionsverlauf sehen, alle Änderungen in jeder Datei leicht erkennen, Probleme melden oder eine bestimmte Codezeile kommentieren und vieles mehr.
Ich freue mich, dich unter den Kommentatoren zu sehen, Andrei.
Es ist nicht einfach mit github, Probleme mit Motivation und Zeit)).
Schön, Sie unter den Kommentatoren zu sehen, Andrew.
Es ist nicht einfach mit github, Probleme mit Motivation und Zeit)).
Interessantes Thema!
Mit github - höchstens einen Tag zum Lernen, Experimentieren, und dann ist es reines Vergnügen. Ich bin bereit zu helfen.
Um die Optimierung ranken sich viele Mythen, Missbräuche und Missverständnisse, deshalb möchte ich es noch einmal wiederholen:
Führen wir ein Gedankenexperiment durch. Alle möglichen Varianten der Systemparameter werden durch eine vollständige Aufzählung ermittelt. In diesem Fall ist der Optimierungsalgorithmus völlig ausgeschlossen, es gibt überhaupt keinen Optimierungsalgorithmus. Wenn man alle möglichen Varianten von Parametern in der Hand hat, stellt sich die Frage: Welche Parameter soll man wählen? - Wenn man die Antwort auf diese Frage kennt, ist es möglich, die Auswahlkriterien aus allen möglichen Varianten in Form einer Fitnessfunktion zu beschreiben, die bereits im Optimierungsprozess angewendet werden kann. So kann der Optimierungsalgorithmus wie bei einer vollständigen Suche zum gewünschten Ergebnis führen, nur schneller. Nach diesem Gedankenexperiment wird deutlich, dass nicht der Optimierungsalgorithmus "schuld" ist an dem, was er gefunden hat, sondern der Benutzer ist schuld, weil er die gewünschten Kriterien nicht genau beschrieben hat.
Und das ist wichtig.
Um Stanislavs Punkt zu unterstützen.
FF kann den ihn umgebenden Raum nicht beschreiben, er hat keine Informationen von außen.
Und die Aufgabe eines Forschers ist es, nicht einen einzelnen scharfen Gipfel zu finden, um den herum die Ergebnisse zackig und schlecht sind, sondern ein mehr oder weniger ausgedehntes Plateau, wo die Ergebnisse nicht sehr unterschiedlich sind.
Wie kann der FF seine Position im Raum bestimmen? Das kann er nicht, er kennt nur seine absolute Koordinate. Wir brauchen also einen Algorithmus (nennen Sie ihn nicht Optimierung, wenn Ihnen das zuwider ist), der nicht nach dem Maximum (wenn auch global), sondern nach dem besten Plateau sucht. Die Definition des Begriffs "bestes" ist natürlich eine interessante Frage, aber es ist offensichtlich, dass Parameter aus der Mitte des Plateaus viel stabiler sind als Parameter von einer scharfen Spitze, die von einem Graben umgeben ist.
Ich unterstütze Stanislaws Gedanken.
FF kann den ihn umgebenden Raum nicht beschreiben, er hat keine Informationen von außen.
Und die Aufgabe des Forschers besteht darin, nicht eine einzige scharfe Spitze zu finden, um die herum die Ergebnisse zackig und schlecht sind, sondern ein mehr oder weniger ausgedehntes Plateau, auf dem die Ergebnisse nicht sehr unterschiedlich sind.
Wie kann der FF seine Position im Raum bestimmen? Das kann er nicht, er kennt nur seine absolute Koordinate. Wir brauchen also einen Algorithmus(nennen Sie ihn nicht Optimierung, wenn Ihnen das zuwider ist), der nicht nach dem Maximum (wenn auch global), sondern nach dem besten Plateau sucht. Die Definition des Begriffs "bestes" ist natürlich eine interessante Frage, aber es ist offensichtlich, dass Parameter aus der Mitte des Plateaus viel stabiler sind als Parameter von einer scharfen Spitze, die von einem Graben umgeben ist.
Wovon Stanislav spricht und wovon Sie jetzt sprechen, hat nichts mit Optimierung zu tun. Und du verstehst einige Aspekte der Fitnessfunktion nicht richtig. Aber es ist schon gut, dass du zustimmst, die Optimierung von der hervorgehobenen Farbe zu trennen.
Es sieht so aus, als wäre ein eigener Artikel nötig, um diese Themen zu behandeln.
Aber lassen Sie uns hier beginnen. Nehmen wir noch einmal an, dass wir die Möglichkeit haben, einen vollständigen Sweep der Systemparameter durchzuführen. Wir machen einen Lauf über die Geschichte des Systems mit allen prinzipiell möglichen Parametern. Beantworten Sie nun bitte die Frage: "Können Sie aus allen möglichen Parametern einen Satz (oder mehrere) auswählen, den Sie verwenden möchten, um das System auf neuen Daten laufen zu lassen? Diese Frage richtet sich nicht nur an Sie, sondern an alle, die bereit sind, diese Frage zu beantworten. Wie wir sehen, geht es hier nicht um einen Optimierungsalgorithmus, sondern nur um die Auswahl einer Reihe von Parametern, um das System auf unbekannten Daten laufen zu lassen.
Stellen wir uns vor, dass wir die Möglichkeit haben, eine vollständige Suche nach den Systemparametern durchzuführen. Wir machen einen Lauf über die Geschichte des Systems mit allen prinzipiell möglichen Parametern. Beantworten Sie nun bitte die Frage: "Gibt es eine Möglichkeit, aus allen möglichen Parametern einen Satz (oder mehrere) auszuwählen, den Sie für den Betrieb des Systems mit neuen Daten verwenden können?