Tai Pan Formelsprache Das Große

Transcrição

Tai Pan Formelsprache Das Große
Steffen Vohswinkel
Tai Pan Formelsprache
Das Große Programmierhandbuch
Zur Börsensoftware Tai Pan
®
Inhaltsverzeichnis
Inhaltsverzeichnis
Vorwort
Tai Pan Entwicklungen, Auftrags-Programmierung & Services
Copyright
Haftungsausschluß
Tai Pan Formelsprache - Das Große Programmierhandbuch
Allgemeines
Tai Pan Musterprogramm
Formel - Editor
Formel - Debugger
Schlüsselwörter & Farbkonzept
Kommentare
Variablen
Datentypen - Boolean, Integer, Double
Datentypen - Array, Kurs Array, Data Array, Color Array, Variable Array
Datentypen - Array Zusammenfassung aller Array-Typen
Datentyp - Zeichenkette
Datentyp - Konstanten
Operatoren
Klammern
Zuweisungsoperator
Ausdruck abschließen mit Semikolon
IF Anweisung
CASE Anweisung
WHILE Anweisung
DO WHILE Anweisung
FOR Anweisung
Mathematische Funktionen
Weitere Funktionen
Funktionen für Datum und Zeit
Funktionen für Zeichenketten
Funktionen für Konvertierungen
Funktionen für Dateibearbeitung
Funktionen für Kataloge
Funktionen für Katalogtitel
Funktionen für Kurse
Funktion Aktuelles Wertpapier
Funktion Aktueller A/D-Katalog
Funktionen für Charts
Funktionen mit "Stamm.Set" für Stammdaten
Funktionen mit "Stamm." für Stammdaten
Prozeduren und Funktionen selbst definiert
Interne Indikatoren mit einem Indikatorwert
Interne Indikatoren mit mehreren Indikatorwerten
Formeln - selbst erstellt
Befehle "Const", "Calc" und "Uses"
Namensräume
Formel - Einsatz
Formel - im Chartmodul
Formel - Ergebnisausgabe und das Schlüsselwort "Result"
Formel - Farben programmieren
Formel - für den Signalgeber im Chart
Formel - im Listenmodul
Formel - im Filtermodul
Stichwortverzeichnis
1
1
2
2
3
3
4
6
7
8
12
29
33
35
37
46
59
66
67
72
74
74
74
75
80
84
88
90
95
130
246
261
274
288
304
307
311
317
319
320
325
333
348
361
362
363
366
370
372
372
373
378
389
392
401
410
Vorwort
Vorwort
Liebe Leserin, lieber Leser,
"Das Große Tai Pan Programmierhandbuch" soll es Ihnen ermöglichen, die
Tai Pan Formelsprache gut zu verstehen, leicht zu lernen und sehr erfolgreich anzuwenden.
Ich wünsche Ihnen Mut und Ausdauer beim Erlernen der Tai Pan Formelsprache.
Gehen Sie es an, bleiben Sie am Ball und haben Sie Geduld. Der Erfolg wird sich ganz sicher
nach und nach einstellen. Sie werden schnell Fortschritte in der Anwendung der Formelsprache
von Tai Pan feststellen können. Wenn Sie anfangs nur kleine Aufgaben in Angriff nehmen,
werden Sie bald eigene Ideen haben, die Sie nach und nach besser umsetzen können. Ihr
Vorankommen in der Nutzung der Tai Pan Formelsprache wird Sie überraschen. Sie werden
mehr und mehr erkennen was Sie alles mit Tai Pan leisten können. Ihre Ideen und Aufgaben
werden zunehmend anspruchsvoller werden.
Das alles wird sich nachhaltig positiv auf Ihre Trading-Ergebnisse auswirken können.
Vielen Dank für Ihr Interesse an "Tai Pan Formelsprache - Das Große Programmierhandbuch".
"Tai Pan Formelsprache - das Große Programmierhandbuch" konnte mit freundlicher
Genehmigung der Lenz + Partner AG entstehen und herausgegeben werden.
Mein besonderer Dank gilt
-
Herrn Frank Rohmann
Frau Gabriela Galic
Herrn Marcus Lieck und
Herrn Christian Schwarz,
von der Lenz + Partner AG, die mir als Tai-Pan-Kunden in unzähligen Fragen gerne geholfen
haben.
Steffen Vohswinkel
Greifswald – Insel Riems
Tai Pan Entwicklungen, Auftrags-Programmierung & Services
Wünschen Sie, daß wir Ihre ganz persönlichen Ideen für
- Filter
- Signalsysteme
- Formeln
- Indikatoren
- Handelssysteme und
- Chartdesign
in Tai Pan Formelsprache umsetzen, oder möchten Sie die Formelsprache in Seminaren
erlernen, dann schicken Sie uns einfach unverbindlich Ihre Vorstellungen.
Wir werden Ihre Anfrage gerne prüfen und Ihnen nach Möglichkeit ein Angebot vorlegen.
Weitere Informationen erhalten Sie:
- im Internet unter
www.wertpapierhandelssysteme.de
- und bei E-Mail-Anfragen unter
[email protected]
2
Copyright
Copyright
"Tai Pan Formelsprache - Das Große Programmierhandbuch", 2011, Steffen Vohswinkel
Alle Rechte vorbehalten.
"Tai Pan Formelsprache - Das Große Programmierhandbuch" und die beiliegende CD dürfen aus
eigenen wirtschaftlichen und wirtschaftlichen Beweggründen Dritter nicht reproduziert und
weitergegeben werden.
Alle Warenzeichen, die im Programmierhandbuch und in Inhalten der beiliegenden CD
benutzt werden, sind Eigentum der jeweiligen Inhaber.
Haftungsausschluß
Das "Große Tai Pan Programmierhandbuch" soll Sie in die Lage versetzten, die Tai Pan
Formelsprache sicher erlernen und anwenden zu können.
Bitte haben Sie Verständnis dafür, daß wir ausdrücklich keine Haftung übernehmen für die
Ergebnisse, die Sie beim Studium des vorliegenden Buches erzielen werden.
Alle Beispiele, Formeln, Indikatoren, Handelssysteme und Signalsysteme, die wir im Buch
aufgenommen haben, sollen lediglich zum Erlernen der Tai Pan Formelsprache dienen.
Wir übernehmen auf keinen Fall eine Haftung für Ihre Ergebnisse, die Sie aus der Anwendung
von Formeln der Tai Pan Software / Tai Pan Programmbibliothek erzielen.
Wir übernehmen folglich auch keine Haftung für die Ergebnisse, die Sie aus der Anwendung
der Tai Pan Formelsprache erzielen werden. Das betrifft insbesondere von Ihnen erzielte
Verluste, entgangene und/oder nur ungenügend erreichte Gewinne, aus von Ihnen
abgeleiteten Handelsentscheidungen beim Kauf und Verkauf von Wertpapieren aufgrund
irgendwelcher Inhalte dieses Buches und der beiliegenden CD mit Formeln und
Anwendungsbeispielen.
Nutzen Sie das Buch einfach nur zum Erlernen der Tai Pan Formelsprache.
Vielen Dank.
Steffen Vohswinkel
3
Mathematische Funktionen
In Tai Pan gibt es eine Vielzahl mathematischer Formeln, die in der folgenden Übersicht
zusammengefaßt sind:
Abs (Werte: TYP): TYP;
ArcTan (Werte: TYP): TYP;
Ceil (Werte: TYP): TYP;
Berechnet den Absolutwert des Argumentes.
Berechnet den Arcus Tangens des Argumentes.
Gibt den kleinsten ganzzahligen Wert zurück,
der größer ist als der Wert.
Ceiling (Werte: TYP): TYP;
Gibt den kleinsten ganzzahligen Wert zurück,
der größer ist als der Wert.
Cos (Werte: TYP): TYP;
Berechnet den Cosinus des Argumentes.
Cum (Data: Array): Array;
Berechnet die kumulative Summe aller Werte
des Arrays Data.
Cum (Value: Integer): Array;
Berechnet ein Array mit aufsteigenden
Nummern im Abstand von Value, beginnend bei
Value. Die Anzahl der Elemente entspricht dem
Array für Close.
Exp (Werte: TYP): TYP;
Berechnet die Exponentialfunktion
"e hoch Werte", wobei e die Basis des
natürlichen Logarithmus ist.
Floor (Werte: TYP): TYP;
Gibt den höchsten ganzzahligen Wert zurück,
der kleiner ist als der Wert.
Frac (Werte: TYP): TYP;
Gibt die Nachkommastellen zurück.
Int (Werte: TYP): TYP;
Schneidet die Nachkommastellen ab.
Ln (Werte: TYP): TYP;
Berechnet den natürlichen Logarithmus von
Werte (Basis e).
Log (Werte: TYP): TYP;
Berechnet den natürlichen Logarithmus von
Werte (Basis e).
Max (Werte1: TYP; Werte2: TYP): TYP;
Gibt den größeren Wert von Wert1 und Wert2
zurück.
Min (Werte1: TYP; Werte2: TYP): TYP;
Gibt den kleineren Wert von Wert1 und Wert2
zurück.
Power (Werte: TYP; Exponent: Double): TYP; Berechnet Werte hoch Exponent. Der Exponent
kann kein ARRAY sein.
Pwr (Werte: TYP; Exponent: Double): TYP;
Berechnet Werte hoch Exponent. Der Exponent
kann kein ARRAY sein.
Prec (Werte: TYP; Precision: Integer): TYP;
Rundet Werte auf Precision Nachkommastellen.
Round (Werte: TYP): TYP;
Rundet den Wert zur nächsten ganzen Zahl.
Sin (Werte: TYP): TYP;
Berechnet den Sinus des Argumentes.
Sqr (Werte: TYP): TYP;
Berechnete das Quadrat von Werte.
Sqrt (Werte: TYP): TYP;
Berechnet die Quadratwurzel von Werte.
Tan (Werte: TYP): TYP;
Berechnet den Tangens des Argumentes.
Trunc (Werte: TYP): TYP;
Schneidet die Nachkommastellen ab und gibt
eine ganze Zahl zurück.
In der Übersicht wurde nur eine Musterfunktion für alle möglichen Syntax-Varianten einer
mathematischen Funktion notiert. Als Datentyp wurde deshalb nur "Typ" angegeben.
Für "Typ" können als Datentypen z.B. Double, Integer, Int64, Array, Single und Short stehen.
Für die einzelnen mathematischen Funktionen sind teils mehrere Syntax - Varianten möglich.
4
Mathematische Funktionen
Hinweis:
Achten Sie deshalb bitte auf die vorgegebenen Datentypen der Funktionsargumente und der
Funktionsergebnisse.
Syntax für mathematische Funktionen:
Es gibt zwei Syntax - Varianten für mathematische Funktionen:
Syntax-Variante 1 - Mathematische Funktionen mit einem Funktionsargument:
MathematischeFunktionName (ArgumentName:ArgumentDatentyp):ErgebniswertDatentyp
Syntax-Variante 2 - Mathematische Funktionen mit zwei Funktionsargumenten:
MathematischeFunktionName( ArgumentName1:ArgumentDatentyp1;
ArgumentName2:ArgumentDatentyp2 ): ErgebniswertDatentyp
ArgumentNamen:
Data, Data1, Data2, Exponent, Precision, Value, Value1, Value2,
Werte, Werte1
ArgumentDatenTypen:
Array, Double, Integer, Int64, Single, Short
ErgebnisDatentypen:
Array, Double, Integer, Int64, Single, Short
Hinweis:
Sobald Sie ein Schlüsselwort für eine mathematische Funktion in den Formeleditor eingeben,
werden Ihnen, über die Mausanzeige für das Schlüsselwort, alle Syntaxmöglichkeiten für die
gewählte Funktion angezeigt.
Beispiel: Für die mathematische Funktion "Max" werden 8 Syntax-Varianten angezeigt.
Bild 111: Syntax-Varianten bei Mausanzeige für die mathematische Funktion "Max"
Die in der Übersicht aufgeführten mathematischen Funktionen werden nun detailliert
5
Mathematische Funktionen
behandelt.
Mathematische Funktion "Abs"
Definition
Die Funktion "Abs" berechnet je nach Datentyp des Funktions-Argumentes (Array oder Wert)
Absolutwerte. Das sind positive Zahlen. Negative Zahlen werden also in positive Zahlen
umgewandelt.
Liegt die umzuwandelnde Zahl - generell außerhalb des Wertebereiches - bzw. erst außerhalb
des Wertebreiches nach Umwandlung des gewählten Datentyps, ist eine Umwandlung nicht
möglich.
Der Datentyp des Funktionsargumentes ändert sich durch die Funktion nicht.
Syntax Varianten
Abs (Data : Array)
Abs (Value: Double)
Abs (Value: Integer)
Abs (Value: Int64)
:
:
:
:
Array
Double
Integer
Int64
Formel-Beispiel
a := Mom(C,12);
b := Abs(a);
Bild 112: Kopie des Arrays "a" mit Indikatorwerten Mom(C,12)
Bild 112a: Array "b" mit Absolutbeträgen der Indikatorwerte Mom(C,12)
Beispielanwendungen in Formeln von Tai Pan
ABS(AdvIssues-DecIssues);
BT := SQRT(ABS(DIFF))*SIGN + PREV;
File.WriteLine(hFile, "!!!!
ersparter Verlust" +
DoubleToStr(SellPrice-LastPrice,2,5) + " " +
DoubleToStr(Abs(ProzentAbweichung(SellPrice, LastPrice)), 3, 3) + " %");
K := ((WC * 3) / AvgTR) * Abs(WCR);
wSum := Abs(wTP - wATP);
wSum := wSum + Abs(Ref (wTP, -i) - wATP);
Volatility := Sum(Abs(ROC(Close,1,$)),Para1);
6
Mathematische Funktionen
RisikoJeAktie := Abs(Para.KaufKurs - Para.StopKurs);
KursChance% := Abs(Para.ZielKurs / Para.KaufKurs * 100.0 - 100);
ABS(PLI);
wRAVI := Abs(Mov(C,Para1,S)-C2) / C2 * 100;
Y := Wilders(If(wROC<0,Abs(wROC),0),LastValue(Q));
Up := If(wRoc > 0, Abs (wMom), 0);
Down := If(wRoc < 0, Abs (wMom), 0);
S1 := Abs (H - Ref (C, -1));
wTRSI := 100*EMA(EMA(Mom(C,1),Para2),Para1)/EMA(EMA(Abs(Mom(C,1)),Para2),Para1);
wVHF :=(HHV(C,Para1) - LLV(C,Para1)) / Sum Abs(Mom(C,1)), Para1);
DiscountEuro:Double:=If(b, Abs(nBasis- nBrief), Leer);
Result:=(HHV(Data,Periods)-LLV(Data, Periods))/Sum(Abs(Mom(Data,1)),Periods);
Anwendung
Die Funktion "Abs" wird angewendet, wenn für eine Berechnung nur ein positiver Wert benötigt
wird und die Absolutwertberechnung sinnvoll ist.
Beispiele für eine Anwendungen sind
- Berechnungen mit Indikatoren (z.B. Momentum, ROC), deren Wertebereiche positive und
negative Werte annehmen können.
- Zyklus-Wellen mit der Cosinus und/oder der Sinus-Funktion und Nutzung der Absolutwerte
Anwendungsbeispiel
Die Berechnung einer Kapitalkurve.
Hier ist zur Berechnung des aktuellen Kurses der Kapitalkurve – bei Kursverlusten gegenüber
dem Vortag - der Absolutbetrag der negativen Kursveränderung vom Vortagskurs der Kapitalkurve abzuziehen.
Verwendung der Funktion "Abs" in Formeln von Tai Pan
Formel
Absolute Breadth Index (ABI)
ADX Custom
ADXR Custom
Bolton-Tremblay Indicator
B.O.S.S. Optimizer
Buying Pressure
Commodity Channel Index
Demand Index
Directional Index DX (Wilder)
Kaufman's Adaptive Moving Average
Money Management
Plurality Index
Formel
Rapid Adaptive Variance Indicator
Relative Momentum Index
Parabolic SAR
RMI
Selling Pressure
Swing Index
System Tester
True Strength Index
VIDYA_CMO
Library Zertifikate Funktionssammlung
Metastock(TM) Funktionssammlung
Rapid Adaptive Variance Indicator
Mathematische Funktion "ArcTan"
Definition
Die Funktion "ArcTan" berechnet je den Arcus Tangens des Funktionsargumentes.
Syntax Varianten
ArcTan (Data: Array)
: Array
ArcTan (Value: Double) : Double
Formel-Beispiel
X := ArcTan(22.0001);
// Ergebnis: X = 87.3974
7
Mathematische Funktionen
Beispielanwendungen in Formeln von Tai Pan
{Formel Atan OHLC Indicator}
Function Atan (D1: Array; D2: Array): Array;
Begin
Result := ArcTan (D1 / D2);
End;
A2 := Sum((O+H+L+C)/4,30);
A := Mov(Mov(Atan(Ref(A2,-15),A2),2,S),2,S);
B := Mov(Mov(Atan(A2,Ref(A2,-15)),2,S),2,S);
A;
B;
Anwendung
Die Funktion "ArcTan" gehört zu den trigonometrischen Funktionen für Berechnungen im
rechtwinkligen Dreieck. Sie ist eine Umkehrfunktion des Tangens.
Umkehrfunktionen werden verwendet, wenn aus den Seitenverhältnissen eines Dreiecks Winkel
berechnet werden sollen.
Der Tangens ist das Verhältnis von Gegenkathete zu Ankathete und liefert damit die Steigung.
Der ArcusTangens liefert den Winkel der Steigung.
Zu beachten ist, daß man jede Steigung (0 ≤ Steigung < 90°) berechnen kann, nur 90° nicht,
denn für 90° ist die Steigung unendlich.
Anwendungsbeispiel
In der Technischen Analyse kann die Funktion u.a. angewendet werden zur Berechnung
- der Anstiegswinkel von Indikatoren, Kurslinien und Trendlinien
- von Indikatoren z.B. den "Atan OHLC Indicator"
Verwendung der Funktion "ArcTan" in Formeln von Tai Pan
Formel
Atan OHLC Indicator
Mathematische Funktionen "Ceil" und "Ceiling"
Definition
Die Funktionen "Ceil" und "Ceiling" berechnen von einer rationalen Zahl des Datentyps Double
(ganze Zahl mit Dezimalstellen) den nächst größeren ganzzahligen Wert und geben diesen als
Double-Wert zurück.
Ganze Zahlen vom Datentyp Double ohne Dezimalstellen (hier Zahlen mit vier Nullen nach dem
Komma) bleiben unverändert.
Der Gegensatz zu "Ceil" und "Ceiling" ist die Funktion "Floor".
Syntax Varianten
Ceil (Data: Array)
: Array
Ceiling (Value: Double) : Double
Formel-Beispiel
8
Mathematische Funktionen
x := C;
y := Ceil (x);
Bild 113: Array "x" – Array-Kopie der Close-Werte
Bild 113a: Array "y" – mit Ceil-Funktion berechnet aus Array-Kopie der Close-Werte (Array "x")
Beispielanwendungen in Formeln von Tai Pan
Es sind keine Anwendungen bekannt.
Anwendung
Es ist keine Anwendung bekannt. Daher kann nur auf die Definition, das Formel-Beispiel und
die rein mathematische Anwendung verwiesen werden.
Anwendungsbeispiel
Es liegt kein Anwendungsbeispiel vor.
Verwendung der Funktionen "Ceil" und "Ceiling" in Formeln von Tai Pan
Es sind keine Tai Pan Formeln bekannt.
Mathematische Funktion "Cos"
Definition
Die Funktion "Cos" berechnet den Cosinus des Funktionsargumentes.
Syntax Varianten
Cos (Data: Array)
Cos (Value: Double)
Formel-Beispiel
{Formel Sin}
D := Cos (0);
D1 := Cos (45);
D2 := Cos (90);
debug
: Array
: Double
// Ergebnis: D = 1.0000
// Ergebnis: D1 = 0.7071
// Ergebnis: D2 = 0.0000
9
Mathematische Funktionen
result1:=1
Beispielanwendungen in Formeln von Tai Pan
Es sind keine Anwendungen bekannt.
Anwendung
Mit der Cosinus-Funktion kann man Zyklen-Wellen als Zyklen-Indikator gestalten.
Anwendungsbeispiel
Zyklus-Wellen mit der Cosinus-Funktion
x := Cos(Cosinuskurve)*500;
// Cosinuskurve = 1,2,... Kursanzahl
z := abs(cos(cosinuskurve1)*500)+ 1000; // Cosinuskurve1 = 1,2,... Kursanzahl
Bild 114: Cosinus-Zyklen-Wellen - Cosinus-Werte (unten) und Cosinus-Absolutwerte (oben)
Verwendung der Funktion "Cos" in Formeln von Tai Pan
Es sind keine Anwendungen bekannt.
Mathematische Funktion "Cum" - Array
Definition
Die Funktion "Cum" - Array berechnet die kumulative Summe aller Werte des Arrays Data.
Syntax:
Cum (Data: Array): Array
Formel-Beispiel: x := C;
10
Mathematische Funktionen
Bild 115: Array-Kopie "x" der Close-Kurse
11