borsaholic
Mitglied seit
12 Jahre 9 Monate

Metastock: Täglich Stochastic Weekly berechnen

Hallo Leute,

mit Metastock möchte ich die Stochastik auf Wochenbasis täglich berechnen lassen und so, dass die %K Perioden und %D getrennt berchnet werden. Zunächst schreibe die Formeln in den Indicator Builder und dann lasse diese getrennt im Explorer ausrechnen.

Da ich diese Wochenstochastik mit der täglichen vergleichen möchte (gleiches gilt für den RSI), muss es doch möglich sein, diese im Explorer auszurechnen.
Folgendes hatte ich modifiziert:

{Weekly Stochastic Osc EMA}
{This indicator uses the Equis Forum DLL}
{Roy Larsen, 2004-2007}

{User settings}
K:={Weekly Stochastic %K, Periods}14;
N:={%K Slowing, Periods}3;
R:={%D SMA, Periods}3;
Q:={Mode}1;
{0, update at last bar of current frame}
{1, update on each new bar}
{2, update on first bar of new frame}

{Weekly frame timing}
{* Day counter from metastock@wabbit.com.au}
M:=Month();A:=Int((14-M)/12);D:=DayOfMonth();
Y:=Year()+4800-A;B:=M+(12*A)-3;
M:=D+Int((2+153*B)/5)+(365*Y)+Int(Y/4)-Int(Y/100)+Int(Y/400)-32045;
{*}I:=Int(M/7);
I:=I-ValueWhen(2,1,I);
G:=LastValue(Lowest(Sum(I>0,5))=5);M:=G+I;
F:=G+(M=0)*ExtFml("Forum.Sum",Ref(I,1),1);
A:=LastValue(Cum(1)-1)=Cum(1);
B:=Alert(A,2)*(A=0);
J:=If(F,1,If(Alert(F,2)=0 AND M,2,0));
J:=If(A+LastValue(J)>2 OR B+(Q=1)=2,1,J);
J:=If(G,1,If(Q=2 OR Cum(J)<=1,M*2,J));

{Weekly prices}
Hw:=HighestSince(1,M,H);
Hw:=ValueWhen(1,J,If(J=1,Hw,ValueWhen(2,1,Hw)));
Lw:=LowestSince(1,M,L);
Lw:=ValueWhen(1,J,If(J=1,Lw,ValueWhen(2,1,Lw)));
Cw:=ValueWhen(1,J,If(J=1,C,ValueWhen(2,1,C)));
Hw:=ValueWhen(1,Hw>0,Hw);
Lw:=ValueWhen(1,Lw>0,Lw);

{Calculate Weekly Stochastic/EMA and plot results}
Z:=Cum((Cw-LowestSince(K,J,Lw))*(J>0));
Z:=Z-ValueWhen(N+1,J,Z);
I:=Cum((HighestSince(K,J,Hw)-LowestSince(K,J,Lw))*(J>0));
I:=I-ValueWhen(N+1,J,I);
I:=ValueWhen(1,Cum(I>0)>0,I);
X:=100*Z/I; A:=2/(1+R);
X:=ValueWhen(1,Cum(J>0)>=K+N,X);
Y:=PREV*If(J,1-A,1)+If(J,X*A,0);
Y:=ValueWhen(1,Cum(J>0)>=K+N+R,Y);
X; {%K}
Y; {%D}

den Explorer auf Weekly umgeschaltet bekomme ich zwar das Ergebnis von
R:={%D SMA, Periods}3;
heraus, aber nicht von
K:={Weekly Stochastic %K, Periods}14;
N:={%K Slowing, Periods}3;
und schon gar nichts, wenn ich den Explorer auf täglich umschalte.

Kann mir hier eine/r helfen? Wo liegt das Problem?

Im voraus vielen Dank.

Geschrieben von borsaholic am
metatrader
Mitglied seit
12 Jahre 9 Monate

