Indikatoren-Funktionen in Filtern nutzen

Inhaltsverzeichnis:

Nutzung von Indikatoren in Filtern

Wenn Funktionen Parameter erwarten, so wird automatisch eine Eingabehilfe aufgerufen, die hoffentlich selbsterklärend ist.
Es gibt dabei eine Reihe von nutzbaren Funktionen, wobei folgende Zuordnung genutzt wird:

Die Funktionen basieren immer auf einer Einstellungsgruppe, die unter im Hauptmenü im Hauptfenster unter Einstellungen / Indikatoren neu angelegt werden kann. Das Anpassen der Einstellungen kann dann direkt mit dem Button "Verändern" vorgenommen werden.

Es gilt immer folgende Semantik: 
Funktionsname(<IndikatorengruppeID>,<Suchraum als WKN oder varAll>,<Ergebnistyp>,<Ergebnis-Zeit-Punkt relativ mit 0,-1,-2 oder als toDate()>

ElementDetails
<Indikatorengruppe>

Für jede Indikatorengruppe wird immer eine Konstante angelegt z.B. varIGMittelfristigeEinstellungen mit varIG<Name>. Diese kann für die Referenzierung genutzt werden. Wichtig ist hierbei zu verstehen, dass spezifische Indikatorenparameter z.B. die Anzahl Tage für die Moving-Average-Berechnung Kurz und lang über die Indikatorengruppen gepflegt werden und nicht direkt als Berechnungsparameter mitgegeben werden. Dies erscheint im ersten Moment umständlich, vereinfacht aber Optimierungen im Chart (manuell), die sofort für die Filter gültig werden ohne zusätzliche Änderungen. Die Änderung der Werte zu einem Indikator kann auf sehr unterschiedlichem Wege erfolgen.

Mit diesem Indikatoren-Gruppen-Konzept sind die Indikatorenparameter in den Charteinstellungen, Filterberechnungen, Handelssystemen immer gleich und können dennoch unterschieden werden.

<Basiswert>Entweder <varAll> oder eine spezifische WKN eines Titels, was für die Berechnung verwendet werden soll
<Basisergebnis>

Als Funktionsergebniss ist folgendes erlaubt:

  • Ergebniswert(varEWert) - Als Ergebnis der Funktion wird der Wert der Funktion zum Tag X ausgegeben.
  • Zonenwert (varEZone) - Der Rückgabewert liegt zwischen 1 und 3 und nimmt als Basis das Funktionsergebnis. Die Einordnung in eine Zone erfolgt immer auf Basis der Einstellungen eines Indikators. Z.B. kann die Einordnung mittels Normalverteilung oder Gleichverteilung vorgenommen werden. Im Ergebnis werden die Werte über einem festgestellten oberen Schwellwert mit Zone=3 und Werte unterhalb eines errechneten Schwellwertes mit Zone=1 zurückgegeben.
  • Aktivierung (varEAktivierung) - Ähnlich des Prinzips der Fuzzy Logik, kann jeder errechnete Kauf/Verkaufszeitpunkt eines Indikators mit einer Verfallszeit eingestellt werden. Dies sorgt dafür, dass das Signal "ausschwingt" in den folgenden Tagen mittels einer tanh Funktion (1-tanh( 2*Zeit/Signale.Verfallszeit )). Die Signale sind somit mit abnehmender Zeit bis zum Verfallstag immer deutlich schwächer. Verkaufssignale ergeben werden zwischen -1 und 0 und Kaufsignale ergeben immer Werte zwischen 0 und 1. Den Verlauf der Signalmuster kann eingestellt werden unter den Optionen eines Indikators und betrachtet werden in einem Chart unter Aktivierung der Signalmuster mit:
  • Signaltyp/ Signalstärke (varESignaltyp)- Hier werden generierte Kauf-und Verkaufssignale mit -1 und 1 (Kauf) zurückgegeben. 

    Signaltyp und Signalstärke sind dabei synonym verwendet mit Ausnahme der Candlestickformationen.
    Candlestickformationen besitzen eine eigene Verwendung der Ergebnismengen mit:
    • Zonen sind immer = 0 ( es findet somit keine Berechnung statt)
    • Aktivierung = Signaltyp = 1 bei Kauf und -1 bei Verkauf
    • Wert = Typ der Formation entsprechend den definierten Variablen z.B. cCandleFHangingMan usw.
    • SigStaerke = Signaltyp*Candlestickformationen
<Ergebnis-Zeit-Punkt relativ mit 0,-1,-2 oder als toDate()>Das Ergebnis eines Indikators kann relativ betrachtet zurückgegeben werden d.h. z.B. -2 von vor 2 Handelstagen. Mittels Übergabe der toDate-Funktion ist auch ein absolutes Datum nutzbar.

Bei Ausführung des Filters sollte man bei Unstimmigkeiten oder zur Kontrolle den Detail-Log-Level aktiviert haben. Hier sind dann die Rückgabewerte der Funktionen prüfbar.


Besondere Indikatoren und dessen Nutzung

Neuronale Netze für Kursprognose

Die Neuronalen Prognose-Netze können in einem Filtersystem genutzt werden. Der Zugriff erfolgt immer über die NNPrognose - Funktion, unabhängig vom genutzter Netz.

  • NNPrognose(ID des Netzes,Wert (z.B. valAll),Zielwert (z.B.varPrognoseHeute))

Bei der Nutzung eines solchen Ausdruckes, wird im Programm automatisch durch einen Assistenten die möglichen Parameter, IDs zusammengestellt.


Herleitung zusammen mit einem Chart-Indikator-Bild

Zielstellung

Das Ziel ist es einen Filter zu erstellen, der mir die Aktien heraussucht, die ADX > 30 über die letzten 14 Tage hatte. Die Herleitung sollte hier am einfachsten visuell erfolgen können. Die Einstellungen von Indikatoren werden immer in Indikatorengruppen gespeicher, d.h. möchte man ein und derselben Indikator auf unterschiedliche Zeiträume vergleichen, muss man entsprechende Indikatorengruppen bilden und diese im Filter entsprechend nutzen. Nachdem man einen neuen Filter erstellt hat und eine UND-Bedingung sowie eine einfache Bedingung im Baum angelegt hat, geht man per Doppelklick auf die neue Bedingung in den Editor. In diesem Bedingungseditor, kommt man durch Eingabe von "DMI" sofort in den Wizard.

Hier kann man nochmals die Parameter des Indikators erkennen und verändern (Button Verändern). Wichtig ist die ganz untere Zeile, die dem eigentlichen Funktionsaufruf bildet, d.h. es gilt folgende Semantik

Funktionsname(<IndikatorengruppeID>,<Suchraum als WKN oder varAll>,<Ergebnistyp>,<ErgebnisPunkt relativ mit 0,-1,-2 oder als toDate()>)

Wichtig ist hier vor allem den Ergebnistyp zu verstehen.

Diesen Ergebnistyp kann man gut im Chart vergleichen und erkennen. Wert resultiert hier aus der Indikator-Ergebnislinie (graue) und wird bei Mausbewegung auch direkt angezeigt mit Wert. Der Zonenwert liegt zwischen 1-3 und kann für bestimmte Auswertungen helfen, da die Zonenberechnung unterschiedliche Methoden erlaubt die über ein >MinWert und <MaxWert hinausgehen. Der Aktivierungsgrad liegt zwischen -1 und 1 und entspricht nachlaufenden Kauf-und Verkaufssignalen, d.h. wenn ich nicht umständlich prüfen will ob ein Indikator ein Kaufsignal in den letzten 5 Tagen gebildet hat (womit ich ja DMI(....,-1) | DMI(...,-2) usw. schreiben müsste kann ich die Verfallszeit eines Signals einstellen z.B. auf 5 Tage. So länger der Wert her ist um so schwächer wird er. Dies ist im Chartbild auch gut zu erkennen.

Das Signal selber wird im Chart über rote und grüne Pfeile dargestellt. Die Signalumgebung kann erzeugt werden mit Richtungsänderung, Nullinienschnittpunkt usw. Da die Indikatoren unterschiedlich ausgelegt werden können, habe ich die Signalumgebung entsprechend flexibel ausgelegt. Der Signaltyp wird im Normalfall im 1 für Kauf und -1 für Verkauf sein. Für spezielle Indiaktoren wie die Candlestickformation sind zusätzliche Zuordnungen über Konstanten erlaubt. Die Signalstärke bei Candlestickformationen ergeben dabei statisch (siehe Hilfe für Candlesticks) festgelegte Rückgabewerte im Bereich 1-5.

Für Ihr Beispiel ergibt sich somit (14 Tage muss in der Indikatorengruppe eingestellt werden und ist damit auch automatisch für die Chartdarstellung gültig -> deshalb können die Indikatoren nicht direkt verändert werden)

DMIADXADXR(1,varAll,varEWert,0)>30 

Etwas schöner geschrieben wäre auch

DMIADXADXR(varIGMittelfristigeEinstellungen,varAll,varEWert,0)>30 

möglich.


Alle Indikatorengruppe werden dabei als Konstanten mit "varIG<Name>" abgelegt. Der Wizard arbeitet aber bewußt mit technischen Nummern, da diese weniger anfällig gegen Umbenennungen sind.