gautama2
Mitglied seit 11 Jahre 4 Monate

Metastock 8.0: Wie erhalte ich eine Linie zwischen zwei Punkten ?

Hallo,

mit welcher Formel kann ich in Metastock eine Linie zwischen zwei frei definierbaren Punkten zeichnen?

Ich möchte gerne eigene Trendlinien automatisch zeichnen lassen, die ich dann im Explorer auf Breaks untersuchen kann.

Geschrieben von gautama2 am
gautama2
Mitglied seit 11 Jahre 4 Monate

Ich habe einen Thread gefunden, der mich weitergebracht hat:

http://www.stockcentral.com.au/forum/machine/Forum32/HTML/000387.html

Wollte ich nicht vorenthalten.

chn01
Mitglied seit 11 Jahre 4 Monate

Hallo,

da mich das Problem auch interessiert und der Link nicht mehr funktioniert, möchte ich die Frage nochmals stellen:

Hat jemand eine Lösung dazu, wie ich eine Linie zwischen zwei definierten Punkten -z.B. LLV und HHV in den letzten 10 Tagen- automatisch zeichnen kann?

Danke
chn01

metatrader
Mitglied seit 11 Jahre 4 Monate

@ gautama2 [#1]

Zwischen zwei Datumsfeldern

j:=Input("Jour (choisir obligatoirement un jour coté)",1,31,15);
{by FREDCOM, 26May2003 --> V3.06}
m:=Input("Mois (1=janvier, 2=fevrier,...)",1,12,1);
an:=Input("Année",1800,2200,2003);
date:=ValueWhen( 1, ((Year()-2000)*10000+Month()*100+DayOfMonth())=
((an-2000)*10000+m*100+j), Cum(1) );
peri:=Input("Période?",2,100,4);
loc:= L<Ref(LLV(L,peri),-1) AND L<=Ref(LLV(L,peri),peri) AND Cum(1)<=
(LastValue(date)-peri);
y1t:=LastValue(ValueWhen( 2, loc=1, L ));
y2t:=LastValue(ValueWhen( 1, loc=1, L ));
x1t:=LastValue(ValueWhen( 2, loc=1, Cum(1) ));
x2t:=LastValue(ValueWhen( 1, loc=1, Cum(1) ));
{at:=(y1t-y2t)/(x1t-x2t);bt:=y1t-at*x1t;}
yt:=(y1t-y2t)/(x1t-x2t)*Cum(1)+y1t-(y1t-y2t)/(x1t-x2t)*x1t;
{yt:=at*cum(1)+bt;}
{e1:=(L-yt)};
{ret1:=LastValue(Cum(1)-(x1t+Int((x2t-x1t)/2)-1))};
{seg1:=LastValue(Int((x2t-x1t)/2+Int(2*peri/5)))};
x1:=LastValue(Cum(1)-LLVBars(Ref({e1}(L-yt),{-ret1}-LastValue(Cum(1)-
(x1t+Int((x2t-x1t)/2)-1))),{seg1}LastValue(Int((x2t-x1t)/2+Int(2*peri/5)))){-ret1}-LastValue(Cum(1)-(x1t+Int((x2t-x1t)/2)-1)));
y1:=LastValue(ValueWhen(1,x1=Cum(1),L));
ret2:=LastValue(Cum(1)-(x2t+Int(4*peri/5)));
seg2:=LastValue(Int((x2t-x1t)/2)+Int(4*peri/5));
x2:=LastValue(Cum(1)-LLVBars(Ref({e1}(L-yt),-ret2),seg2)-ret2);
y2:=LastValue(ValueWhen(1,x2=Cum(1),L));
{a:=(y1-y2)/(x1-x2);b:=y1-a*x1;}

LoTL:=If(Cum(1)>x1t-5,(y1-y2)/(x1-x2)*Cum(1)+y1-(y1-y2)/(x1-x2)
*x1,BarsSince(Cum(1)>x1t-5));

Diff:=Ref(H-LoTL,-LastValue(Cum(1)-x2t));
decal:=LastValue(HHV(Diff,x2t-x1t));
If(Cum(1)=LastValue(date),LoTL*.98,LoTL);LoTL;LoTL+decal;

metatrader
Mitglied seit 11 Jahre 4 Monate

@ gautama2 [#1]

Trendlinie

Trendlaenge:=Input("Länge/Length",5,200,52);
TrendShift:=Input("Verschiebung/Shift",0,50,7);
TrendStart:=LastValue(Ref(LinearReg(C,Trendlaenge),-TrendShift)- Ref(LinRegSlope(C,Trendlaenge),-TrendShift)*Trendlaenge);
TrendZiel:=LastValue(Ref(LinearReg(C,Trendlaenge),-TrendShift)+TrendShift*Ref(LinRegSlope(C,Trendlaenge),-TrendShift));
TrendDevi:=LastValue(2*Ref(STE(C,Trendlaenge),-TrendShift));
TrendDeltaVertical:= TrendZiel - TrendStart;
TrendDeltaHorizontal:=Trendlaenge+TrendShift;
TrendDeltaPerBar:= TrendDeltaVertical / TrendDeltaHorizontal;
TrendBarNoStart:= LastValue(
Cum(1) - TrendDeltaHorizontal);
Trend:= If(Cum(1) < TrendBarNoStart,
BarsSince(Cum(1) >= TrendBarNoStart),
TrendStart +
(TrendDeltaPerBar * (Cum(1) - TrendBarNoStart)));
CenterLine:=Trend;
Upperline:=Trend+TrendDevi;
LowerLine:=Trend-TrendDevi;
CenterLine;
UpperLine;
LowerLine;
outsideUP:=If(L>(Trend+TrendDevi),true,0);
outsideDOWN:=If(H<(Trend-TrendDevi),true,0);
{end}

metatrader
Mitglied seit 11 Jahre 4 Monate

@ gautama2 [#1]

Hochpunkte

peri:=Input("Période?",2,100,5);
{by FREDCOM, 26Mai2003 --> V2.13}
hic:= H>Ref(HHV(H,peri),-1) AND H>=Ref(HHV(H,peri),peri);
y1t:=Log(LastValue(ValueWhen( 2, hic=1, H )));
y2t:=Log(LastValue(ValueWhen( 1, hic=1, H )));
x1t:=LastValue(ValueWhen( 2, hic=1 , Cum(1) ));
x2t:=LastValue(ValueWhen( 1, hic=1 , Cum(1) ));
{at:=(y1t-y2t)/(x1t-x2t);bt:=y1t-at*x1t;}
yt:=Exp((y1t-y2t)/(x1t-x2t)*Cum(1)+y1t-(y1t-y2t)/(x1t-x2t)*x1t);
{yt:=at*cum(1)+bt;}
e1:=H-yt;
ret1:=LastValue(Cum(1)-(x1t+Int((x2t-x1t)/2)-1));
seg1:=LastValue(Int((x2t-x1t)/2+Int(2*peri/5)));
x1:=LastValue(Cum(1)-HHVBars(Ref(e1,-ret1),seg1)-ret1);
y1:=Log(LastValue(ValueWhen(1,x1=Cum(1),H)));
ret2:=LastValue(Cum(1)-(x2t+Int(4*peri/5)));
seg2:=LastValue(Int((x2t-x1t)/2)+Int(4*peri/5){+Int(1*peri/5)});
x2:=LastValue(Cum(1)-HHVBars(Ref(e1,-ret2),seg2)-ret2);
y2:=Log(LastValue(ValueWhen(1,x2=Cum(1),H)));
{a:=(y1-y2)/(x1-x2);b:=y1-a*x1;}
HiTL:=Exp(If(Cum(1)>x1t-5,(y1-y2)/(x1-x2)*Cum(1)+y1-(y1-y2)/(x1-x2)
*x1,BarsSince(Cum(1)>x1t-5)));

Diff:=Ref(Log(HiTL)-Log( L ),-LastValue(Cum(1)-x2t));
decal:=LastValue(HHV(Diff,x2t-x1t));
HiTL;Exp(Log(HiTL)-decal);

Ellis
Mitglied seit 11 Jahre 4 Monate

Ich möchte eine senkrechte Linie/Rechteck programmseitig in einen Candle-Chart eintragen. Die Daten sollen im Programm ermittelt werden. Das wären Datum (dto. Woche/Monat), Kurswerte von und bis, Farbe, Füll-Farbe, Rahmen-Farbe, Stärke, Linienform und Zeichnungsebene. Außerdem sollten Linienüberlagerungen möglich sein.

Geht sowas in Metastock? Welche Formel muß ich verwenden? Danke.

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