Jump to content
Tom Next - Daytrading Community
  • entries
    19
  • comments
    44
  • views
    37,106

Chartpattern Description Language - CDL Part 1


Wie versprochen Version 0.1 der CDL aka "Was ich mir grad vorm Fernseher zusammengereimt habe" loungelizard.gif

 

Anforderungen

  1. Die CDL soll wie gesagt die Möglichkeit liefern ein Chartpattern möglichst genau zu beschreiben und dabei einem möglichst allgemeinem Muster folgen.
     
  2. Jede Pattern-Beschreibung soll aus ein Reihe eigenständiger Definition/Regeln bestehen, die beliebig kombiniert und ersetzt werden können.
     
  3. Es sollte möglich sein Regeln miteinander zu vergleichen um "ähnliche" Regeln zu vermischen
     
  4. Jede Regel muss eine Möglichkeit der Kombination mit "ähnlichen" Regeln haben, sowie Möglichkeiten der "Mutation" (zufällige Veränderung der Regel sodass sie (meistens) sinnvoll bleibt).

Zugegeben, diese Anforderungen sind bereits mit einer Idee für die CDL geschrieben. Trotzdem spiegeln sie glaub ich die Grundanforderungen recht gut wider.

 

Grundaufbau der CDL

Jedes Chartpattern wird beschrieben von einer Reihe von Regeln und einem Target.

Repräsentiert werden diese Regeln und das Target je als ein Array. Dadurch ist sogar eine "effiziente" Verwaltung in MT möglich.

Der Einfachheitshalber besteht jedes Pattern aus maximal 50 Regeln und jede Regel wird mit maximal 10 (muss ggf. erweitert werden) Werten definiert.

Das Target wird ebenfalls mit maximal 10 Werten definiert.

Es gibt verschiedene Typen von Regeln und Targets. Der erste definierende Wert jeder Regel/Target bestimmt dessen Typ und entsprechend werden die darauffolgenden Werte interpretiert.

Ein Chartpattern ist also mit einem 2D-Array nach folgendem Muster definiert:

In Zeile 1 sind "technische" Werte des Patterns gespeichert (Anzahl der verwendeten Regeln, maxBarsBack etc), also Werte die nicht zu den Genen des Patterns zählen sondern für die konkrete Implementierung notwendig sind, eine Art "Header".

pattern[1][0-9] enthält das Target. pattern[1][0] ist der Typ des Targets, die restlichen Werte in dieser Zeile sind vom Typ des Targets abhängig.

pattern[2][0-9] enthält die erste Regel des Patterns. Wiederum enthält pattern[2][0] den Typ, der Rest ist abhängig vom Typ.

pattern[3][0-9] enthält die zweite Regel und so weiter

 

PriceID

Da innerhalb der Regeln immer wieder auf verschiedene Preise referenziert wird, müssen diese codiert werden. Dies erfolgt mit den PriceIDs nach dieser Form:

X wobei X aus 0-9 ist und angibt welcher Wert des entsprechenden Bars verwendet wird.

0 - Open, 1-High, 2-Low, 3-Close, 4-(H+L)/2, 5- (H+L+C)/3, 6- HighestHigh im Pattern, 7-LowestLow im Pattern

wird also auf das High des aktuellen Bars referenziert ist die PriceID 1, High des letzten Bars: 11, Close des vorletzten Bars: 23, Open des 10. letzten Bars: 100 etc.

 

Die Targets

Zu Beginn gibt es mal 3 Typen von Targets:

TARGET_PREDICTION

Bedeutet eine Vorhersage des Close des nächsten Bars, jedoch nicht punktgenau sondern nur die Richtung und minimale Bewegung.

 

Parameter:

# Richtung +1 für rauf, -1 für runter

# min Bewegung

# isRelative: minimale Bewegung ist absolute oder % des aktuellen Bars

Das Target ist erfüllt wenn der Close des nächsten Bars die entsprechende Entfernung in der gegeben Richtung überschreitet. (Oder sollte man hier besser High/Low nehmen, also die maximale Bewegung im nächsten Bar?)

 

 

TARGET_BREAKOUT_MOVE

Dieses Target ist gedacht für Patterns wie Keile. Wenn die obere Schwelle durchbrochen wird, muss eine starke Bewegung nach oben folgen, wird die untere durchbrochen eine Bewegung nach unten.

 

Parameter:

# Schwelle Long - eine PriceID

# Schwelle Short - eine PriceID

# min Bewegung bei Durchbruch

# isRelative (wie oben)

Das Target ist erfüllt wenn der Bar nach dem Pattern eine (genau eine?) Schwelle durchbricht und die mindestens die min Bewegung weiterläuft oder keine der beiden Schwellen durchbricht (dann zählt das Pattern als nicht gematcht, aber nicht als nicht erfüllt).

 

TARGET_BREAKTHROUGH_MOVE

Der klassische Durchbruch durch einen Widerstand. Erkannt wird eine Schwelle bei dessen Durchbruch der Kurs deutlich weiter in diese Richtung marschiert.

 

Parameter:

# Richtung +1 oder -1

# Schwelle - eine PriceID

# min Bewegung bei Durchbruch

# isRelative (wie oben)

Das Target ist erfüllt wenn der Bar nach dem Pattern die Schwelle durchbricht und mindestens die min Bewegung weiterläuft oder die Schwelle nicht durchbricht (dann zählt das Pattern als nicht gematcht, aber nicht als nicht erfüllt).

 

 

Da das schon ein recht langer Eintrag ist, mach ich hier mal Pause. Weiter gehts die nächsten Tage in Teil 2.

0 Comments


Recommended Comments

There are no comments to display.

×
×
  • Create New...