|
|
Bende öyle görünüyor zaten. Grafik bilginizde hacim bilgisi eksikse seans değişimini algılamaz o yüzden sizde öyle görünüyor olabilir. Grafik periyodunu seans yapıp Sunucudan verileri indir yapın. Koda aşağıdaki gibi hizalama da ekleyip sadeleştirdim sorun yaşamamanız gerekiyor.
barSay.jpg
PHP Code:
var V = Sistem.GrafikVerileri;
var V240 = Sistem.GrafikVerileriniOku(Sistem.Sembol, "S");
V240 = Sistem.GrafikVerilerindeTarihHizala(V,V240);
var volume240 = Sistem.GrafikFiyatOku(V240, "Hacim");
volume240 = Sistem.DonemCevir(V, V240, volume240);
var birDkBarSayisi = Sistem.Liste(0);
var besDkBarSayisi = Sistem.Liste(0);
for (int i = 500; i < V.Count; i++)
{
if (volume240[i] != volume240[i - 1])
{
birDkBarSayisi[i - 1] = 0;
}
birDkBarSayisi[i] = birDkBarSayisi[i - 1] + 1;
besDkBarSayisi[i] = (int)(birDkBarSayisi[i] / 5);
}
Sistem.Cizgiler[0].Deger = birDkBarSayisi;
Sistem.Cizgiler[1].Deger = besDkBarSayisi;
Sistem.Cizgiler[2].Deger = volume240;
Son düzenleme : bymehmet; 04-06-2022 saat: 13:37.
Merhabalar hocam, sistemin repaint yapmaması adına örneğin saat 10.50 de 10.50 barı kapanmadan kümülatif olarak 9.55le 10.49 kapanan barın toplam hacmini elde etmek istiyorum back test yapabilmek adına. Mevcut düzenlemelerle günlük hacim değerine (i-1) getirdiğim zaman önceki günün hacim değerini elde ediyor. Bana aynı gün içindeki 1 bar önceki toplam değer lazım, bunun bir yöntemi mevcut mudur?
Merhaba
Matriks kodu aşağıdaki gibi olan, Anıl Özekşi'nin Stochastic OTT (TTI) indikatörünü ideale çevirmeye çalışıyorum. Aşağıdaki gibi yazdım fakat yapamadım. İdeale yeni alışıyorum, nerede hata yaptığımı da bulamadım. Yardımcı olabilir misiniz? Teşekkürler
X1:=500;
X2:=300;
X3:=0.3;
STOSK(X1,X2,111,VAR)+1000;
OTT(STOSK(X1,X2,111,VAR)+1000,2,X3)
-----
int PD1 = 500;
int PD2 = 300;
float PD3 = 0.3f;
var STOSK = Sistem.StochasticSlow(PD1, PD2);
var SOTT = Sistem.TTI(STOSK, 2, PD3, "Variable");
Sistem.Cizgiler[0].Deger = STOSK;
Sistem.Cizgiler[1].Deger = SOTT;
Burada seans için 1 dk kümülatif hacim toplamını hesaplattım. Canlı barla sinyal göndermediğiniz sürece repaint yapmaz.
PHP Code:
var V = Sistem.GrafikVerileri;
var V240 = Sistem.GrafikVerileriniOku(Sistem.Sembol, "S");
V240 = Sistem.GrafikVerilerindeTarihHizala(V,V240);
var volume240 = Sistem.GrafikFiyatOku(V240, "Hacim");
volume240 = Sistem.DonemCevir(V, V240, volume240);
var birDkCumulativeVolume = Sistem.Liste(0);
var birDkBarSayisi = Sistem.Liste(0);
var besDkBarSayisi = Sistem.Liste(0);
for (int i = 500; i < V.Count; i++)
{
if (volume240[i] != volume240[i - 1])
{
birDkBarSayisi[i - 1] = 0;
birDkCumulativeVolume[i - 1] = 0;
}
birDkCumulativeVolume[i] = birDkCumulativeVolume[i-1] + V[i].Vol;
birDkBarSayisi[i] = birDkBarSayisi[i - 1] + 1;
besDkBarSayisi[i] = (int)(birDkBarSayisi[i] / 5);
}
Sistem.Cizgiler[0].Deger = birDkBarSayisi;
Sistem.Cizgiler[1].Deger = besDkBarSayisi;
Sistem.Cizgiler[2].Deger = birDkCumulativeVolume;
Sistem.Cizgiler[3].Deger = volume240;
Kodunuzun çalışmaması için bir sebep yok, bende çalıştı.
Anıl hoca ott yüzdesinin düşük ve yüksek değerlerde tutarlı çalışması için stochastic osilatorüne 1000 eklenmesini öneriyor. Onu yapamadığınızı ima ettiyseniz şu şekilde yapabilirsiniz.
PHP Code:
//X1:= 500;
//X2:= 300;
//X3:= 0.3;
// STOSK(X1, X2, 111, VAR) + 1000;
// OTT(STOSK(X1, X2, 111, VAR) + 1000, 2, X3)
// ---- -
int PD1 = 500;
int PD2 = 300;
float PD3 = 0.3f;
var STOSK = Sistem.StochasticSlow(PD1, PD2);
for (int i = 0; i < Sistem.BarSayisi; i++)
STOSK[i] += 1000;
var SOTT = Sistem.TTI(STOSK, 2, PD3, "Variable");
Sistem.Cizgiler[0].Deger = STOSK;
Sistem.Cizgiler[1].Deger = SOTT;
Sistem.Cizgiler[0].Panel = 2;
Sistem.Cizgiler[1].Panel = 2;
Yer İmleri