Jump to content






Photo
* * * * * 1 votes

Evolution mit Chartpatterns

Posted by Mythos , 26. August 2012 · 1,299 views

pattern evolution
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 < 50 mal) so wird die Bewertung entsprechend reduziert damit die statistische Signifikanz erhalten bleibt.

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 ;)

  • 2



Photo
RAiNWORM
27. August 2012
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.
    • 0
  • Report
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.
    • 0
  • Report
Photo
whipsaw
29. August 2012
@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.
    • 0
  • Report
@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...
    • 0
  • Report

April 2021

M T W T F S S
   1234
567891011
12131415 16 1718
19202122232425
2627282930  

Recent Comments

Recent Entries

2 user(s) viewing

0 members, 2 guests, 0 anonymous users

Categories

Latest Visitors

  • Photo
    eurix
    14. Apr 2017 - 21:50 Uhr
  • Photo
    chimbonda
    03. Jul 2016 - 11:49 Uhr
  • Photo
    tompaul
    21. May 2016 - 16:37 Uhr
  • Photo
    fatlemming
    24. Jan 2016 - 17:41 Uhr
  • Photo
    compulsorytrading
    11. Dec 2014 - 09:33 Uhr