Einloggen Suche | Aktive Themen
Trendfolge individuell definiert Optionen
Steffen Vohswinkel
Geschrieben: Saturday, June 15, 2013 1:53:19 PM

Gruppen: Kunde

Beiträge: 371

Tai-Pan End-of-Day
Hallo Michael,

das Programm ist eine zufällig entstandene Zwischenlösung, die ich für interessant halte.
Und es wurde ja gewünscht mitzuarbeiten.
Die 8% Auf- oder Abschlag fallen nur nach einem Trendwechsel zum Open der Folgewoche an.
Beleibt der Trend in der Folgewoche erhalten, dann wird ab der neuen Folgewoche die Schwankungsbreite auf- oder abgeschlagen.
Das gilt für einen Wechsel von einem Trend in einen anderen bzw. bei Beibehaltung des jeweiligen Trends.
Das ist logisch klar. Programmtechnisch macht die Schleifenkonstruktion etwas Arbeit.
Den 2-farbigen Indikator kann man der L+P Tai-Pan-Formel "GD 2 Farben" entnehmen und ein bissel anpassen. Deshalb ist es sehr lohnenswert die Formeln der Tai-Pan-Formelbibliothek abzusuchen, wenn man etwas entwickeln will oder wenn man vorhandene Anwendungen anschauen möchte.

Schöne Grüße
Taxus
Juergen Gerdes
Geschrieben: Wednesday, June 26, 2013 4:48:47 PM
Gruppen: Kunde

Beiträge: 39

Hallo Zusammen,
nachdem die größte Hitze verflogen ist, wollen wir an der Umsetzung weiter arbeiten? Schreibt mal kurz euere Meinung ins Forum. Danke!

Viele Grüße

Jürgen
Michael
Geschrieben: Wednesday, June 26, 2013 9:16:18 PM
Gruppen: Kunde

Beiträge: 104

Tai-Pan End-of-Day
Hallo Jürgen,

ich bin schon noch dran und tüftle jeden Tag etwa 1-2 Stunden.
Dank der Beiträge von Taxus hab ich jetzt auch die Sache mit den Schleifen kapiert.
Das Programm von Taxus habe ich aber erst verstanden, nachdem ich die kryptischen Variablen in mir genehme, verständliche Kürzel übersetzt habe.

Wenn eine Kurve im Sinne von Bernd Vogel herauskommt, stelle ich das Programm natürlich hier rein.


Michael
Juergen Gerdes
Geschrieben: Wednesday, June 26, 2013 10:17:43 PM
Gruppen: Kunde

Beiträge: 39

Hallo Michael,
vielen Dank für deine Rückmeldung. Würdest du bitte einzelne Schritte kommentiert ins Forum stellen? Nur so können wir / ich etwas lernen.

Viele Grüße

Jürgen

PS Bin die nächsten 2 Tage offline
Michael
Geschrieben: Thursday, June 27, 2013 10:58:20 AM
Gruppen: Kunde

Beiträge: 104

Tai-Pan End-of-Day
Hallo Jürgen,

ist es ok, wenn ich den aktuellen Stand des Programms hier erstmal einstelle, wie es ist, und wir es bei den ausführlichen Erklärungen der Schritte und Variablennamen im Programm belassen?

Detail- und Verständnisfragen dazu beantworte ich gern.
Aber wenn ich jetzt ausführlich jeden einzelnen Schritt auseinandersetzen soll, komme ich weder zur Sache selbst noch zu meinen anderen Aufgaben hier.

Programm Stand 27.6.13:

Op := Kurse.LesenNoSync(Symbol,"Open","Wochen"); // Spalte B auf Seite 4. Op = Openkurse (Wochenbasis)
Hi := Kurse.LesenNoSync(Symbol,"High","Wochen"); // Spalte C (S.4). Hi = Hochkurse (Wochenbasis)
Lo := Kurse.LesenNoSync(Symbol,"Low","Wochen"); // Spalte D (S.4). Lo = Tiefkurse (Wochenbasis)
Cl := Kurse.LesenNoSync(Symbol,"close","Wochen"); // Spalte E (S.4). Cl = Closekurse (Wochenbasis)
Gd := SMA(Cl,3); // Spalte G (S.4). Gd = Gleitender Durchschnitt
Hi7 := HHV(Hi,7); // Spalte H (S.4). Hi7 = 7-Wochen-Hoch
Lo7 := LLV(Lo,7); // Spalte I (S.4). Lo7 = 7-Wochen-Tief
Hi7_Lo7:= (Hi7 - Lo7) * 1.5; // Spalte J. Schwankungsbreite = 7-Wochenhoch Hi7 minus 7-Wochentief Lo7, multipliziert mit Faktor 1,5

SL := Op - Op * Para1/100; // >S.5 Punkt 1: Phasenwechsel von "S"hort auf "L"ong ("SL"). Para1 ist hier der eingeräumte 8%-Verlust nach Phasenwechsel.
LL := Hi7 - Hi7_Lo7; // >S.5 Punkt 2: Long-Phase. "L"ong auf "L"ong ("LL"). Vom 7-Wochenhoch (Hi7) wird die Schwankungsbreite (Hi7_Lo7) abgezogen.
LS := Op + Op * Para1/100; // >S.5 Punkt 3: Phasenwechsel "L"ong auf "S"hort ("LS"). Aufs Wochen-Open wird der eingeräumte 8%-Verlust (Short) aufgeschlagen.
SS := Lo7 + Hi7_Lo7; // >S.6 Punkt 4: Short-Phase. "S"hort auf "S"hort ("SS"). Aufs 7-Wochentief wird die Schwankungsbreite aufgeschlagen.

