Alıntı Originally Posted by Celal Can Yazıyı Oku
Merhaba,
Belli bir şart gerçekleştiği bardan sonraki 20 bar içerisinde fiyat en yüksek nereye çıkmış, en düşük neyi görmüş bunu gösterecek ve şartın gerçekleştiği bar ile ondan sonraki 20 bar içerisinde gördüğü en yüksek fiyat arasındaki yüzde farkı gösterecek bir formülü nasıl yazabilirim. Yardımcı olabilir misiniz?
yanlis olabilir kontrol edin.

var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatSec("Kapanis");
var high = Sistem.GrafikFiyatSec("Yuksek");
var low = Sistem.GrafikFiyatSec("Dusuk");

var rsi = Sistem.RSI(14);
var hmax= Sistem.Liste(0); // sart saglandiktan sonraki yuksekler
var lmin = Sistem.Liste(0); // sart saglandiktan sonraki dusukler

var yh= Sistem.Liste(0); // yuzde high
var yl = Sistem.Liste(0); // yuzde low

int sayac=0 ;
float xc= 0.0f;

for (int i = 1; i < V.Count; i++)
{

if(rsi[i]>=80 && rsi[i-1]<80) // belli bir şart
{
sayac=i;
hmax[i]=C[i];
lmin[i] = C[i];
xc= C[i];// sart saglandigindaki fiyat kapanis.
}

if(i-sayac<20 && i-sayac>0){
hmax[i]= Math.Max(high[i-1],hmax[i-1]);
lmin[i]= Math.Min(low[i-1],lmin[i-1]);
}

if(hmax[i]!=0 ){
yh[i]=( (hmax[i]/xc)-1);
yl[i]= -( (xc/lmin[i])-1);
}

}

Sistem.Cizgiler[0].Deger = rsi;
Sistem.Cizgiler[1].Deger = hmax;
Sistem.Cizgiler[2].Deger = lmin;
Sistem.Cizgiler[3].Deger = yh;
Sistem.Cizgiler[4].Deger = yl;