
Originally Posted by
stradivarius
daha once rsi icin, soyle bir formulverilmisti,
bunun gibi,
bir gun onceki "gunun" atr degerini "bes dakikalik" grafikte kullanmak istiyorum, repaint yapmadan nasil yazilabilir acaba.
--
var V = Sistem.GrafikVerileri;
var PrevGunC = new List<float>();
var GunTarih = new List<string>();
for (int i = 1; i < V.Count; i++)
{
if (V[i].Date.Day != V[i - 1].Date.Day)
{
PrevGunC.Add(V[i - 1].Close);
GunTarih.Add(V[i].Date.ToString("yyyyMMdd"));
}
}
var PrevGunRSI = Sistem.RSI(PrevGunC, 20);
var RSI = Sistem.Liste(0);
var StartPos = 0;
for (int i = 1; i < V.Count; i++)
{
for (int j = StartPos; j < PrevGunRSI.Count; j++)
{
if (V[i].Date.ToString("yyyyMMdd") == GunTarih[j])
{
RSI[i] = PrevGunRSI[j];
StartPos = j;
break;
}
}
}
// RSI listesi önceki günün değeridir.
//intraday grafiklerde repaint olmadan döngü içinde kullanılabilir.
Sistem.Cizgiler[0].Deger = RSI;
sorunuzun cevabı formülün içerisinde yazıyor.
repaint engellemenin en kolay ve temel yolu "önceki barı" kullanmaktır.
Keçiyi yardan uçuran bir tutam ottur..
Yer İmleri