Kurze Zusammenfassung
Dieses Video stellt eine neue Trading-Strategie vor, die auf genetischer Programmierung basiert. Dabei werden zufällig generierte Formeln als Trading-Indikatoren verwendet, die durch Backtesting und Selektion über Generationen hinweg verbessert werden. Der Prozess umfasst die Erstellung einer initialen Population von Indikatoren, die Auswahl der besten Indikatoren basierend auf ihrer Performance, die Kreuzung und Mutation dieser Indikatoren zur Erzeugung neuer Generationen und die abschließende Auswahl eines "Champion"-Indikators, der auf neuen Daten getestet wird.
- Genetische Programmierung nutzt Prinzipien der Evolution zur Entwicklung von Trading-Indikatoren.
- Der Prozess ist rechenintensiv, da zahlreiche Backtests durchgeführt werden müssen.
- Die generierten Indikatoren sind einzigartig und können auf verschiedenen Inputs basieren, einschließlich verschiedener Assets.
Einführung in die genetische Programmierung im Trading
Das Video beginnt mit einer Einführung in die genetische Programmierung, einer Form der künstlichen Intelligenz, die auf Prinzipien der Evolution und Genetik basiert. Anstatt mit einem festen Indikator zu beginnen, generiert der Computer zufällig Tausende von Formeln, die als potenzielle Trading-Indikatoren dienen. Diese Indikatoren entwickeln sich über Generationen hinweg, wobei jeder Indikator auf historischen Daten getestet wird, um seine Performance zu bewerten.
Der Prozess der genetischen Programmierung
Der Prozess der genetischen Programmierung umfasst mehrere Schritte. Zuerst wird eine initiale Population von zufälligen Indikatoren erstellt. Diese Indikatoren werden dann anhand historischer Daten getestet. Die vielversprechendsten Indikatoren werden durch einen Selektionsprozess ausgewählt, und die restlichen werden verworfen. Die ausgewählten Indikatoren werden dann gekreuzt und mutiert, um eine neue Generation von Indikatoren zu erzeugen. Dieser Prozess wird über mehrere Generationen wiederholt, bis ein "Champion"-Indikator gefunden wird.
Besonderheiten der generierten Indikatoren
Die durch genetische Programmierung erzeugten Indikatoren sind keine herkömmlichen technischen Indikatoren wie RSI oder MACD. Stattdessen handelt es sich um maschinell generierte Indikatoren, die bei jeder Ausführung des Codes zufällig erzeugt werden. Einige Ansätze verwenden Preise von mehreren Assets als Input, um einen Indikator zur Vorhersage der Preise eines bestimmten Assets zu entwickeln. Eine andere Idee ist die Verwendung klassischer technischer Indikatoren als Input, die dann durch genetische Programmierung zu einer neuen Formel kombiniert werden.
Python-Code und Backtesting
Der Python-Code lädt 5-Minuten-Kerzencharts von vier Währungspaaren und teilt die Daten in Trainings-, Validierungs- und Testdatensätze auf. Die Parameter für die genetische Programmierung, wie Populationsgröße, Anzahl der Generationen, Kreuzungs- und Mutationsraten, werden festgelegt. Die Indikatoren sind mathematische Ausdrucksbäume, die aus mathematischen Operationen und den Open-, High-, Low- und Close-Werten der Währungspaare aufgebaut sind. Der Output des Indikators ist eine Zeitreihe der gewünschten prozentualen Exposure zwischen -100% und +100%. Um Overtrading zu vermeiden, wird ein Deadband angewendet, der Trades nur dann auslöst, wenn sich das Signal um mehr als einen bestimmten Schwellenwert ändert.
Fitness-Bewertung und Evolution
Die Fitness jedes Indikators wird anhand seiner Rendite bewertet, wobei höhere Renditen zu einer besseren Fitness führen. Der Evolutionsprozess umfasst die Erstellung einer Population von Indikatoren, die Bewertung aller Indikatoren, die Auswahl der besten Indikatoren, die Anwendung von Crossover und Mutation und die Neubewertung der modifizierten Indikatoren. Am Ende des Evolutionsprozesses wird der beste Indikator auf dem Validierungsdatensatz ausgewählt und ein abschließender Test auf dem Testdatensatz durchgeführt. Das trainierte Modell wird dann in einer Datei gespeichert.
Beispielhafte Ausführung und Test
Das Video zeigt ein Beispiel für die Ausführung einer kleinen Evolution mit einer Population von 1.000 Indikatoren über 15 Generationen. Außerdem wird gezeigt, wie ein bereits trainiertes Modell geladen und für ein Backtesting auf dem Testdatensatz verwendet werden kann. Die Ergebnisse des Backtestings, wie Rendite, Sharpe Ratio und maximaler Drawdown, werden angezeigt.
Abschluss und Ausblick
Abschließend wird betont, dass es sich bei der genetischen Programmierung um ein Experiment handelt und nicht um eine magische Methode zur Erzeugung von Indikatoren. Es werden Möglichkeiten zur Weiterentwicklung der Strategie aufgezeigt, z. B. die Verwendung von Take-Profit- und Stop-Loss-Orders. Der Code wird auf GitHub zur Verfügung gestellt, damit die Zuschauer mit verschiedenen Parametern experimentieren können.