@ borsaholic [#1]

Das Problem liegt wohl zunächst einmal darin, dass die Formel von Wabbit aus täglichen Daten die Wochendaten ermittelt. Sollte die Formel korrekt sein, musst du im Explorer die Funktion von Wabbit einfach mit der "Standard" Stochastik vergleichen.

Nicht auf Wochenbasis umstellen, sondern mit Tagesdaten vergleichen.

borsaholic
Mitglied seit
12 Jahre 9 Monate

Hallo Metatrader,

die Formel sieht so aus, da ich lediglich %K und zunächst nicht oder gesondert %D (time periods) berechnen will:

{Weekly Stochastic Osc EMA}
{This indicator uses the Equis Forum DLL}
{Roy Larsen, 2004-2007}

{User settings}
K:={Input Weekly Weekly Stochastic %K, Periods}14;
N:={Input %K Slowing, Periods}3;
{R:={Input %D SMA, Periods}5;}
Q:={Mode}1;
{0, update at last bar of current frame}
{1, update on each new bar}
{2, update on first bar of new frame}

{Weekly frame timing}
{* Day counter from metastock@wabbit.com.au}
M:=Month();
A:=Int((14-M)/12);
D:=DayOfMonth();
Y:=Year()+4800-A;
B:=M+(12*A)-3;
M:=D+Int((2+153*B)/5)+(365*Y)+Int(Y/4)-Int(Y/100)+Int(Y/400)-32045;
{*}I:=Int(M/7);
I:=I-ValueWhen(2,1,I);
G:=LastValue(Lowest(Sum(I>0,5))=5);M:=G+I;
F:=G+(M=0)*ExtFml("Forum.Sum",Ref(I,1),1);
A:=LastValue(Cum(1)-1)=Cum(1);
B:=Alert(A,2)*(A=0);
J:=If(F,1,If(Alert(F,2)=0 AND M,2,0));
J:=If(A+LastValue(J)>2 OR B+(Q=1)=2,1,J);
J:=If(G,1,If(Q=2 OR Cum(J)<=1,M*2,J));

{Weekly prices}
Hw:=HighestSince(1,M,H);
Hw:=ValueWhen(1,J,If(J=1,Hw,ValueWhen(2,1,Hw)));
Lw:=LowestSince(1,M,L);
Lw:=ValueWhen(1,J,If(J=1,Lw,ValueWhen(2,1,Lw)));
Cw:=ValueWhen(1,J,If(J=1,C,ValueWhen(2,1,C)));
Hw:=ValueWhen(1,Hw>0,Hw);
Lw:=ValueWhen(1,Lw>0,Lw);

{Calculate Weekly Stochastic/EMA and plot results}
Z:=Cum((Cw-LowestSince(K,J,Lw))*(J>0));
Z:=Z-ValueWhen(N+1,J,Z);
I:=Cum((HighestSince(K,J,Hw)-LowestSince(K,J,Lw))*(J>0));
I:=I-ValueWhen(N+1,J,I);
I:=ValueWhen(1,Cum(I>0)>0,I);
X:=100*Z/I; {A:=2/(1+R);}
X:=ValueWhen(1,Cum(J>0)>=K+N,X);
Y:=PREV*If(J,1-A,1)+If(J,X*A,0);
Y:=ValueWhen(1,Cum(J>0)>=K+N,Y);
X; {%K}
{Y: (%D)}

Deinen Hinweis "nicht auf Wochenbasis um[zu]stellen, sondern mit Tagesdaten [zu] vergleichen" habe ich gemacht. Da kommt aber N/A heraus, also keine Ergenisse.
Wende ich die komplette Formel, mit %D an (Fett markiert), zeigt er mir plötzlich Ergebnisse, aber halt von %D an.

Ich hoffe, ich konnte das Problem klar schildern?
Ich möchte also die Ergebnisse auf Wochenbasis von %K und %D gesondert explorieren und diese mit den Tageswerten vergleichen, indem ich, wie du sagtest, die Option auf Daily im Explorer umstelle.

Viele Grüße und Danke (allen)

borsaholic
Mitglied seit
12 Jahre 9 Monate

Neues aus obigem posting:

Stelle ich die Werte zur Berechnung von lediglich %K wieder um):
K:={Input Weekly Weekly Stochastic %K, Periods}5;
N:={Input %K Slowing, Periods}3;
{R:={Input %D SMA, Periods}3;}

gibt mir der Explorer auf daily-basis tatsächlich Werte heraus. Sobald ich die aber wieder umstelle, z.B auf 14,3,3 geht wieder gar nichts mehr.

Wo liegt das Problem?

Liegt es daran, dass er die ExtFml("Forum.Sum" nicht erkennt, obwohl ich die "Forum.dll" ins Programmfolder kopiert habe?

Weitere Grüße

metatrader
Mitglied seit
12 Jahre 9 Monate

@ borsaholic [#4]

Ob der Fehler in der Fourm.dll liegt kann ich nicht sagen, ich weiß aber das er mit der TMW.dll klappt. Gibt es gratis für die Kunden von Terminmarktwelt.

Rückrufservice
Beschreiben Sie bitte Ihr Anliegen, damit wir uns auf den Rückruf vorbereiten können.
Ja, ich habe die Datenschutzerklärung zur Kenntnis genommen und willige ein, dass die von mir angegebenen Daten inklusive der Kontaktdaten zwecks Bearbeitung der Anfrage und für den Fall von Anschlussfragen elektronisch erhoben und gespeichert werden. Meine Daten werden dabei nur streng zweckgebunden zur Bearbeitung meiner Anfrage genutzt und nicht ohne Einwilligung weitergegeben. Diese Einwilligung kann jederzeit mit Wirkung für die Zukunft widerrufen werden.

Register now

Jetzt registrieren und ZMP Live+ 14 Tage kostenlos testen!
  • Dauerhaft kostenfrei
  • Keine Zahlungsinformationen erforderlich
Hilfe?