Op_n := Count(Op); // Op = Openkurse, n = Anzahl. Die Anzahl der Openkurse wird ermittelt. (Genaugenommen ist das Ergebnis die Anzahl der Closekurse. Leerfelder im Openarray werden mitgezählt)
Op_Dat1:= FirstDate(Op); // Op = Openkurs, Dat1 = erstes Datum. Liefert das Datum des ersten Kurseintrags von Open.
x_1 := IndexOfDateTime(Op,Op_Dat1); // x steht für "Index". Welchen Index hat der erste Openkurs?
// Hintergrund: oft sind Openkurse (wie auch High und Low) erst viel später in der Datenbank vorhanden, Closekurse immer schon zu Beginn. Erspart Rechenzeit.
Indi:array := leer; // Indi steht für Indikator. Das Array für den Indikator wird erstellt. Leer und bereit zur Aufnahme von Werten.
x_2 := x_1 + 1; // Der zweite Index. Für zweite Wertzuweisung zum Indikatorarray nötig.
x_3 := x_1 + 2; // x steht immer noch für Index lachen. Der 3. Eintrag (x_1 + 2) ist der erste, der auf beiden Vorgängerwerte Bezug nehmen kann. ( Vor- und VorVorwoche werden geprüft )
Indi[x_1]:= Op[x_1]; // Das Indikatorarray erhält seinen ersten Eintrag. Es soll der erste (x_1) des Openkurses (Op) sein. Basis für mögliche Vergleiche des Indi mit SMA 3 ("Gd").
Indi[x_2]:= If(Op[x_2] > Indi[x_1], Op[x_2],Indi[x_1]); // Der 2. Eintrag ins Indikatorarray: Der größere Wert von aktuellem [Op_x2] oder letztem Openkurs (Indi_x1 = Op_x1) wird vorgegeben.
// Erforderlich, um ab dem 3. Eintrag auf die beiden Vorwochen zurückzublicken und die Schleife entsprechend zu füttern.
//VWn_SL := Ref(Gd,-2) < Ref(Indi,-2) and Ref(Gd,-1) > Ref(Indi,-1); // VWn = VorWochen, SL = erst "S"hort, dann "L"ong (VorVorwoche Short, Vorwoche Long). Siehe Seite 5 Punkt 1 (Phasenwechsel von Short nach Long).
//VWn_LL := Gd[x-2] > Indi[x-2] and Gd[x-1] > Indi[x-1]; // VWn = VorWochen, LL = VorVorwoche "L"ong, Vorwoche "L"ong). Siehe Seite 5 Punkt 2 (beide Vorwochen Long, also Gd jeweils über dem Indikator).
//VWn_LS := Gd[x-2] > Indi[x-2] and Gd[x-1] < Indi[x-1]; // VWn = VorWochen, LS = VorVorwoche "L"ong, Vorwoche "S"hort). Siehe Seite 5 Punkt 3 (Phasenwechsel von Long nach Short).
//VWn_SS := Gd[x-2] < Indi[x-2] and Gd[x-1] < Indi[x-1]; // VWn = VorWochen, SS = VorVorwoche "S"hort, Vorwoche "S"hort). Siehe Seite 6 Punkt 4 (beide Vorwochen Short, also Gd jeweils unter dem Indikator).

For x:= x_3 to Op_n Do // Vom dritten bis zum aktuellen Open-Index mache folgendes
Begin // Leg los lachen
If Gd[x-2] < Indi[x-2] and Gd[x-1] > Indi[x-1] Then // Wenn die VorVorwoche Short war und die Vorwoche Long, dann...
Indi[x] := If(SL[x]>Indi[x-1],SL[x],Indi[x-1]); // ... weise dem aktuellen Index des Indikators den aktuellen SL-Wert zu, aber nur, wenn er gestiegen ist. Sonst nimm den Vorwert. (Short-Long: Open minus 8%)
Else
If Gd[x-2] > Indi[x-2] and Gd[x-1] > Indi[x-1] Then // ... wenn beide Vorwochen Long waren, dann...
Indi[x] := If(LL[x]>Indi[x-1],LL[x],Indi[x-1]) // ... weise dem aktuellen Index des Indikators den aktuellen LL-Wert zu ( = 7-Wochenhoch abzüglich der Schwankungsbreite )
Else // sonst...
If Gd[x-2] > Indi[x-2] and Gd[x-1] < Indi[x-1] Then // Wenn die VorVorwoche Long war und die Vorwoche Short, dann...
Indi[x] := If(LS[x]<Indi[x-1],LS[x],Indi[x-1]) // ... weise dem aktuellen Index des Indikators den aktuellen LS-Wert zu (Long-Short: Open plus 8%)
Else // sonst...
If Gd[x-2] < Indi[x-2] and Gd[x-1] < Indi[x-1] Then // ... wenn beide Vorwochen Short waren, dann...
Indi[x] := If(SS[x]<Indi[x-1],SS[x],Indi[x-1]) // ... weise dem aktuellen Index des Indikators den aktuellen SS-Wert zu ( = 7-Wochentief plus Schwankungsbreite )

End

Result1 := Indi; // trendfolgender Indikator nach Bernd Vogel



Ausgegeben wird der Indikator über und unter dem Daxkurs, es fehlen noch die 8%-Sprünge bei Schnitten des GD mit dem Indikator.

Für kritische Hinweise, Anregungen, Verbesserungen usw. wäre ich dankbar.


Michael

