Vielleicht hat der Ein oder Andere "Trading with the Odds" gelesen. In dem Buch stellt Kase den mysteriösen Peak Oscillator vor, der eine Verbesserung traditioneller Momentum Indis sein und zuverlässig Divergenzen erkennen soll.
Ich hab ein wenig rumprobiert, bin aber auf keinen grünen Zweig gekommen. Auf dem Netz gibt es diverse Versuche den Indi nachzubauen. Ich kopier mal rein was ich gefunden hab.
Quelle:
http://trader.online.pl/MSZ/e-w-Kase_Peak_Oscillator.html
Der erste ist für Metastock. Ich hab soweit möglich den Code übersetzt. In geschweiften Klammern jeweils der orig Met Code, drunter meine Übersetzung. An vier Stellen hakt es,
1) Ich weiß nicht wie den 'Input' Befehl korrekt übersetzen
2) Der StdAbw verarbeitet keine Berechnung im Perioden Feld
3) INV verarbeitet im ATR Indi nur Zahlen, keine Formeln
4) Der farbliche Aufruf am Ende finde in INV nicht statt, wie krieg ich also den Indi geplottet?
{*******************KASE_PEAK_OSCILLATOR***************}
{Per1:=Input("max length",10,100,30);}
{INVESTOX:}calc per1: ???? {Hier ist das erste Problem}
{RWH:=(H-Ref(L,-Per1))/(ATR(Per1)*Sqrt(Per1));}
{INVESTOX:}calc RWH: (High-ref(low,-Per1))/(ATR(Per1)*SQR(Per1)); {Weder Ref() noch ATR() verarbeiten in INV Formeln???}
{RWL:=(Ref(H,-Per1)-L)/(ATR(Per1)*Sqrt(Per1));}
{INVESTOX:}calc RWL: (ref(High,-Per1)-Low)/(ATR(Per1)*SQR(Per1));
{Pk:=Mov((RWH-RWL),3,W);}
{INVESTOX:}calc Pk:GD(RWH-RWL,3,w);
{MN:=Mov(Pk,Per1,S);}
{INVESTOX:}calc MN:GD(Pk,Per1,S);
{SD:=Stdev(Pk,Per1);}
{INVESTOX:}Calc SD;StdAbw(PK,Per1,1); {Hier ist das zweite Problem: INV hat NOCH DEN PARAMETER 'FAKTOR'. EINFACH AUF 1 SETZEN??? AUSSERDEM WIRD IM IN INV PERIODEN FELD KEINE VARIABLE VERARBEITET}
{Val1:=If(MN+(1.33*SD)>2.08,MN+(1.33*SD),2.0
;}
{INVESTOX:} calc Val1: If(MN+(1.33*SD)>2.08,MN+(1.33*SD),2.0;
{Val2:=If(MN-(1.33*SD)<-1.92,MN-(1.33*SD),-1.92);}
{INVESTOX:} calc Val2:If(MN-(1.33*SD)<-1.92,MN-(1.33*SD),-1.92);
{LN:=If(Ref(Pk,-1)>=0 AND Pk>0,Val1,If(Ref(Pk,-1)<=0 AND Pk<0,Val2,0));}
{INVESTOX:} calc LN:LN:=If(Ref(Pk,-1)>=0 AND Pk>0,Val1,If(Ref(Pk,-1)<=0 AND Pk<0,Val2,0));
{Red:=If(Ref(Pk,-1)>Pk,Pk,0);
Green:=If(Pk>Ref(Pk,-1),Pk,0);
Red;
Green;}
{Hier ist das vierte Problem, ich hab einfach mal die beiden Aufrufe kombiniert, geht das so:?}
{INVESTOX:} calc oszi: If(Ref(Pk,-1)>Pk,Pk,If(Pk>Ref(Pk,-1),Pk,0))
oszi
{Bis hierhin der eigentliche Oszillator, jetzt brauchen wir noch die Triggerline, dazu muss in INV leider ein zweiter Indi erstellt werden}
___________________________________________
{Zweiter Indi, Die Triggerline; dazu braucht man leider wieder den ganzen obigen Quatsch, also reinkopieren, dann:}
{LN:=If(Ref(Pk,-1)>=0 AND Pk>0,Val1,If(Ref(Pk,-1)<=0 AND Pk<0,Val2,0));}
calc LN:LN:=If(Ref(Pk,-1)>=0 AND Pk>0,Val1,If(Ref(Pk,-1)<=0 AND Pk<0,Val2,0));
LN
{*****************************ENDE*****************************}
Wenn ich es richtig sehe, müßte LN die Triggerlinie in dem Chart sein. Idee ist, wenn der Oszillator die Triggerlinie kreuzt, liegt ein Peak-out vor, der mit hoher Wahrscheinlichkeit ein Top oder einen Boden indiziert.
Mein Problem mit dieser Implementation ist, daß Kase von einem 'selbst-optimierenden' Indikator schreibt. Der Konsens ist, daß dazu eine Schleife zur Werteoptimierung gefahren wird, was ja anscheinend in INV nicht möglich ist. Das kann ich aber oben nicht erkennen. Die einzige Dynamik in obigem Code liegt inder Benutzung der ATRs Müßte man daß dann wohl extern programmieren?
Dazu habe ich Code für die Tradestation gefunden, den ich aber ehrlich gesagt nicht kapiere. Also vielleicht hat's ja einen Omega Spezi, der Licht in die Sache bringen kann?
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »pit2« (28. Juli 2006, 11:24)