İyi günler,
frama'daki N değerini değiştirmek bir etki etmiyor,
N= ne yazarsanız yazın EMA 200 ile hemen hemen aynı değeri veriyor.
Hata mı var acaba ?
Kod:
var N = 40;
var HHV = Sistem.HHV(N, "Yuksek");
var LLV = Sistem.LLV(N, "Dusuk");
var HHV2 = Sistem.HHV(N/2, "Yuksek");
var LLV2 = Sistem.LLV(N/2, "Dusuk");
var HHV2_ = Sistem.HHV(N/2-1, "Yuksek");
var LLV2_ = Sistem.LLV(N/2-1, "Dusuk");
var N1 = Sistem.Liste(0);
var N2 = Sistem.Liste(0);
var N3 = Sistem.Liste(0);
var Price = Sistem.GrafikFiyatSec("OrtaNokta");
var Dimen = Sistem.Liste(0);
var alpha1 = Sistem.Liste(0);
var alpha = Sistem.Liste(0);
var Frama = Sistem.Liste(0);
for (int i= 1; i < Sistem.BarSayisi; i++)
N3[i] = (HHV[i] - LLV[i]) / N;
for (int i= 1; i < Sistem.BarSayisi; i++)
N1[i] = (HHV2_[i] - LLV2_[i]) / (N/2);
for (int i= N; i < Sistem.BarSayisi; i++)
N2[i] = (HHV2[i-N/2-1] - LLV2[i-N/2-1]) / (N/2);
for (int i= 1; i < Sistem.BarSayisi; i++)
{
if (N1[i] > 0 && N2[i] > 0 && N3[i] > 0)
Dimen[i] =(float)((float)Math.Log(N1[i] + N2[i]) - (float)Math.Log(N3[i])) / (float)Math.Log(2);
alpha1[i] = (float)Math.Exp(-4.6*(Dimen[i]-1));
if(alpha[i] < 0.01f)
alpha[i] = 0.01f;
else if(alpha[i] > 1f)
alpha[i] = 1f;
else
alpha[i] = alpha1[i];
Frama[i] = (alpha[i]*Price[i]) + (1 - alpha[i])*Frama[i-1];
}
Sistem.Cizgiler[0].Deger = Frama;
Yer İmleri