mitho
Geschrieben: Friday, June 28, 2013 1:20:37 PM

Gruppen: Kunde

Beiträge: 20

Tai-Pan End-of-Day
Hallo Michael,

zuerst einmal von mir recht herzlichen Dank für die Entwicklung des Indikators nach Vogel. Wenn man Dein Programm durchliest ist alles so logisch, aber das selbst zu konstruieren, da fehlen mir doch einige Kenntnisse.

Die Werte des Indikators vom DAX, MDAX und Bund-Future stimmen mit den Werten aus meiner Excel-Tabelle überein lachen. Leider wird z.B. beim TecDAX , beim Dow Jones Industrial oder auch bei Gold bei mir kein Indikator angezeigt. Result:=Indi:n.a. –
Es wird wohl der Indikator für die ersten beiden Kerzen im Chart gebildet, aber da kein SMA (3) bei diesen Wertpapieren am Ursprung errechnet werden kann, wird der Indikator nicht angezeigt. Kann man (Du) das Programm so programmieren, dass wenn SMA(3)= leer, der SMA einen Startwert erhält oder gibt es bessere Möglichkeiten?
Danke.

Es grüßt Dich recht herzlich
mitho
Michael
Geschrieben: Friday, June 28, 2013 8:21:54 PM
Gruppen: Kunde

Beiträge: 104

Tai-Pan End-of-Day
Hallo mitho,

das mit dem TecDax und dem Dow Jones kann ich hier nachvollziehen.
Funktioniert bei mir auch nicht mit dem Indikator Denk .

Ich habs mir grade auf die Schnelle im Debugger angesehen.
Am SMA3 liegts nicht, der ist ab Index 3 vorhanden.
Ein Fehler wird auch nicht ausgegeben.

Wo der Fehler ist, kann ich dir im Moment leider noch nicht sagen.

Ich weiß nicht, ob ich morgen dazu komme, aber sobald ich was weiß, melde ich mich wieder.


Schönes Wochenende,

Michael
Steffen Vohswinkel
Geschrieben: Saturday, June 29, 2013 11:16:41 AM

Gruppen: Kunde

Beiträge: 371

Tai-Pan End-of-Day
Hallo zusammen,

die Ursache werdet Ihr am besten rausbekommen, wenn Ihr den Programmablauf für die ersten
5-10 Kurse "durchbuggert".
Dann seht Ihr warum in das Indikatorarray keine Werte eigetragen werden.

Schöne Grüße
Taxus
Michael
Geschrieben: Saturday, June 29, 2013 4:12:38 PM
Gruppen: Kunde

Beiträge: 104

Tai-Pan End-of-Day
Hallo mitho,

du hattest recht:

Zitat:
aber da kein SMA (3) bei diesen Wertpapieren am Ursprung errechnet werden kann, wird der Indikator nicht angezeigt.


Der Fehler tritt auf, wenn der erste Openkurs mit dem ersten Closekurs zusammenfällt.
Dann wird vom Index 3 auf die beiden Vorindizes zurückgeblickt.
Der SMA3 ist da natürlich noch nicht errechnet worden.

Abhilfe kann man schaffen, indem man (wie beim Indikator, der die Openkurse zugewiesen bekommt) die ersten beiden GD-Indizes mit Ersatzwerten füttert.

Füge bitte unmittelbar vor der Schleife (For x:= ...) folgende Zeilen ein:

GD[1] := Cl[1]; // GD[1] = allererster Eintrag ins GD-Array. Ihm wird der erste Closekurs zugewiesen. Da der GD3 erst vom 3. Index ab gebildet wird, werden "Dummy"-Vergleichswerte für den Indikator
// für Index 1 und 2 benötigt für den Fall, daß der erste Openkurs mit dem ersten Closekurs auf den Index 1 fällt.
GD[2] := Cl[2]; // Da auch noch der 2. Index des GD-Arrays einen Dummy benötigt, wird ihm der Wert des zweiten Close-Index zugewiesen.



Dann sollte das mit dem (vorläufigen) Indikator auch bei Dow Jones und TecDax klappen.
Bei mir tut es das jetzt.


@Taxus
Dir möchte ich an dieser Stelle mal ein Riesenlob aussprechen.
Ich kann mir vorstellen, wieviele Stunden du an dem Programm gesessen hast.
Dazu hast du dir noch die Mühe gemacht, das alles ausführlich in Wort und Bild zu erklären.
Deinen Mega-Beitrag habe ich mir als handliche Broschüre ausgedruckt und bei passenden Gelegenheiten in ruhigen Augenblicken durchgelesen und zu verstehen versucht.
Das ist mir letztendlich auch gelungen.
Deine Anregungen bzgl. Debugger, Schleifen und indiziertem Ansprechen und Zuweisen von Arraywerten waren Neuland für mich.
Jetzt sind sie es nicht mehr.

Ich kann jedem, der die Formelsprache verstehen und anzuwenden lernen will, nur empfehlen, sich in solche Beiträge zu vertiefen.
Von hound dog und down up gibt es in anderen Threads ähnliche Perlen.


Michael
Steffen Vohswinkel
Geschrieben: Sunday, June 30, 2013 10:20:53 AM

Gruppen: Kunde

Beiträge: 371

Tai-Pan End-of-Day
Hallo zusammen,

mit dem SMA3 war mir klar, daß er erst ab dem 3. Wochenkurs gebildet wird.
Im Klartext bedeutet das, daß mit beginn der 3. Woche jeden Tag am 3. Wochenkurs gearbeitet wird. Erst am Ende des letzten Börsenwochentages steht er endgültig fest.

