Skip to main content

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

image-1655729165362.png

Hintergrundwissen

Wie kann man sich das Prinzip vorstellen bzw. welche Schritte werden im GA umgesetzt:

  1. 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.
  2. 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.
  3. 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.
  4. 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
  5. Mutation: Zufällige Veränderung der neuen Individuen. Hierzu dient sowohl die Einstellung für die Mutationswahrscheinlichkeit.
  6. 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

image-1655729183784.png

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.

    Crossover Punkte zwischen 1 und 4:
    1 234 567890 --> 1 999 567890
    8 999 888888 --> 8 234 888888

    Crossover Punkte zwischen 9 und 10):
    123456789 0 --> 123456789 0
    888888888 9 --> 888888888 9

Alles zwischen den zwei Punkten wird in den Eltern-Chromosomen geswapped und es werden so zwei neue Kinder erzeugt. Das Verfahren wird daher auch als Two-Point-Crossover benannt.

image-1655729189322.png

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
Short=Optimierung auf fallende Kurse

Auswertungstabelle

image-1655729226240.png

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

image-1655729230959.png

  • 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.