Wilders MA fonksiyonu belki birine lazım olur:
PHP Code:
public float[] Wilders(float[] gelenliste, int periyot)
{
int veriSayisi = gelenliste.Length;
float[] sonuc = new float[veriSayisi];
float[] ma = new float[veriSayisi];
decimal[] toplamlar = new decimal[veriSayisi];
for (int i = 1; i < veriSayisi; i++)
{
toplamlar[i] = toplamlar[i - 1] + (decimal)gelenliste[i];
if (i - periyot >= 0)
ma[i] = (float)Math.Round((toplamlar[i] - toplamlar[i - periyot]) / periyot, 4);
if (i < periyot)
sonuc[i] = 0;
else if (i == periyot)
sonuc[i] = ma[i];
else if (i > periyot)
sonuc[i] = (float)Math.Round(((sonuc[i - 1] * (periyot - 1)) + gelenliste[i]) / periyot, 3);
}
return sonuc;
}
Sistem İçerisinden Close verisi için aşağıdaki şekilde çağırabilirsiniz.
sadece periyot değişkenine istediğiniz rakamı giriniz.
Hesaplatılacak veri Close değilse onu da float array e çevirip atamanız lazım.
PHP Code:
int periyot=10;
var Veriler = Sistem.GrafikVerileriniOku(Sistem.Sembol, Sistem.Periyot);
var C = Sistem.GrafikFiyatOku(Veriler, "Kapanis");
float[] userWilderMA=Wilders(C.ToArray(), Convert.ToInt32(periyot));
var WilderMA=userWilderMA.ToList();
Sistem.Cizgiler[0].Deger=WilderMA;
Yer İmleri