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