Metastock: KAMA System
Hi Leute,
ich habe leider nicht allzu viel Erfahrung mit dem Systemtester von Metastock. Seit Stunden mühe ich mich jetzt ab, ein einfaches Trendfolgesystem zu erstellen.
Zwei kreuzende kama´s. Sollte eigentlich in 5 Minuten fertig sein. Das Manual von Metastock kann man nicht gerade als hilfreich bezeichnen.
Ein kama mit der Zeitperiode 10 kreuzt ein kama mit der Periode 20 von unten nach oben. Dann kaufen.
Nutze ich die Funktion des kama´s, kommt das raus:
cross( fml("kama"), fml("kama"))
Wo gebe ich da die Zeitperiode ein ?
Ändere ich das und schreibe den Code direkt in den Systemtester, bekomme ich immer irgendwelche Fehlermeldungen. Entweder fehlt eine Klammer oder ich bekomme die Meldung: this is not a reconized name.
cross((
Periods := 10
Direction := CLOSE - Ref(CLOSE,-periods);
Volatility := Sum(Abs(ROC(CLOSE,1,$)),periods);
ER := Abs(Direction/Volatility);
FastSC := 2/(2 + 1);
SlowSC := 2/(30 + 1);
SSC := ER * (FastSC - SlowSC) + SlowSC;
Constant := Pwr(SSC,2);
AMA := If(Cum(1) = periods +1, Ref(CLOSE,-1)+ constant * (CLOSE- Ref(CLOSE,-1)),PREV + constant * (CLOSE - PREV));
AMA
)
,
(
Periods := 20
Direction := CLOSE - Ref(CLOSE,-periods);
Volatility := Sum(Abs(ROC(CLOSE,1,$)),periods);
ER := Abs(Direction/Volatility);
FastSC := 2/(2 + 1);
SlowSC := 2/(30 + 1);
SSC := ER * (FastSC - SlowSC) + SlowSC;
Constant := Pwr(SSC,2);
AMA := If(Cum(1) = periods +1, Ref(CLOSE,-1)+ constant * (CLOSE- Ref(CLOSE,-1)),PREV + constant * (CLOSE - PREV));
AMA
))
Kann mir irgend jemand sagen, wie ich das richtig machen muss ?
Ich würde im Indikator-Builder den KAMA kopieren, im ursprünglichen KAMA die periods auf "10" setzen (in der Formel), im kopierten KAMA, z.B. KAMA1 die periods auf "20" (auch in der Formel).
Der Systemtester sollte nun funktionieren:
cross( fml("kama"), fml("kama1"))
Jetzt benötigst Du aber noch ein Ausstiegssignal, sonst funktioniert der Systemtest nicht.
Danke für den Tipp.
Die Umsetzung in dieser Art würde jedoch dazu führen, das eine Änderung der Zeitperioden sehr umständlich und aufwendig wäre.
Ich denke, ein Test verschiedener Zeitperioden durch den Systemtester wäre mithilfe dieser Lösung nicht umsetzbar.
Du hast natürlich Recht, das ein Ausstiegssignal noch fehlt. Mir geht es jedoch darum erst Einstiegssignale mit Metastock umzusetzen und die Qualität dieser Signale gesondert zu testen.
Die Ausstiegssignale sollen genauso isoliert überprüft werden.
Leider fehlt mir die Erfahrung, diese Problematik mit Metastock umzusetzen, da die Beschreibungen in dem Manual und im Internet sehr rudimentaer gehalten sind. Zur Zeit teste ich nach der alten Methode "try in error". Mit Testen meine ich die Umsetzung einer Idee in der Metastock Scriptsprache, nicht die Idee an sich. Insofern wäre ich dankbar, wenn jemand in der Lage wäre mein genanntes Beispiel so zu ändern, das es im Systemtester funktionsfähig und die Zeitperioden variierbar laufen würden.
Wenn Du den Weg über 2 Indikatoren nicht gehen willst, bleibt nur noch die Möglichkeit, die 2 KAMA´s im Systemtester zu programmieren bzw. die Formel für den 2. KAMA abzuändern. Z.B.:
Periods := opt1;
Periods1 := opt2;
Direction := CLOSE - Ref(CLOSE,-periods);
Volatility := Sum(Abs(ROC(CLOSE,1,$)),periods);
ER := Abs(Direction/Volatility);
FastSC := 2/(1 + 1);
SlowSC := 2/(8 + 1);
SSC := ER * (FastSC - SlowSC) + SlowSC;
Constant := Pwr(SSC,2);
AMA1 := If(Cum(1) = periods +1, Ref(CLOSE,-1) + constant * (CLOSE - Ref(CLOSE,-1)),PREV + constant * (CLOSE - PREV));
Direction1 := CLOSE - Ref(CLOSE,-periods1);
Volatility1 := Sum(Abs(ROC(CLOSE,1,$)),periods1);
ER1 := Abs(Direction1/Volatility1);
FastSC1 := 2/(1 + 1);
SlowSC1 := 2/(8 + 1);
SSC1 := ER1 * (FastSC1 - SlowSC1) + SlowSC1;
Constant1 := Pwr(SSC1,2);
AMA2 := If(Cum(1) = periods1 +1, Ref(CLOSE,-1) + constant1 * (CLOSE - Ref(CLOSE,-1)),PREV + constant1 * (CLOSE - PREV));
cross( ama1, ama2)
An Stelle von opt1 und opt2 kann man fixe Werte eingeben (z.B. 10 und 20). Für Dein Vorhaben bietet es sich aber an, die periods zu optimieren, in dem man unter "Optimizations" die Intervallwerte, sowie min und max d. periods f. die beiden KAMA`s eingibt.
Danke für die Hilfe, so langsam komme ich dahinter, wie Metastock tickt.