Das mußte ich bedenken, wenn ich das Handelssystem von Bernd Vogel zum 1. Open schon anwenden möchte.

Ich definiere dann fest, daß es mit einem Longtrend losgeht.
Man kann den beginn natürlich auch als Shorttrend festlegen oder einfach abwarten bis der reihe nach alle Voraussetzungen, SMA3 und die 7-Wochen-H/L´s vorliegen.
Wie schon beschrieben soll es aber bereits zum 1. Open beginnen.

Der 1. Indikatorwert wäre dann sofort das 1. Open minus 8%.

Dann mußte ich überlegen, ob ich die ganze Woche abwarten will wo der Wochenschlußkurs landet oder ob der Stopp-Loss sofort greifen soll. Ich habe mich dafür entschieden. Als Beispiel habe ich mir die Facebook-Aktie hergenommen. Ich hätte dort den Kursverfall vorzeitig gestoppt.
Man kann sich gut vorstellen, daß es hier gleich zu Anfang zu einem erheblichen Hin- und Her kommen kann, wenn die Kurse extrem volatil schwanken. Das ist aber eher die Ausnahme.

Den zweiten Kurs muß man dann auch noch separat betrachten.
Erst mit Begin der 3. Woche liegt der SMA vor. Das bedeutet, daß der Wochenschlußkurs bereits mit dem SMA3 verglichen werden kann.

Danach muß man bis zur 7. Woche warten bis man die Schwankungsbreite verwenden kann.
Auch dafür gilt es eine Lösung festzulegen.

Erst ab der 7. Woche geht es bis zum Ende normal in einer Schleife durch.
Um die 8% auf- oder abzuschlagen oder die Schwankungsbreite zu verwenden muß man dabei immer prüfen.

Ich habe eine Grafik für die ersten beiden Wochen in Arbeit. Die stelle ich dann hier rein.
Unsere Meinungen dazu werden allerdings ganz unterschiedlich ausfallen.
Die persönlichen Lösungen werden programmtechnisch aber ähnlich ausfallen.

Schöne Grüße
Taxus

Wird um Grafik ergänzt.

Michael
Geschrieben: Tuesday, July 2, 2013 11:46:56 AM
Gruppen: Kunde

Beiträge: 104

Tai-Pan End-of-Day
Hallo Jürgen,

gute Nachrichten: Das Brett ist gebohrt sunny .

Der Indikator steht, wenn ich das mit dem Bilderhochladen schaffe, stelle ich demnächst eine bebilderte Anleitung a la Taxus hier rein.
Habe das Programm etwas erweitert um wählbare Chartperioden, SMA, Hoch-/ Tief Bereiche, Farbwahl für den Indikator.

Standardeinstellung ist aber die Vorgabe von Bernd Vogel.


Michael
Juergen Gerdes
Geschrieben: Tuesday, July 2, 2013 2:46:43 PM
Gruppen: Kunde

Beiträge: 39

Applaus, Applaus für deine Meldung und für deine Arbeit, Michael!

An alle die bis hierhin mit gearbeitet haben, insbesondere Taxus, meine herzlichen Dank vorab! Ihr habt es an meinen Fragen gemerkt, ohne euch hätte ich die Nuss nie knacken können.

Ich würde es mir sehr wünschen, wenn diese gute Zusammenarbeit keine Eintagsfliege bliebe....


Jürgen
Michael
Geschrieben: Tuesday, July 2, 2013 10:05:27 PM
Gruppen: Kunde

Beiträge: 104

Tai-Pan End-of-Day
Hallo Jürgen,

ich stelle das Programm zum derzeitigen Stand wie angekündigt erstmal rein.
Der Weisheit letzter Schluß ist es noch nicht, es gibt noch Baustellen.

Fangen wir mit dem Reiter "Allgemein" an.


Hier zuerst die Anzahl der Parameter auf "6" stellen.
Dann der Reihe nach ganz rechts erst den jeweiligen Typ einstellen. Danach die Felder links ausfüllen.
Die Parameter werden von oben nach unten gezählt. Ist im Formeltext vom Para6 die Rede, ist es das 6. von oben, also das letzte.
(Leute, die schon 100x Indikatoren erstellt haben, mögen ein Auge zudrücken. Ich machs etwas ausführlicher für Anwender, die noch nicht ganz sattelfest sind)

Weiter zum Reiter "Formeltext" (Bild hier im Forum wäre unleserlich, daher Link)
Tid b - Formeltext
Wer es ernst meint und etwas lernen will, macht jetzt etwas Fingergymnastik und fängt an zu tippen.
Für die anderen hänge ich den Formeltext an den Schluß.

Reiter "Ausgabewerte":

Aus Platzgründen setze ich nur einen Punkt, weil im Chart sowieso der Kurzname des Indikators angezeigt wird. Man weiß also auch ohne Bezeichnung, um was es sich handelt.

Die anderen Reiter können bleiben wie sie sind.

Hier einige Bilder mit dem Indikator, zum Vergleich die pdf-Datei von Bernd Vogel verwenden.

Dax Wochenchart vom 30.Mai bis 12.Sept. 2003 (siehe Seite 6 Abb. 4)


Dax Wochenchart 1996 bis 2012 (siehe Seite 7 Abb.6)


