y1:=mov(w,22,e);
y2:=y1-atr(5);
y3:=y1+atr(5);
y4:=ıf(y1<prev,y2,ıf(y2>prev,y2,prev));
y5:=ıf(y1>prev,y3,ıf(y3<prev,y3,prev));
y6:=cross(y1,ref(y5,-1));
y7:=cross(ref(y4,-1),y1);
y8:=barssınce(y6)<barssınce(y7);
y9:=ıf(y8=-1,y4,y5);
y9
Printable View
Kod:public void CalculateEhlersFilter(List<cxBar> bars)
{
try
{
if (bars.Count <= 0) return;
int ti = 15;
var price = bars.Select(x => (x.Open + x.High + x.Low + x.Close) / 4).ToList();
var coef = new List<float>(new float[bars.Count]);
var ehler = new List<float>(new float[bars.Count]);
for (int i = 5; i < bars.Count; i++)
coef[i] = Math.Abs(price[i] - price[i - 5]);
for (int i = ti; i < bars.Count; i++)
{
float deger1 = 0;
float deger2 = 0;
for (int k = 0; k < 15; k++)
{
var m = i - k;
deger1 += coef[m] * price[m];
deger2 += coef[m];
}
if (deger2 != 0)
ehler[i] = deger1 / deger2;
}
}
catch { }
}
Kod:
var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatSec("Kapanis");
var Yon = Sistem.Yon;
var MAVW = Sistem.MAM(C, "Weighted", 3, 5, 8, 12, 21, 34);
var T3 = Sistem.TillsonT3(5, 0.7);
// strateji
var SonYon = "";
var Sinyal = "";
for (int i = 10; i < V.Count; i++)
{
Sinyal = "";
if (C[i - 1] < MAVW[i] && C[i] >= MAVW[i]) Sinyal = "A";
else if (C[i - 1] > MAVW[i] && C[i] <= MAVW[i]) Sinyal = "S";
else if (SonYon == "A" && T3[i] <= T3[i - 1] && T3[i - 1] > T3[i - 2]) Sinyal = "F";
else if (SonYon == "S" && T3[i] >= T3[i - 1] && T3[i - 1] < T3[i - 2]) Sinyal = "F";
// Yön Kalıbı
if (Sinyal == "A" && SonYon != "A")
{
Yon[i] = "A";
SonYon = Yon[i];
}
if (Sinyal == "S" && SonYon != "S")
{
Yon[i] = "S";
SonYon = Yon[i];
}
if (Sinyal == "F" && SonYon != "F")
{
Yon[i] = "F";
SonYon = Yon[i];
}
}
Sistem.GetiriHesapla("01/01/2000", 0.0);
Sistem.Cizgiler[0].Deger = MAVW;
Sistem.Cizgiler[1].Deger = T3;
Sistem.Cizgiler[1].Deger = Sistem.GetiriKZ;
Kontrol ediniz.Kod: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 y1=Sistem.MA(22,"Exp","Ortalama");
var atr5=Sistem.AverageTrueRange(5);
var y2=Sistem.ListeFark(y1,atr5);
var y3=Sistem.ListeTopla(y1,atr5);
var y4=Sistem.Liste(0);
var y5=Sistem.Liste(0);
var y9=Sistem.Liste(0);
var y8=Sistem.Liste(0);
for (int i = 20; i<Sistem.BarSayisi; i++)
{
if ( y1[i]<y1[i-1] )
y4[i]=y2[i];
else if ( y2[i]>y2[i-1] )
y4[i]=y2[i];
else
y4[i]=y4[i-1];
if ( y1[i]>y1[i-1] )
y5[i]=y3[i];
else if ( y3[i]<y3[i-1] )
y5[i]=y3[i];
else
y5[i]=y5[i-1];
}
int y6=0;
int y7=0;
for (int i = 20; i<Sistem.BarSayisi; i++)
{
if ( y1[i]>y5[i-1] && y1[i-1]<=y5[i-2] )
y6=i;
if ( y4[i-1]>y1[i] && y4[i-2]<=y1[i-1] )
y7=i;
if (Sistem.Periyot=="G" || Sistem.Periyot=="H" || Sistem.Periyot=="A")
{
if (y6<y7)
y9[i]=y5[i];
else if ( y6>=y7)
y9[i]=y4[i];
}
else
{
if (y6<y7)
y9[i]=y5[i]/100;
else if ( y6>=y7)
y9[i]=y4[i]/100;
}
}
Sistem.Cizgiler[0].Deger=y9;