Originally Posted by
JordanBelfort
Merhaba
Matriksten ideale yeni geçtim, örnekler ile kendimi geliştirmeye çalışıyorum. Aşağıdaki formülü yazdığımda panelde de seçmiş olmama rağmen maalesef indikatörü grafikte görüntüleyemiyorum. Yardımcı olabilir misiniz?
int Period = 34;
var RSI = Sistem.RSI(Period);
var MOM = Sistem.Momentum(Period);
var STOSK = Sistem.StochasticSlow(Period,3);
var DI = Sistem.DirectionalMovement(Period);
for (int i=0; i < Sistem.BarSayisi; i++)
{
Sistem.Cizgiler[0].Deger[i] = (RSI[i]*1.43 + MOM[i]*5 + STOSK[i] + ((DI[i]+40)*1.25))/4;
}
Metastock'tan farklı olarak sistem indikatorleri dışında yeni bir değer üreteceksiniz bir liste tanımlayıp hesaplamaları her bar için döngü içinde hesaplatmanız gerekiyor. Metastockta tanımlamalar hariç neredeyse herşey listedir, C# ta neyin ne olduğunu siz belirlemelisiniz. Hesaplamalarda ondalık sayı kullanacaksanız float tipi olduğunu belirtmek sonuna "f" harfi ekleyin aksi halde double kabul eder ve hata verir cizgi görünmez.
PHP Code:
int Period = 34;
var RSI = Sistem.RSI(Period);
var MOM = Sistem.Momentum(Period);
var STOSK = Sistem.StochasticSlow(Period, 3);
var DI = Sistem.DirectionalMovement(Period);
var myInd = Sistem.Liste(0);
for (int i = 0; i < Sistem.BarSayisi; i++)
{
myInd[i] = (RSI[i] * 1.43f + MOM[i] * 5 + STOSK[i] + ((DI[i] + 40) * 1.25f)) / 4;
}
Sistem.Cizgiler[0].Deger = myInd;
//alttaki ayarlar çizgiler panelinde de yapabalirsiniz.
Sistem.Cizgiler[0].ActiveBool = true;
Sistem.Cizgiler[0].Aciklama = "myInd";
Sistem.Cizgiler[0].Panel = 2;
Liste tanımlamadan yapacam diyorsanız, sn Sonli nin de dediği periyotu dikkate alarak şöyle de aynı sonucu alabilirsiniz.
PHP Code:
int Period = 34;
var RSI = Sistem.RSI(Period);
var MOM = Sistem.Momentum(Period);
var STOSK = Sistem.StochasticSlow(Period, 3);
var DI = Sistem.DirectionalMovement(Period);
for (int i = Period; i < Sistem.BarSayisi; i++)
{
Sistem.Cizgiler[0].Deger[i] = (RSI[i] * 1.43f + MOM[i] * 5 + STOSK[i] + ((DI[i] + 40) * 1.25f)) / 4;
}
//alttaki ayarlar çizgiler panelinde de yapabalirsiniz.
Sistem.Cizgiler[0].ActiveBool = true;
Sistem.Cizgiler[0].Panel = 2;
Yer İmleri