SDax Wochenchart Feb.2009 bis Feb.2013 (siehe Seite 8 Abb.cool


Wenn der Indikator erstellt wurde und z.B. im Dax-Wochenchart angewendet werden soll, kommt folgende Abfragemaske:

Die Standard-Vorgabewerte entsprechen der Anleitung von Bernd Vogel.
Sie können aber individuell angepaßt werden.
Achtung:
In einem Tageschart wird der Indikator nicht angezeigt, wenn "Wochen" als Perioden eingestellt sind. Die Einstellung muß zur Chartart passen.

Unter "Farben" kann man sinnvollerweise eine etwas dickere Linie des Indikators wählen ("Breite:"):


Zum Schluß wie versprochen der Formeltext.
Er ist üppig kommentiert und sollte bei ausreichender Geduld und Ausdauer nachvollziehbar sein. Es ist trotzdem schwer, ich weiß.

{ Formel "Trendfolge individuell definiert" }
// Entwicklung: Bernd Vogel, veröffentlicht im Trader's 05/201 / Programmierung gewünscht von Jürgen Gerdes aus dem Tai-Pan-Forum / Periodenart: je nach Chart (Wochen im Wochenchart, Tage im Tageschart usw.)

Perioden := If(Para6 = 0,"Tage",If(Para6 = 1,"Wochen",If(Para6 = 2,"Monate",If(Para6 = 3,"Quartale",If(Para6 = 4,"Jahre","Perioden"))))); // die Periodenart nach Eingabefenster wird ermittelt (Parameter 6)

Cl := Kurse.LesenNoSync(Symbol,"Close",Perioden); // Spalte E (S.4). Cl = Closekurse (nach Periodenvorgabe)
Op := Kurse.LesenNoSync(Symbol,"Open",Perioden); // Spalte B auf Seite 4. Op = Openkurse (nach Periodenvorgabe)
Hi := Kurse.LesenNoSync(Symbol,"High",Perioden); // Spalte C (S.4). Hi = Hochkurse (nach Periodenvorgabe)
Lo := Kurse.LesenNoSync(Symbol,"Low",Perioden); // Spalte C (S.4). Lo = Tiefstkurse (nach Periodenvorgabe)
Gd := SMA(Cl,Para2); // Spalte G (S.4). Gd = Gleitender Durchschnitt, einfach, auf 3 Perioden (Standardvorgabe über Parameter 2; änderbar bei Aufruf des Indikators im Abfragefenster)
Hi7 := HHV(Hi,Para3); // Spalte H (S.4). Hi7 = 7-Perioden-Hoch (Standardvorgabe "7" über Parameter 3; änderbar bei Aufruf des Indikators im Abfragefenster)
Lo7 := LLV(Lo,Para3); // Spalte I (S.4). Lo7 = 7-Perioden-Tief (Standardvorgabe "7" über Parameter 3; änderbar bei Aufruf des Indikators im Abfragefenster)
SBr := (Hi7 - Lo7) * 1.5; // Spalte J. SBr = "S"chwankungs"Br"eite = 7-Periodenhoch Hi7 minus 7-Periodentief Lo7 (Standard, nach Parameter 3 änderbar), multipliziert mit Faktor 1,5

SL := Op - Op * Para1/100; // >S.5 Punkt 1: Phasenwechsel von "S"hort auf "L"ong ("SL"). Para1 ist hier der eingeräumte 8%-Verlust (Standardvorgabe über Parameter 1) nach Phasenwechsel.
LL := Hi7 - SBr; // >S.5 Punkt 2: Long-Phase. "L"ong auf "L"ong ("LL"). Vom 7-Periodenhoch (Hi7 - Standard; änderbar) wird die Schwankungsbreite (SBr) abgezogen.
LS := Op + Op * Para1/100; // >S.5 Punkt 3: Phasenwechsel "L"ong auf "S"hort ("LS"). Aufs Wochen-Open wird der eingeräumte 8%-Verlust (Short) aufgeschlagen (Parameter 1 = 8% Standardvorgabe)
SS := Lo7 + SBr; // >S.6 Punkt 4: Short-Phase. "S"hort auf "S"hort ("SS"). Aufs 7-Wochentief wird die Schwankungsbreite (SBr) aufgeschlagen.

Op_n := Count(Op); // Op = Openkurse, n = Anzahl. Die Anzahl der Openkurse wird ermittelt. (Genaugenommen ist das Ergebnis die Anzahl der Closekurse. Leerfelder im Openarray werden mitgezählt)
Op_Dat1:= FirstDate(Op); // Op = Openkurs, Dat1 = erstes Datum. Liefert das Datum des ersten Kurseintrags von Open.
x_1 := IndexOfDateTime(Op,Op_Dat1); // x steht für "Index". Welchen Index hat der erste Openkurs? Dieser wird an die Variable x_1 übergeben.
// Hintergrund: oft sind Openkurse (wie auch High und Low) erst viel später in der Datenbank vorhanden, Closekurse immer schon zu Beginn. Erspart Rechenzeit.
Indi:array := leer; // Indi steht für Indikator. Das Array für den Indikator wird erstellt. Leer und bereit zur Aufnahme von Werten.
x_2 := x_1 + Para2 - 2; // zum ersten Open-Index wird der festgelegte SMA-Wert abzgl. 2 hinzugezählt. Für diesen Zeitraum erhalten der Indikator und der Gd (falls leer) feste Vorgabewerte: Open und Close.
x_3 := x_2 + 1; // x_3 ist der Startindex zur Berechnung des Indikators, nachdem von x_1 (erster Openkurs) bis x_2 (letzer Index, bevor der eingestellte Gd selbst berechnet werden kann) der Indikator
// sowie (falls erforderlich) der SMA mit Open- bzw. Closekursen "versorgt" wurden
For x:= x_1 to x_2 Do // von x_1 (erster Openkurs) bis x_2 (letzter Index, bevor der SMA eigenständig errechnet wird) mache folgendes:
Begin // fang an
Indi[x] := If(Op[x]>0,Op[x],Cl[x]); // Dem Indikator ("Indi") wird der jeweilige Openkurs zugewiesen. ACHTUNG: Bei einigen geprüften Wertpapieren hatten die Openkurse zwischendurch sporadisch gefehlt.
// Folge davon war Fehlermeldung bzw. Anzeige n./a. Abhilfe: Bei fehlenden Openkursen werden ersatzweise die jeweiligen Closekurse verwendet!
Gd[x] := If(Gd[x] = Leer,Cl[x],GD[x]); // Dem GD wird der jeweilige Closekurs zugewiesen, aber nur, wenn er noch nicht errechnet wurde
End // fertig.

For x:= x_3 to Op_n Do // Vom Startindex des berechneten Indikators bis zum aktuellen Open-Index mache folgendes
Begin // Leg los lachen
If Gd[x-2] < Indi[x-2] and Gd[x-1] > Indi[x-1] Then // Wenn die VorVorwoche Short war und die Vorwoche Long, dann...
Indi[x] := SL[x] // ... weise dem Indikator ( Indi ) den aktuellen SL-Wert zu. (Short-Long: Open minus 8%)
Else // Sonst...
If Indi[x-1] < Gd[x-1] Then // ... wenn der Indikator gestern unter dem GD lag ( wir also Aufwärtstrend haben ), dann...
Indi[x] := If (LL[x] > Indi[x-1],LL[x],Indi[x-1]) // ... weise dem Indikator ( Indi )den aktuellen LL-Wert zu ( = 7-Wochenhoch minus Schwankungsbreite ), aber nur, wenn er größer ist als der gestrige Indikatorwert.
Else // Sonst...
If Gd[x-2] >= Indi[x-2] and Gd[x-1] <= Indi[x-1] Then // Wenn die VorVorwoche Long war und die Vorwoche Short, dann...
Indi[x] := LS[x] // ... weise dem Indikator den aktuellen LS-Wert zu (Long-Short: Open plus 8%)
Else // sonst...
If Gd[x-2] <= Indi[x-2] and Gd[x-1] <= Indi[x-1] Then // ... wenn beide Vorwochen Short waren, dann...
Indi[x] := If(SS[x] < Indi[x-1],SS[x],Indi[x-1]) // ... weise dem Indikator den aktuellen SS-Wert zu ( = 7-Wochentief plus Schwankungsbreite ), aber nur, wenn er kleiner ist als der gestrige Indikatorwert

End
// Debug
Color1 := If(Indi > C,Para5,Para4); // Farbe für Indikator: Indi über Close = Short = Rot(Standard, änderbar durch Parameter 5). Im Longtrend (Indikator unter Close) standardmäßig grün (änderbar durch Parameter 4)

Result1 := Indi; // trendfolgender Indikator nach Bernd Vogel


@Downup:
Danke für die verständliche Anleitung zum Hochladen von Bildern. Hat auf Anhieb geklappt lachen


Michael
Juergen Gerdes
Geschrieben: Sunday, July 7, 2013 12:52:52 PM
Gruppen: Kunde

Beiträge: 39

Hallo Michael, hallo Zusammen,
vielen Dank für eure (Mit)arbeit, mich hatte es ein wenig niedergeworfen, so dass ich erst heute dazu komme mir den letzten Post an zu sehen.

Frage, können Backtest und eine Kapitalkurve schon aus dem Indikator abgeleitet / dargestellt werden?

Viele Grüße

Jürgen
Michael
Geschrieben: Monday, July 8, 2013 7:50:53 AM
Gruppen: Kunde

Beiträge: 104

Tai-Pan End-of-Day
Hallo Jürgen,

Zitat:
Frage, können Backtest und eine Kapitalkurve schon aus dem Indikator abgeleitet / dargestellt werden?


Backtest mit Kapitalkurve sind m.W. keine Features, mit denen Tai-Pan glänzt.
Ich hatte schon den Gedanken, den Profittester "umzubauen", damit er nach Signalgenerierung nicht stur nach vorgegebenen Tagen oder Wochen ein Fazit zieht, sondern auch Ausstiegssignale berücksichtigt.

Es wäre aber nicht schlecht, wenn sich mal der ein oder andere hier mit beteiligen würde.
In jeder Gruft ist mehr Leben als in diesem Forum.


Michael
Steffen Vohswinkel
Geschrieben: Monday, July 8, 2013 10:42:03 AM

Gruppen: Kunde

Beiträge: 371

Tai-Pan End-of-Day
Hallo Michael,

das ist eine ganz großartige Leistung.
Hut ab. Ich habe mich ganz sehr darüber gefreut. lachen
Alles Gute und bis demnächst.

Backtest:
Michael, zum backtest ist es nur ein Katzensprung, und der ist ganz ganz leicht.
Löse Dich vom Profittester und versuche die einfachste Lösung.
Vielleicht auch mit Fragen.

Mit Lösungen so einfach reinstellen hab´ich´s nicht. Man muß dahinterkommen.
Auch wenn es L+P nicht anbietet, es ist wirklich easy und wird dann für jede Aufgabe
ein Kinderspiel. Schwer ist nur das Programm für das Handelssystem. Das erfordert, wenn es keine Abwandlung eines bereits bestehenden Programms ist immer zusätzlichen Aufwand.


Kapitalkurve:
Die Kapitalkurve ist dagegen wesentlich aufwendiger.

Man muß sich beide Aufgaben visuell vorstellen, und am Anfang über die Ergebnisse nachdenken.
Dann hat man es eigentlich schon.

Du schaffst das. Da bin ich mir sicher. Danach kannst Du alles in Tai Pan Machbare erledigen.
Nur Mut.

Mut sollten alle haben. Wir vergeben uns doch hier nichts und werden nur gewinnen.
Um so mehr Leute sich hier reinhängen, um so schneller können wir Lösungen erstellen.

Ich denke, daß Ihr vielleicht Euere Systeme nicht preisgeben wollt. Das müßt Ihr auf keinen Fall.
Denn einfache Systeme sind doch schon längst veröffentlicht. Und habt Ihr eine komplexeres System, dann braucht Ihr doch nur die Bausteine und ein paar Anpassungen dazu.

Fangt einfach an und macht ein bißchen mit. Ihr könnt auch alle denkbaren Fragen stellen.
Hier sind genug Leute, die gerne dabei sind.

Schöne Grüße
Taxus
Juergen Gerdes
Geschrieben: Thursday, August 1, 2013 2:49:49 PM
Gruppen: Kunde

Beiträge: 39

Hallo Zusammen,
ich habe versucht den Indikator auch über Fonds laufen zu lassen. Dabei km es immer zu einer Fehlermeldung.

Fehler in Zeile 30 Spalte 21
Index 1152 von "Op" ausserhalb des gültigen Bereichs von 1.1151.

---
Dabei ist die eigentliche Fehlermeldung (Zeile 30 Spalte 21) gleich gebliebne , während sich Index und gültiger Bereich geändert haben.

Hat jemand eine Idee wie dieser Fehler zu beheben ist?

Viele Grüße

Jürgen
Michael
Geschrieben: Wednesday, August 7, 2013 11:55:18 AM
Gruppen: Kunde

Beiträge: 104

Tai-Pan End-of-Day
Hallo Jürgen,

du könntest schon mal alle Wertpapiere, die Probleme machen, in einem Testordner ablegen.
Durch "Titel hinzufügen" können die Originale in ihrem Ursprungsordner bleiben.

Neues Indi-Programm inkl. Kapitalkurve kommt bald, dann kannst du das gleich an den Problemwerten ausprobieren.


Michael
Juergen Gerdes
Geschrieben: Wednesday, August 7, 2013 4:35:17 PM
Gruppen: Kunde

Beiträge: 39

Hallo Michael,
ich habe 64 Fonds "durchlaufen" lassen, bis auf den "DWS Europe Innovation " WKN 515240 haben alle Fehlermeldungen produziert.

Viele Grüße

Jürgen

Bin schon gespannt!
Michael
Geschrieben: Thursday, August 8, 2013 3:41:52 PM
Gruppen: Kunde

Beiträge: 104

Tai-Pan End-of-Day
Hallo Jürgen,

hattest du mal nachgeguckt, ob bei diesen Fonds der eine oder andere Openkurs gefehlt hat?

Hier aber erstmal das Update, das eigentlich mehr ein Upgrade ist...

Allgemein:
- lückenhafte Openkurse werden durch den jeweiligen Closekurs aufgefüllt
- fehlen die Openkurse durchgängig, werden NUR die Closekurse benutzt
- fehlen die Highkurse, wird der höchste Closekurs im eingestellten Zeitfenster verwendet
- sinngemäß das gleiche gilt für die Lowkurse

- der GD wird entsprechend der Vorwahl jetzt mit dem Indikator im Chart dargestellt.

- Periodenvorwahl (Tage, Wochen...) entfällt. Programm verwendet jetzt Charteinstellungen
(Tage im Tageschart, Wochen im Wochenchart usw.). War vorher auch fehlerursächlich, wenn
die Einstellung im Programm nicht mit der Charteinstellung zusammenpaßte.

- Es lassen sich die Indikatorkurve sowie 3 Kapitalkurven anzeigen, Auswahl = Parameter 1.
1) "Indikator Chart": Indikator wird nur für das aktuell im Chartmodul eingestellte Zeitfenster
berechnet (+ 100 Perioden Vorlauf). Spart viel Rechenzeit.
2) "Indikator Datenbank (DB)": Indikator wird ab dem ersten Openkurs in der gesamten Kurshistorie berechnet. Rechenintensiv. Aber nötig, wenn im Chart zurückgesprungen werden soll.
3) "Kapitalkurve (KK) Chart": Startkapital wurde am Chartanfang 1x investiert und entwickelt sich nach dem Indikator. Das aufgelaufene Kapital wird bei Kaufsignal erneut eingesetzt.
4) "KK Chart long": Hier wird im Rahmen des Chartbereichs das Startkapital bei jedem Kaufsignal investiert. Man sieht, wie sich jede einzelne Longphase auswirkt.
5) "KK DB": Startkapital wird zum ersten Indikatoreinsatz in der Kurshistorie 1x investiert. Zeigt, wie sich das eingesetzte Kapital über einen langen Zeitraum entwickelt hätte.

