Hannes
Mitglied seit 11 Jahre 3 Monate

Metastock 10: Indikator von x nach y

Ich habe einen Stop geschrieben, der jedoch immer über den ganzen Chart angezeigt wird. Wie schaffe ich es, dass er nur von Tag x (erfüllte Bedingung für einen Kauf) bis Tag y (der Tag, an dem der Stop aktiviert wird plus 5 Tage lang unverändert der Ausstiegswert) angezeigt wird?

Habe das mit Teilen der Formel für den Chandelier Stop versucht, doch "entryfulldate" ist "not a recognozed name" für mein System.

Übrigens werden seit dem Update auf Metastock 10 einige Indikatoren (auch alle Chandelier Stops) in den Charts nicht mehr richtig angezeigt.

Vielen Dank für Hilfe
Hannes

Geschrieben von Hannes am
gautama2
Mitglied seit 11 Jahre 2 Monate

Also ichhab lange nicht mehr mit Metastock gearbeitet, aber vielleicht wenigstens als Prinzipskizze:

buy := buycondition;
Stoplevel := ......;
Sell := cross(L, Stoplevel);

intrade := barssince(buy) < barssince(Sell);

intrade*stoplevel; {plottet Stoplevel nur während des Trades (hoffentlich)}

gautama2
Mitglied seit 11 Jahre 2 Monate

@ gautama2 [#2]

Sell := cross(stoplevel, L);

select
Mitglied seit 11 Jahre 2 Monate

@ Hannes [#1]

Schau mal hier "Metastock: Indikator programmieren".

http://www.terminmarktwelt.de/cgi-bin/nforum.pl?ST=11640&CP=0&F=47

Hier wurde auch ein bestimmter "Start" und ein bestimmtes "Ende" adressiert. Wenn diese Datenpunkte richtig programmiert sind, kannst Du deine Variablen "dranhängen".

select
Mitglied seit 11 Jahre 2 Monate
Hannes
Mitglied seit 11 Jahre 3 Monate

Danke für die Hilfe!

metatrader
Mitglied seit 11 Jahre 2 Monate

@ Hannes [#1]

Alle Indikatoren aus den älteren MetaStock Versionen funktionieren auch in der neuen Version, es sei denn, dass benötigte DLL's oder Funktionen nicht (mehr) vorhanden sind.

Anbei ein Beispiel für einen Indikator, der nür über einen bestimmten Zeitraum gezeichnet wird:

TF:=Input("1=hour 2=day 3=week 4=month 5=year ",1,5,2);
NW:=If(TF=1,ROC(Minute(),1,$)<0,If(TF=2,ROC(Hour(),1,$)<0, If(TF=3,ROC(DayOfWeek(),1,$)<0,If(TF=4,ROC(DayOfMonth(),1,$)<0,ROC(Month(),1,$)<0))));

A1:=Cum(1);
A2:=LastValue(A1-BarsSince(NW>0));

LastHigh:=ValueWhen(1,Nw,Ref(HighestSince(1,Nw,H),-1));
LastLow:=ValueWhen(1,Nw,Ref(LowestSince(1,Nw,L),-1));
LastOpen:=If(nw,O,ValueWhen(2,nw,O));
LastClose := If(nw,C,ValueWhen(1,a1-a2=-1,C));

HL4:= (LastHigh-LastLow)*1.1/2+LastClose;
HL3:= (LastHigh-LastLow)*1.1/4+LastClose;
HL2:= (LastHigh-LastLow)*1.1/6+LastClose;
HL1:= (LastHigh-LastLow)*1.1/12+LastClose;

LL1:= LastClose-(LastHigh-LOW)*1.1/12;
LL2:= LastClose-(LastHigh-LOW)*1.1/6;
LL3:= LastClose-(LastHigh-LOW)*1.1/4;
LL4:= LastClose-(LastHigh-LOW)*1.1/2;

If(A1<A2,BarsSince(A1>=A2),LastValue(HL4));
If(A1<A2,BarsSince(A1>=A2),LastValue(HL3));
If(A1<A2,BarsSince(A1>=A2),LastValue(HL2));
If(A1<A2,BarsSince(A1>=A2),LastValue(HL1));
If(A1<A2,BarsSince(A1>=A2),LastValue(LL4));
If(A1<A2,BarsSince(A1>=A2),LastValue(LL3));
If(A1<A2,BarsSince(A1>=A2),LastValue(LL2));
If(A1<A2,BarsSince(A1>=A2),LastValue(LL1))

Hannes
Mitglied seit 11 Jahre 3 Monate

Lieber Metatrader,

ich würde gerne folgende Logik in MetastockFormelsprache übersetzen:

Auf EOD Basis:

Wenn der Stop-Indikator das Low von unten kreuzt (bzw. das Low des Tages unter dem Stop-Indikator liegt, dann wird dieser Wert des Stop-Indikators beim Kreuzen noch drei Tage unverändert angezeigt, wenn nicht, dann der jeweils aktuelle, jeden Tag kalkulierte Wert des Stop-Indikators. Klingt einfach - ist es das aber auch ?

if(L=<(Fml"Stop"),drei Tage letzter Wert der Fml"Stop",Fml"Stop")

Bezüglich der DDLs:

Ich habe die DDLs für die Chandelier Stops von Trader Nexus nach dem Update zu Metastock 10.1 neu heruntergeladen (weil das Problem auftrat), aber der Long Stop wird weiterhin nicht durch einen Tiefwert des Kurses ausgelöst, sondern rast immer zu einem Tageshigh.

Jetzt schnitze ich mir meinen eigenen Stop zusammen, doch da würde ich auch gerne gleich das "Problem" mit dem erwünschten Verschwinden das Stops 3 Tage nach seiner Exekution lösen.

Liebe Grüße
Hannes

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.
Fragen?

Sie haben Fragen zu ZMP Live? Unser Team steht gerne hilfsbereit zu Ihrer Verfügung. Senden Sie uns gerne eine Nachricht:

Es gilt unsere Datenschutzerklärung

Jetzt registrieren

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