Chart-Parameter-Optimierung mit genetischen Algorithmen
Ziel
Die Genetische Algorithmen sollen als heuristische Optimierungsverfahren und evolutionäre Algorithmen die triviale und einfache lineare Suche nach globalen Optimums für Einstellungen im Money-Management und Indikatorenwerten erleichert und teilweise überhaupt erst möglich machen.
Quick-Guide
(1) Chart aufrufen und einen Indikator auswählen
(2) Indikatorsignalgebung einstellungen und für den Hauptchart übernehmen
(3) Handelssystem für den aktuellen Indikator aufrufen
(4) Ergebnisse des Handelssystems prüfen und über die genetischen Algorithmen schrittweise optimieren
Hintergrundwissen
Wie kann man sich das Prinzip vorstellen bzw. welche Schritte werden im GA umgesetzt:
- Initialisierung: Erzeugen einer ausreichend großen Menge unterschiedlicher „Individuen" (Lösungskandidaten). Diese bilden die erste Generation. Die Menge wird durch die Festlegung der Populationsgröße (siehe Einstellung) bestimmt.
- Evaluation: Für jeden Lösungskandidaten der aktuellen Generation wird anhand einer Zielfunktion (auch Fitness-Funktion genannt) ein Wert bestimmt, der seine Güte angibt. Die Fitnessfunktion ist die Performance des Handelssystems unter den gegebenen aktuellen Genomen und damit aktuellen numerischen Parameterwerten.
- Selektion: Zufällige Auswahl von Lösungskandidaten aus der aktuellen Generation. Dabei werden Lösungskandidaten mit besseren Zielfunktionswerten mit einer höheren Wahrscheinlichkeit ausgewählt.
- Rekombination: die Daten (Genome) der ausgewählten Individuen werden gemischt und daraus neue Individuen erzeugt (Vermehrung). Durch Crossover-Möglichkeiten erfolgen dabei auch Rekombinationen auch mit Individuen außerhalb der eigenen Population
- Mutation: Zufällige Veränderung der neuen Individuen. Hierzu dient sowohl die Einstellung für die Mutationswahrscheinlichkeit.
- Aus den neuen Individuen und aus den Individuen der aktuellen Generation werden die Mitglieder der neuen Generation ausgewählt und mit Schritt 2 fortgefahren bis die maximale Anzahl von Generationen (siehe Einstellung) erreicht ist.
Die Grundidee genetischer Algorithmen ist, ähnlich der biologischen Evolution, eine Menge (Population) von Lösungskandidaten (Individuen) zufällig zu erzeugen und diejenigen auszuwählen, die einem bestimmten Gütekriterium am besten entsprechen (Auslese). Deren Eigenschaften (Parameterwerte) werden dann leicht verändert (Mutation) und miteinander kombiniert (Rekombination), um eine neue Population von Lösungskandidaten (eine neue Generation) zu erzeugen. Auf diese wird wiederum die Auslese und Rekombination angewandt. Das wird viele Male wiederholt.
Arbeitsschritte
Konfiguration
Wenn Sie wollen starten Sie einfach mit "Starten", da die Standardeinstellungen in vielen Fällen sehr gut funktionieren.
Titel |
Beschreibung |
---|---|
Population |
Anzahl von Individuen pro Population |
Generation |
Anzahl von Generationen zur Findung eines Optimums |
Chromosom-Mutation |
Modifikationsparameter bei Mutation eines Genoms |
Crossover-Wahrscheinlichkeit |
Wahrscheinlichkeit zur Durchführung von Crossover -Mutationen, d.h. zwei Chromosome tauschen Ihre Positionen an verschiedenen Genen, womit zwei neue Chromosomen erzeugt werden. |
Zufällige Selektion in % |
Elementar ist ein Selektionsmechanismus in der Evolution der Individuen. Diese orientiert sich grundsätzlich an der Fitness dieser. Mit der zufälligen Selektions-Wahrscheinlichkeit werden Individuen in die nächste Generation übernommen unabhängig von Ihrer "Performance" bzw. Fitness. Es soll so ein ausreichend breiter Individien-Stand gesichert werden. |
Optimale Indikatorenoptimierungen speichern |
Nur mit aktivierter Checkbox, werden die gefundenen optimierte Parameter nach abgeschlossener Berechnung gespeichert in den Indikatoren-Parameter-Einstellungen. Verwendet wird aktuell die zugrundeliegende Indikatoren-Gruppe, die auch im Chart eingestellt war. |
Optimale Handelssystem-Einstellungen speichern |
Nur mit aktivierter Checkbox, werden die gefundenen optimierte Parameter nach abgeschlossener Berechnung gespeichert in den aktuellen Handelssystem-Einstellungen. |
Anlageform |
Long=Optimierung für steigende Kurse |
Auswertungstabelle
Die Tabelle zeigt fortlaufend die "Elite" der Individien an, die eine neue optimale Performance aufzuweisen haben.
Titel |
Bedeutung |
---|---|
Titel |
Bedeutung |
Generation |
X. Generation in der Evolution. Praktisch gleichzusetzen mit dem Anzahl der Durchläufe. Gestartet wird bei 0. |
Gen/Population |
X. Population innerhalb einer Generation. Gestartet wird bei 0. |
Fitness |
Aktuelle Performance es Handelssystems mit den nachfolgenden Einstellungen / Spaltenwerten |
MaxKapRisk |
Money-Management: Maximale Kapital Risiko pro Trade |
InitStopp |
Money-Management:Initialer Risk-Stopp, d.h. Abstand zwischen Stopp-Kurse und Einstiegskurs |
TrailingStopp |
Money-Management:Trailing-Stopp |
Up-Tage |
Indikator: 1. Parameterwert. Praktisch damit nur ein Beispiel und unterscheidet sich je nach verwendeten Indikator. |
Down-Tage |
Indikator: 2. Parameterwert. Praktisch damit nur ein Beispiel und unterscheidet sich je nach verwendeten Indikator. |
Fortschritts-Charts
- Durchschnittliche Fitness pro Generation: Durchschnittswerte aller Individuen in einer Generation. Der Wert läuft im Normalfall den "Eliten" hinterher, da der Durchschnittswert und nicht das Maximum in einer Generation herangezogen wird. Die Fitness ist natürlich gleichzusetzen mit der Performance des Handelssystems.
- Durchschnittliche Konvergenz pro Generation: Wie stark unterscheiden sich die Individuen pro Generation. Durch initiale zufällige Befüllungen und einer schrittweisen Optimierung zeigt die Kurve oft eine konkave Kurve.