Bu sistem örnegine 4 indikatör kullanılarak listeleme yapılmıştır Liste oluşturma sistemlerde ciddi
başarılar saglamaktadır. Bu örneklerden faydalanarak kendinizde liste oluşturma çalışmaları yapınız
Ve sistem içinde sistem yazı ekle kullanılarak çizgi oluşturma kullanılmıştır örnek olarak inceleyebilirsiniz
bu sistemi yanlış hatıramıyorsan geçtimiz yılarda hissenet'te ufuuk hoca paylaşmıştı
var V =Sistem.GrafikVerileri ;
var C = Sistem.GrafikFiyatOku(V, "Kapanis") ;
var H = Sistem.GrafikFiyatOku(V, "Yuksek") ;
var L = Sistem.GrafikFiyatOku(V, "Dusuk") ;
var O = Sistem.GrafikFiyatOku(V, "Acilis") ;
var median = Sistem.GrafikFiyatOku(V, "OrtaNokta") ;
bool renkliciz = true;
var Renk1 = Sistem.Renk(238,130,238,0 );
var Renk2 = Sistem.Renk(255, 255,0,0);
var Renk3 = Sistem.Renk(255, 255,215,0);
int k=2;//0.5-10
int period = 6;
var refH = Sistem.Ref(H,-1);
var refL = Sistem.Ref(L,-1);
var ATR = Sistem.AverageTrueRange(2);
var ema = Sistem.MA(ATR,"Exp",k);
var Vs_raw = Sistem.Liste(0);
var HHV = Sistem.HHV(period,C);
var loline = Sistem.Liste(0);
var VS_below_price = Sistem.Liste(0);
for (int i = 1; i < V.Count; i++)
{
Vs_raw[i]=2.5f*ema[i];
VS_below_price[i]=HHV[i]-Vs_raw[i];
loline[i]= VS_below_price[i];
}
var LLV = Sistem.LLV(period,C);
var hiline = Sistem.Liste(0);
var VS_above_price =Sistem.Liste(0);
for (int i = 1; i < V.Count; i++)
{
VS_above_price[i]=LLV[i]+Vs_raw[i];
hiline[i]=VS_above_price[i];
}
var between = Sistem.Liste(0);
var up = Sistem.Liste(0);
var dn = Sistem.Liste(0);
for (int i = 1; i < V.Count; i++)
{
between[i]=C[i]loline[i]?1:0;
up[i] = C[i]>hiline[i] || (H[i]>refH[i] && H[i]>hiline[i])?1:0;
dn[i] = C[i]
}
var Bars=Sistem.BarSayisi;
var snc =Sistem.Liste(0);
var snc2=Sistem.Liste(0);
var Value1 = Sistem.Liste(0);
var Value2 = Sistem.Liste(0);
for (int i = 1; i < Sistem.BarSayisi; i++)
{
if ( up[i]==1 ) snc[i]=0f;
else snc[i]=snc[i-1]+1;
if ( snc[i] < 1f ) Value1[i]=V[i].High;
else Value1[i]=Value1[i-1];
if ( dn[i]==1 ) snc2[i]=0f;
else snc2[i]=snc2[i-1]+1;
if ( snc2[i] < 1f ) Value2[i]=V[i].Low;
else Value2[i]=Value2[i-1];
}
var upcond = Sistem.Liste(0);
var dncond = Sistem.Liste(0);
var upline=Sistem.Liste(0);
var dnline = Sistem.Liste(0);
var uppoz = Sistem.Liste(0);
var dnneg = Sistem.Liste(0);
for (int i = 1; i < V.Count; i++)
{
//upcond = IIf(between AND BarsSince(up) < BarsSince(dn) , 1, 0);
//dncond = IIf(between AND BarsSince(dn) < BarsSince(up) , 1, 0);
//upline = IIf(up OR upcond, loline, Null);
//dnline = IIf(dn OR dncond, hiline, Null);
upcond[i] = between[i]==1 && snc[i]
dncond[i] = between[i] ==1 && snc2[i]
upline[i] = up[i]==1|| upcond[i]==1 ? loline[i]:0;
dnline[i] = dn[i]==1 || dncond[i]==1 ? hiline[i]:0 ;
if (renkliciz)
{
if (up[i]==1)
{
Sistem.YaziEkle(".",1,i,upline[i],Renk1,"Tahoma", 16);
}
else if (dn[i]==1)
{
Sistem.YaziEkle(".",1,i,dnline[i],Renk2,"Tahoma", 16);
}
else if (upline[i]==dnline[i])
{
Sistem.YaziEkle(".",1,i,C[i],Renk3,"Tahoma", 16);
}}}
// strateji
Sistem.KesismeTara(upline, 50);
var SonYon = "";
for (int i = 1; i < Sistem.BarSayisi; i++)
{
if (upline[i-1] <= 50 && upline[i] > 50 && SonYon!="A")
{
Sistem.Yon[i] = "A"; // alış
SonYon="A";
}
else if (upline[i-1] >= 50 && upline[i] < 50 && SonYon!="S")
{
Sistem.Yon[i] = "S"; // satış
SonYon="S";
}
}
Sistem.Cizgiler[0].Deger = upline;
Sistem.Cizgiler[1].Deger = dnline;
Hiç yorum yok:
Yorum Gönder