Ben matriks kullanmadığım için onda nasıl oluyor bilmiyorum.
Ben matriks kullanmadığım için onda nasıl oluyor bilmiyorum.
SwingTrd 1
100 *
(CLOSE - ((Mov(C,2,S) +
Mov(Mov(C,2,S),2,S) +
Mov(Mov(Mov(C,2,S),2,S),2,S) +
Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S) +
Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S) +
Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S) ,2,S) +
Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S), 2,S),2,S),2,S) +
Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2 ,S),2,S),2,S),2,S),2,S) +
Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2, S),2,S),2,S),2,S),2,S),2,S),2,S) +
Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S ),2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S)) / 10)) /
(HHV(C,10) - LLV(C,10))
SwingTrd 2
Mov(Fml("SwingTrd 1"),30,E)
SwingTrd 3
Mov(Fml("SwingTrd 2"),30,E)
-20 nin altına inen ve 20 nin üstüne çıkan hisseleri Explorer da
buldurmak istiyorum.
cola
A:= Fml( "SwingTrd 2");
A;
colb
A:= Fml( "SwingTrd 2");
B:=A<-20;
B;
colc
A:= Fml( "SwingTrd 2");
BB:=A>20;
BB;
algoritma
Sessiz olursan daha çok şey Duyarsın.
Çok teşekkürler Sayın Pazartesi. Emeğinize sağlık.
merhaba bu formülü metastokta kullanamıyorum ,most yerine ne yazılabilir?
s1:=hhv(sar(0.3,0.1),1);
s2:=llv(sar(0.3,0.1),1);
s3:=(s1+s2)/2;
s4:=most(s3,1,1);
mehmet.ferit Nickli Üyeden Alıntı Mesajı göster
sayın enorton,ne kadar basit,o size kalmış ama benim 10-15 dakika mı aldı...diger trailing stoplardan daha yararlı oldugunu düşünmüyorum,test etmedim sadece tahmin...
yuzde:=Input("yuzde-% of trailing stop",0,100,2);
period:=Input("period",1,100000,3);
a1:=Mov(C,period,E);
a2:=a1-(a1*yuzde/100);
a3:=a1+(a1*yuzde/100);
b1:=If(a1<PREV,a2,Max(a2,PREV));
b2:=If(a1>PREV,a3,Min(a3,PREV));
k1:=Cross(a1,Ref(b2,-1));
k2:=Cross(Ref(b1,-1),a1);
k3:=Cum(k1+k2>-1)=1;
k4:=Cum(k1)=1;
s1:=BarsSince(k3 OR k1)
< BarsSince(k3 OR k2)+k4;
s2:=If(s1=1,b1,b2);
a1;s2
a1 ussel ortalamamız ve s2 de bundan türetilen most'umuz..test ederken AL için,en son satırdaki a1;s2 yerine a1>s2 veya cross(a1,s2)...SAT için a1<s2 veya cross(s2,a1) yazmanız yeterli olur...tabii inputlu yerlere opt1 ve opt2 veya sabit sayılar koymanız lazım,söylememe gerek yoktur herhalde...
formul içinde prev kunlanmak zorunda kaldım,malesef metastock dili basit ama bi o kadar da sığ bir dil olduğu için,bırakin ileri düzey looping tekniklerini,basit düzeyde bile yapmak için 38 takla atmak gerekiyor...malesef bu prev functionlar yüzünden,test ederken,çok zorlanacaksınız çünkü muhtemelen tek bir paremetreyi 5-10 dakika test edecek kadar makinanız yavaşlayacak....
most'u kunlanacak arkadaşların sadece üssel ortalamaya mecbur olmadıklarını ve formul üstünde geliştirmeler yapabileceklerini göstermek için,simple,weight ve hull moving average'ı kunlanan most indicatorunu yazıyorum...kendi beğendiğiniz bir değişkenin veya ortalamayı,yukarıdaki formulde bulunan a1 satırını değiştirerek ekleyebilisiniz....
yuzde:=Input("yuzde-% of trailing stop",0,100,2);
period:=Input("period",1,100000,3);
yy1:=Input("1=ussel mov,2=simple mov,3=weight mov,4=hull mov",1,4,1);
bb:=Sqrt(period);
aa1:=Mov(C,period/2,W);
aa2:=Mov(C,period,W);
aa3:=Mov(2*aa1-aa2,LastValue(bb),W);
a1:=If(yy1=2,Mov(C,period,S),If(yy1=3,Mov(C,period ,W),If(yy1=4,aa3,Mov(C,period,E))));
a2:=a1-(a1*yuzde/100);
a3:=a1+(a1*yuzde/100);
b1:=If(a1<PREV,a2,Max(a2,PREV));
b2:=If(a1>PREV,a3,Min(a3,PREV));
k1:=Cross(a1,Ref(b2,-1));
k2:=Cross(Ref(b1,-1),a1);
k3:=Cum(k1+k2>-1)=1;
k4:=Cum(k1)=1;
s1:=BarsSince(k3 OR k1)
< BarsSince(k3 OR k2)+k4;
s2:=If(s1=1,b1,b2);
a1;s2
Mehmet Ferit sağ olsun formülü yazmış, fakat ben bunu sistem testerde al - sat şekline getiremedim.
Yardımcı olacak birini arıyorum.
Long :
yuzde:=Input("yuzde-% of trailing stop",0,100,2);
period:=Input("period",1,100000,3);
yy1:=Input("1=ussel mov,2=simple mov,3=weight mov,4=hull mov",1,4,1);
bb:=Sqrt(period);
aa1:=Mov(C,period/2,W);
aa2:=Mov(C,period,W);
aa3:=Mov(2*aa1-aa2,LastValue(bb),W);
a1:=If(yy1=2,Mov(C,period,S),If(yy1=3,Mov(C,period ,W),If(yy1=4,aa3,Mov(C,period,E))));
a2:=a1-(a1*yuzde/100);
a3:=a1+(a1*yuzde/100);
b1:=If(a1<PREV,a2,Max(a2,PREV));
b2:=If(a1>PREV,a3,Min(a3,PREV));
k1:=Cross(a1,Ref(b2,-1));
k2:=Cross(Ref(b1,-1),a1);
k3:=Cum(k1+k2>-1)=1;
k4:=Cum(k1)=1;
s1:=BarsSince(k3 OR k1)
< BarsSince(k3 OR k2)+k4;
s2:=If(s1=1,b1,b2);
a1;s2
Cross(a1,s2)
Short :
yuzde:=Input("yuzde-% of trailing stop",0,100,2);
period:=Input("period",1,100000,3);
yy1:=Input("1=ussel mov,2=simple mov,3=weight mov,4=hull mov",1,4,1);
bb:=Sqrt(period);
aa1:=Mov(C,period/2,W);
aa2:=Mov(C,period,W);
aa3:=Mov(2*aa1-aa2,LastValue(bb),W);
a1:=If(yy1=2,Mov(C,period,S),If(yy1=3,Mov(C,period ,W),If(yy1=4,aa3,Mov(C,period,E))));
a2:=a1-(a1*yuzde/100);
a3:=a1+(a1*yuzde/100);
b1:=If(a1<PREV,a2,Max(a2,PREV));
b2:=If(a1>PREV,a3,Min(a3,PREV));
k1:=Cross(a1,Ref(b2,-1));
k2:=Cross(Ref(b1,-1),a1);
k3:=Cum(k1+k2>-1)=1;
k4:=Cum(k1)=1;
s1:=BarsSince(k3 OR k1)
< BarsSince(k3 OR k2)+k4;
s2:=If(s1=1,b1,b2);
a1;s2
Cross(s2,a1)
Yukarıdakiler
http://www.voborsa.com/forum/showthr...t=5211&page=29
den alıntıdır.
Bir yararı olur mu onu ben bilmiyorum.
Yer İmleri