Bei der ersten Optimierung der Parameter durch viele Quantitative Trader treten oft mehr oder weniger leicht drei Arten von Fehlern auf: Prognoseverzerrungen, Überoptimierung und Kurvenabstimmungen. Diese drei Fallen sind katastrophale Folgen, wenn sie sich in der Strategieentwicklung und bei der Optimierung der Parameter ergeben.
Zunächst einmal geht es um die Vorwegnahme, bei der Entwicklung einer Strategie wird auf einige Informationen aus der Zukunft zurückgegriffen, die bei einer realen Plattenoperation grundsätzlich nicht realisierbar sind. Die Vorwegnahme zeigt sich hauptsächlich in zwei Aspekten, einerseits durch die Funktion der Zukunft und andererseits durch das Blinken des Signals.
Als Beispiel für eine Futures-Funktion, wenn die Regeln für eine einheitliche Strategie lautet: Wenn der Kurs des Futures über den aktuellen Kurs überschreitet, kann der Kurs des Futures mit dem Eröffnungspreis gedreht werden. Für die Einfachheit nennen wir diese Strategie einen Namen, den Futures-A-Funktion. Die Futures-A-Funktion ist eine typische Strategie, die die Futures-Funktion verwendet, da Sie zum Zeitpunkt der Eröffnung nicht wissen können, ob die K-Linie letztendlich die Einheitlichkeit durchbrechen und ein Eröffnungssignal ausstrahlen wird.
Ein anderer Fall, der als Stealpreis bezeichnet wird, gehört in der Tat auch zur Kategorie der Zukunftsfunktionen. Zum Beispiel eine Strategie mit hoher Frequenz, die wir vorläufig als Steal-Gott-A-Tick bezeichnen. Die Regel der Steal-Gott-A-Tick-Strategie ist, dass Sie den höchsten Preis des Tages anlegen, wenn der Preis den höchsten Preis des Tages durchbricht.
Nehmen wir zum Beispiel Schraubstahl und nehmen wir an, dass es 250 Tage im Jahr gibt, an denen man einen Kauf oder einen Verkauf tätigt, und dann ist es das ganze Jahr lang 500 Ticks, und die Kosten für 500 Ticks übersteigen Ihr Kapital. Die Realität ist, dass es nicht nur unmöglich ist, Sie zu einem Preis von weniger als einem Ticks zu bringen, sondern dass es häufiger zu höheren Preisen kommt als zu einem oder mehreren Ticks. Der Grund ist einfach, dass die meisten Trendhandler ähnliche Signale senden.
Als nächstes sprechen wir über Signalblitze, wenn eine andere Regel für die Ebenenstrategie lautet: Wenn der Kurs höher als die Ebenen ist, dann öffnen wir einen Handelsplatz, um den Preis zu durchbrechen. Nehmen wir an, dass die Strategie Blitze B ist. Blitze B ist eine Strategie, bei der es Signalblitze gibt.
Die Funktion der Zukunft und das Signalblitzen, die wir allgemein als Prognoseverzerrung bezeichnen, haben das gemeinsame Merkmal, dass die Blitze B und die Blitze A vorherige Käufe und Verkäufe anhand des zukünftigen Preises bestimmen, was wir uns bemühen, zu vermeiden.
Über-Optimierung und Kurvenanpassung, über-Optimierung ist die wiederholte Optimierung mehrerer Parameter einer Strategie auf die beste, dann auf der Grundlage der besten Parameter, um die Strategie zu entwickeln und Risiken zu kontrollieren. Offensichtlich ist es schwierig, wenn Gewalt-Optimierung, auch wenn eine Strategie nicht profitabel ist, kann es einzelne Parameter profitabel sein, aber dieses Ergebnis wird für die Zukunft verwendet werden, aber es ist schwer profitabel.
Es gibt zwei wirksame Möglichkeiten, zu vermeiden, dass man zu wenig Optimierung anwendet, und je weniger Parameter, desto weniger Optimierbare Projekte. Natürliche Überoptimierung kann sehr gut vermieden werden. Und je weniger Parameter Konstruktionen, desto stabiler sind die Strategien, die eine Vielzahl von komplexen Strategien überwinden können, egal ob zeitlich effizient oder robust.
Der zweite Weg, um zu viel Optimierung zu vermeiden, ist, eine Strategie mit den Standardparametern einer Strategie zu testen, oder eine Strategie mit einer Reihe von randomisierten Parametern zu testen, und wenn die Strategie mit den Standardparametern oder mit den randomisierten Parametern profitabel ist, sollte sie weiterentwickelt werden. Wenn eine Strategie mit nur wenigen Parametern profitabel ist, dann empfehle ich, die Strategie entschieden aufzugeben. Außerdem sollte man eine Strategie, die man für machbar hält, für mehrere Sorten testen.
Kurvenabstimmung und Überoptimierung sind vergleichsweise ähnlich, sie beinhalten das Hinzufügen von unnötigen Regeln, um historische Daten anzupassen. Zum Beispiel eine Aktienstrategie, die wir als Kurvenabstimmung C bezeichnen, die eine Zeit von drei Jahren für Turbulenzen und drei Jahre für Trendtrades vorsieht. Angenommen, die Kurvenabstimmung C-Strategie wurde von Januar 2010 bis Dezember 2012 als Turbulenzen, von Januar 2013 bis Dezember 2015 als Trendregeln und bis Januar 2016 als Turbulenzen getestet. Offensichtlich wird die Kurvenabstimmung C-Strategie sehr gut getestet, aber die Kurvenabstimmung C-Strategie ist praktisch sinnlos.
Die Vermeidung von Kurvenanpassung ist ähnlich wie die Überoptimierung, wenn man so wenige Regeln wie möglich verwendet, um ein Handelssystem aufzubauen. Wer ein wenig Mathematik versteht, weiß, dass eine zweimalige Funktion für einen Wendemarkt, eine siebenmalige Funktion für sechs Wendemärkte geeignet ist.
Die Strategie, die mit Vorhersagen, Überoptimierung und Kurvenanpassung funktioniert, hat eine Gemeinsamkeit: Die Strategie ist hervorragend, aber sie kann nicht in die Tat umgesetzt werden. Dies ist eine Art Selbsttäuschung, aber es ist viel häufiger, dass viele Trader diese Fehler unwissentlich in der Strategieentwicklung machen, mit falscher Logik und Formeln zurückgehen und die Ergebnisse der Rückmeldung direkt auf ihre erwarteten Gewinn- und Risikomanagement-Basis verwenden.
Also, es ist nicht leicht, die Strategie zu beurteilen, bevor ich den Code von anderen Strategien gesehen habe, da viele Strategien, die online gekauft werden, die meisten von diesen Problemen aufweisen, und diese Probleme, die nur sehr wenige Menschen entdecken können, bevor sie nicht durch die Quantifizierungs-Transaction-Tür gelangen. Selbst wenn Sie eine wirklich profitable Strategie kaufen können, habe ich Ihnen gezeigt, dass Sie diese Strategie immer noch nicht langfristig ausführen können.
Übertragen von Python Quantitative Trading Community