Jump to content
Tom Next - Daytrading Community
  • entries
    19
  • comments
    44
  • views
    36,445

Evolution mit Chartpatterns


Mythos

1,995 views

Dann legen wir mal mit dem 2. Teil des Projektes los: Die Evolution der Pattern-Recognition. (Der Titel ist doch schon mal schön ;)

 

Die Idee dahinter

Es wird wie gesagt ein Evolutionsalgorithmus. Entwickelt (Evolutioniert klingt komisch) werden Chartpatterns die eine statistisch signifikante Prognose geben. Hierbei will ich mich gar nicht weiter einschränken was die Chartpatterns angeht. Zu Beginn werden es sicher nur simple Patterns, mit der Zeit soll aber deren Komplexität auch ausgebaut werden (soweit es MQL halt zulässt).

 

 

Chart-Pattern Description Language

Um überhaupt Evolution betreiben zu können, benötigt es eine Definition der "Gene". Bzw. eine Beschreibung welches Gen was bewirkt. Anders gesagt muss es gelingen "beliebige" Chart-Patterns mit einer (möglichst kleinen) Menge an Parametern eindeutig zu beschreiben. Ich nenn diese Beschreibung jetzt einfach mal Chart-Pattern Description Language (kurz CDL).

 

Da ich sowas selber noch nie gemacht habe, kann es leicht sein das die CDL sich im Laufe der Entwicklung noch gravierend ändert, nur als Vorwarnung.

 

Zunächst wird die CDL aus einer (beliebigen) Anzahl an Regeln bestehen. Von den Regeln wird es mehrere Typen geben. zB "Bar X hat folgende Form" oder "Wert von Bar X steht in diesem Verhältnis zu Wert von Bar Y". Über die CDL werde ich noch einen eigenen Eintrag schreiben.

 

Die Bewertungsfunktion

Jedes Pattern bekommt eine "Targetfunktion". Sprich es muss nicht jedes Pattern das Close des nächsten Bars vorhersagen. Auch hier wird es wieder unterschiedliche Typen geben. zB "Wenn beim nächsten Bar Preis X überstiegen wird, steigt der Preis um Y weiter", oder eben das klassische "Der nächste Close ist mind. X über dem aktuellen".

Weiters gibt es für jede Regel in der CDL eine "Ähnlichkeitsfunktion" die entscheidet wie sehr das aktuelle Chartbild diese Regel erfüllt. Ist die gesamte Ähnlichkeit des Patterns unter dem Schwellwert, so "muss" die Aussage der Targetfunktion zutreffen.

Bewertet wird wie oft die Targetfunktion zutrifft relativ zur Anzahl wie oft das Pattern gepasst hat.

 

Matcht das Pattern zu selten (zB

 

Die Evolution

Erfolgreiche Patterns werden dann miteinander kombiniert: Sprich es wird eine Teilmenge der Regeln der beiden "Eltern" übernommen. Wenn beide Eltern eine Regel enthalten, so kommt sie "sehr wahrscheinlich" auch ins neue Pattern und die Parameter der Regel werden "kombiniert". Zusätzlich gibt es natürlich Mutationen, sprich es kommen teils zufällig neue Regel dazu. Bzw. Regeln ändern ihre Parameter teils zufällig.

 

Die Implementierung

Wenn sich jetzt jemand fragt wie zum Teufel ich das in MQL bauen will, da hab ich ehrlich gesagt selber noch keine Ahnung. Das Projekt schreit ja regelrecht nach Objektorientierung. Aber zumindest in der ersten Version wird sich schon ein Weg finden. Ggf. muss ich halt auf eine C++ dll ausweichen, das will ich aber so gut es geht vermeiden.

 

als dann wiedermal thx for reading ;)

4 Comments


Recommended Comments

da fehlen Textteile (letzte 2 Absätze), oder?

 

Ansonsten: hoch interessantes Thema, welches ich mit Hochspannung verfolge. Klingt alles sehr vernünftigt! Um das Problem der fehlenden Objektorientierung in MQL zu meiden, könntest du zumindest in den ersten Versionen deine Ansätze (stark) vereinfachen. Dann hast du wenigstens schonmal ein "proof of concept", welches dann verfeinert werden kann.

Link to comment

ja da scheint beim speichern was komplett durcheinander gewürfelt zu sein. Ich hab probiert den Text so gut es geht wiederherzustellen. Is nur schwer sich zu erinnern was man gestern geschrieben hat ;)

 

Ja, die starke Vereinfachung wird auf jeden Fall nötig bzw. hab ich schon eine Idee wie ich das ganze angehen werde.

Link to comment

@Mythos - ich hoffe dass der Fehler beim Speichern nicht auf eine Fehlfunktion der Software zurückzuführen ist.

Wenn doch, müsste ich ein Ticket bei der Entwicklerfirma eröffnen.

Link to comment
@whipsaw: kann sein, kann nicht sein. Es war auf jeden Fall eine Teilmenge aus Opera, Software, Vorschau->Ändern->bestätigen,Internetconnection etc. Ich würde jetzt erstmal nicht sofort der Software die Schuld geben...
Link to comment
×
×
  • Create New...