- Die Indikatorvorgaben lassen sich über die Parameter 2 bis 4 ändern. Standard = Vorgaben nach Bernd Vogel.
- Startkapital und Gebühren in % = Parameter 5 + 6 (bei allen Käufen und Verkäufen werden die Gebühren berücksichtigt).
- Indikator- und Kapitalkurven lassen sich individuell einfärben, Parameter 7 + 8.
- Wird Startkapital investiert, wird das in der Kapitalkurve farblich angezeigt (Parameter 9).

So sieht das dann z.B. aus:
Oben = Wochenkerzen mit Indikator und GD3 (Standard):



darunter 3 Kapitalkurven:
hellblau = "Kapitalkurve Chart long" (Parameter 1, Option 4)
blau = "Kapitalkurve Chart" (Option 3)
dunkelblau = "Kapitalkurve Datenbank" (Option 5)

Die beiden unteren Kurven sind identisch, unterschiedlich ist das aufgelaufene Kapital entsprechend den unterschiedlichen Laufzeiten.

Bist du noch aufnahmefähig? Denk

Ok, dann weiter mit der Erstellung des ganzen.

Chartmodul öffnen, irgendeinen Chart aufrufen, "Einfügetaste" drücken.
Im Fenster "Chartart und Indikatoren auswählen" links oben "Neu" drücken.
Folgendes eingeben:
Reiter ALLGEMEIN:

