Burada bulunan formüllerden yararlanarak açılış barının yüksek,düşüğü ile günlük ortalamayı alan bir formül yazmaya çalıştım.Bazı günler açılış barının yükseğini hatalı gösteriyor nedenini anlayamadım.
//Veriler
var V =Sistem.GrafikVerileri ;
var C = Sistem.GrafikFiyatSec( "Kapanis");
//Değişkenler
var OncekiGunKapanis = Sistem.Liste(0);
var GunlukOrtalama = Sistem.Liste(0);
var GunlukYuzde = Sistem.Liste(0);
int OncekiGunKapanisBar =0;
List<double> GunlukFiyatList = new List<double>();
//Günlük Durum Listelerini Hesapla
for (int i = 1; i < V.Count; i++)
{
if (V[i].Date.Day != V[i-1].Date.Day)
{
OncekiGunKapanis[i] = C[i-1];
OncekiGunKapanisBar = i;
GunlukFiyatList.Clear();
GunlukOrtalama[i] = GunlukOrtalama[i-1];
}
else {
OncekiGunKapanis[i] = OncekiGunKapanis[i-1];
GunlukFiyatList.Add(C[i]);
GunlukOrtalama[i] = (float)GunlukFiyatList.Average();
}
if ( C[i]>=OncekiGunKapanis[i]) {GunlukYuzde[i] = (C[i]-OncekiGunKapanis[i]);}
if ( C[i]<OncekiGunKapanis[i]) {GunlukYuzde[i] = -(-C[i]+OncekiGunKapanis[i]);}
}
//Çizgiler
var H = Sistem.GrafikFiyatOku(V, "Yuksek" ) ;
var L = Sistem.GrafikFiyatOku(V, "Dusuk" ) ;
//Değişkenler
var GunYuksek = Sistem.Liste(0);
var GunDusuk = Sistem.Liste(0);
int GunYuksekBar =0;
List<double> GunYuksekFiyatList = new List<double>();
int GunDusukBar =0;
List<double> GunDusukFiyatList = new List<double>();
//Günlük Durum Listelerini Hesapla
for (int i = 1; i < V.Count; i++)
{
if (V[i].Date.Day != V[i-1].Date.Day)
{
GunYuksek[i] = H[i];
GunDusuk [i] = L[i];
GunYuksekFiyatList.Clear();
GunDusukFiyatList.Clear();
GunYuksekBar = i;
GunDusukBar = i;
}
else {
GunYuksek[i] = GunYuksek[i-1];
GunDusuk[i] = GunDusuk[i-1];
GunYuksekFiyatList.Add(H[i]);
GunDusukFiyatList.Add(L[i]);
}
}
//Çizgiler
Sistem.Cizgiler[0].Deger = GunYuksek; //Panel 1
Sistem.Cizgiler[0].Aciklama = "GunYuksek";
Sistem.Cizgiler[1].Deger = GunDusuk; //Panel 1
Sistem.Cizgiler[1].Aciklama = "GunDusuk";
Sistem.Cizgiler[2].Deger = OncekiGunKapanis;
Sistem.Cizgiler[2].Aciklama = "OncekiGunKapanis";
Sistem.Cizgiler[3].Deger = GunlukOrtalama; //Panel 1
Sistem.Cizgiler[3].Aciklama = "GunlukOrtalama";
Sistem.Cizgiler[4].Deger = GunlukYuzde ; //Panel 2
Sistem.Cizgiler[4].Aciklama = "GunlukYuzde";
Yer İmleri