Metastock 8.0: Trailing Buy Stop Formel
Liebe Gemeinde,
ich bin neu im Gebiet der Programmierung von Metastock und verzweifle gerade an der Erstellung eines Trailing Stopp Buys. Alle bisherigen Versuche sind bei mir gescheitert. Die Idee war, nach einem steigenden MACD Weekly und einem Force Index unter Null einen Stopp Buy + 1 Prozent über das Tageshoch (EOD Daten) zu setzen (nach Elder). Wird dieser Stopp am nächsten Tag nicht tangiert, sollte der Stopp nachgezogen werden und zwar wiederum auf das Tageshoch des nächsten Tages + 1 Prozent bis der Kauf/Long erfolgt bzw. das Tageshoch + 1 Prozent überschritten wird.
Die Programmierung des Weekly Macd und Force Index habe ich bewerkstelligen können. Der Stopp Buy jedoch wurde bei meinen Versuchen nie nachgezogen. Mitlerweile bin ich auf Bleistift und Papier umgestiegen, um meine Aktien mit diesem System zu handeln. Aber wozu habe ich dann Metastock und den Systemtester für teures Geld erworben?
Bitte um dringende Hilfe bei der Programmierung des Trailing Stopp Buy. Das gleiche gilt für Short.
Gruß
Blitzkneisser
Hallo Blitzkneisser,
die Lösung habe ich nicht, aber vielleicht einen Ansatz für Dich zum weiter basteln.
Im "Enhanced System Tester" stellst Du Deine Buy-Order ein. Hier kannst Du unter Order Type einiges einstellen. Ich habe Dir hierzu einen Screenshot angehängt.
Wenn Du als EoD-Trader ganz unten ein Tag Delay eingestellt hast müßte es reichen in der Zeile "Limit or Stop-Price" High +1.01 einzugeben. An die Zeile kommst Du, wenn Du darüber z.B. "Stop" auswählst. Bei einer Einstellung "Good For Day" bedarf es am nächsten Tag einer erneuten Signalgenerierung um wieder eine StopBuy-Order auszulösen. Diese bekommt dann wieder das High des Signaltages zzgl. 1%. So zieht er die Order immer mit dem High mit solange das Signal gültig ist. Bei einer "Good until Cancel" Einstellung, würde er das High zzgl. 1% des Signaltages belassen und nicht im Sinne eines TrailingStops mitziehen.
Ich selbst Teste z. Zt. mit einem TrailingStop als StopLoss mit dem tieferen Tief der beiden vergangenen Tage Ref(LLV(Low,2)-1). Da es ein StopLoss ist natürlich ohne Delay. Nur so als Anregung ;-)
Gruss kuhaku
Hallo,
wenn ich die Frage richtig verstehe, geht es um folgendes:
Du wendest auf einen Daily Tages Chart einen Weekly MACD und einen Weekly Force Index an. Der Kauf erfolgt, wenn das Close größer ist als das vorrangegangene Hoch um wenigstens 1% überschritten wird.
In MS wird das wie folgt ausgedrückt:
fml("WeeklyMacd") > ref(fml("WeeklyMacd"),-1) {steigender MACD}
and fml("ForceIndex") 0 {Force Index 0}
and C > ref(H,-1) *1.01 {Close um 1% größer als das letzte Hoch)
Allerdings handelt es sich nicht wohl kaum um einen Trailing Stop.
Hallo metatrader,
Hallo kuhaku,
vielen Dank für eure Antworten.
Leider komme ich noch nicht an's Ziel. Im Prinzip darf nicht jeden Tag die primäre Buy Bedingung kontrolliert werden. D.h. wenn einmal die erste Bedingung erfüllt ist, tritt der Stopp Buy in Kraft bis er ausgelöst wird. Er führt ab diesem Zeitpunkt ein Eigenleben. Jeden Tag wird ab dann eine Stopp Buy Order in den Markt gestellt, die 1% über dem aktuellen Hoch liegt. Steigt der Kurs morgen 1% über das Hoch, wird gekauft, wenn nicht setzt Metastock automatisch eine neue StoppBuy Order 1% über das dann logischerweise tiefere Hoch. Close Kurse finden keine Berücksichtigung. Der Force Index wird bei mir auf täglicher Basis kalkuliert. Es sollen verschiedene Zeitfenster geöffnet werden! Weekly-Daily-Intraday. Probleme bereitet mir nur das Trailing, alles andere bekomme ich hin.
Kann ich hier einen intelligenten Code in Metastock pogrammieren?
Ich bin auf eure Hilfe angewiesen und hoffe das Problem klar und eindeutig geschildert zu haben.
Gruß und Dank für eure Bemühungen
Blitzkneisser
Hallo,
man kann in MS mit der folgenden Logik überprüfen, ob eine Bedingung noch Gültigkeit besitzt:
N:=fml(buy);{unabhängiges Kaufsignal}
X:=fml(sell); {unabhängiges Verkaufssignal}
I:=Cum(N>-1 AND X>-1)=1; {Entry/Exit sind gültig}
Tr:=BarsSince(I OR N)<BarsSince(I OR X); {Flag}
Tr;
Beispiel:
N:=Cross(70,RSI(C,7));
X:=Cross(RSI(C,7),30);
I:=Cum(N>-1 AND X>-1)=1;
Tr:=BarsSince(I OR N)<BarsSince(I OR X);
Tr;
In deinem Fall also Kauf bei steigendem MACD/Force < 0 und Verkauf bei z.B. fallendem MACD/Force <0
Hallo Metatrader,
Vielen Dank für deine Antwort. Das Grundproblem ist jedoch das Trailing.
Leider ist das Trailing Stopp um Long zu gehen anscheinend nicht machbar. Es gelingt nicht den Stopp Buy von einem tieferen High zum nächsten tieferen High Tag für Tag nachzuziehen, bis schließlich durch ein höheres High gekauft wird.
Ich möchte hier keinem auf die Nerven gehen, aber es muss doch eine Möglichkeit geben. Hast du noch eine Idee?
Gruß
Blitzkneisser
Hallo Blitzkneisser,
der Trailing Buy Stop - nennen wir ihn Triple Screen Long Entry Line - sollte so aussehen:
{TSLEL}
If(Ref(H,-1)
Hallo 1tillen,
bin jetzt Dank deiner Formel einen großen Schritt weiter.
Danke !
Gruß
Blitzkneisser