Zumindest Kurzname und Funktion sollten genauso übernommen werden, sonst funktioniert ein Aufruf dieses Programms z.B. aus dem Filtermodul später mal bei mir, aber nicht bei dir.
Dann wie gehabt erst die Anzahl der Parameter auf 9 stellen.
Für jedes dieser 9 Parameter zuerst den Typ anwählen, dann den Rest einfügen.
Wichtig:
Die Parameter werden im Programm namentlich angesprochen, nicht mit "Para1"usw.
Das heißt, daß sie exakt so benamt werden müssen, wie im Bild.
Kopiere folgendes in das jeweilige "Label"-Feld:

Indikator oder Kapitalkurve?
Anfangsstop?
Gd?
Perioden Hoch/Tief?
Startkapital?
Gebühren?
Farbe long?
Farbe short?
Farbe Einbuchung?

Ganz oben beim Parameter 1 füge folgendes ein (Bedeutung siehe weiter oben):

Indi_Chart;Indi_DB;KK_Chart;KKChart_long;KK_DB

Also NICHT wie im Bild ausgeschrieben, sondern mit Kürzeln.

Falls von L&P gerade jemand mitliest:
Bei enum-Parametern wie hier dem Parameter 1 verschwinden regelmäßig vom Ende her Buchstaben!
Klingt lustig, ist es aber nicht. Spätestens dann, wenn ganze Optionen weggefallen sind.
Je ausführlicher die Angaben sind, desto eher verschwindet was.

Daher die Kürzel.
Jürgen, du kannst trotzdem probeweise versuchen, die Kürzel auszuschreiben.
Vielleicht kriegt bei dir ja nichts die Schwindsucht.
Also:
Indikator_Chart;Indikator_Datenbank;...
Schreibweise ist hier gleichgültig.
Ob der Unterstrich zwingend ist, glaube ich auch nicht. Die Buchstaben schwanden bei mir mit oder ohne ihn.
Wichtig ist nur, daß die Optionen durch Semikolon getrennt sind und die Reihenfolge eingehalten wird.

Die anderen Werte wie Startkapital, Gebühren, Farben, Min-/Max-Werte usw. sind unkritisch bzw. sollten sowieso individuell angegeben werden.

Reiter FORMELTEXT

siehe Word-Datei
Formeltext TID Indi+KK
Wenn der Formeltext keine wirren Zeilenumbrüche enthält, kannst du ihn kopieren und im Formelfeld einfügen.
Wird der Text aber umgebrochen, stelle folgende Werte in Word ein:
Rand: 1cm (rechts + links)
Querformat
Breite 42cm, Höhe 55cm.

Hast du den Programmcode im Feld untergebracht, prüfe das Ganze mit dem grün/weißen Icon oben links (Formel testen - ALT-T).
Steht dann unten rechts "Test ok, 2 Ausgabewerte definiert", gehts weiter zum

Reiter AUSGABEWERTE

"Indi/Kap" deswegen, weil der erste Ausgabewert sowohl beim Indikator als auch bei den Kapitalkurven verwendet wird
(natürlich mit unterschiedlichen Werten wink)

Reiter MARKIERUNGSLINIEN bleibt jungfräulich.

Im Reiter ERWEITERTE EINSTELLUNGEN stellst du sinnvollerweise die Anzahl der Nachkommastellen (ganz oben) auf "2".

Schon fertig sunny !

Zur Anwendung ist noch zu sagen, daß die Indikatorvarianten natürlich im "Basisfenster" eingefügt werden.
Die Kapitalkurven bekommen jeweils "neues Fenster".

Nach "OK" kommt dann folgende Maske:


Hier im Auswahlfenster von Parameter 1 die gewünschte Option angeben.
Nach Wunsch auch Farben oder andere Parameter anpassen.

Im Reiter FARBEN kann unter "Breite" noch eine etwas dickere Linienstärke gewählt werden:



(Nicht "Default" wie hier).

Hab ich was vergessen? Glaube nicht.
... DOCH! Gebühren werden in % vom Startkapital angegeben. Die % hab ich vergessen.
Wer also bei 5000€ etwa 17€ Gebühren zahlt, kann die 0.3 stehenlassen.

So Jürgen, jetzt kannst du was tun.

Ich geh mich erstmal entspannen...


Michael


(Daß ich zeitnah wissen möchte, was deine 63 Fonds zum Programm sagen, brauche ich nicht zu erwähnen...)
Benutzer die diese Diskussion aktuell lesen
Guest

Powered by Yet Another Forum.net version 1.9.1.8 (NET v4.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.

Durch die Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zum Datenschutz finden Sie hier