1 Attachment(s)
son bar çizimşleri hata veriyor
Alıntı:
Originally Posted by
sonli
Aşağıdaki sistem; günlük MA1, günlük MA2 den büyükse ve baktığınız periyottaki fiyat trendin üzerindeyse alım yapar..Fiyat MA2 yi aşağı kırdığında satar. Trendi ve fiyatı, grafiğe baktığınız periyoda göre kullanır (ortalamalar günlük olduğundan günlük ve tüm alt periyotlarda çalışır). Koddaki trend son 20 barı dikkate almadan 300 bara bakıyor.
Trendi kesişim esnasında çizdirmenize gerek yok; trend her zaman olur ama sistem ma1>ma2 + fiyat>trend olduğunda işleme girer. Ancak trendin otomatik çizilmesi önceki tepelerin durumuna göre sağlıklı çalışmayacaktır. Sistem anlık dediğim gibi çalışsa da, trend şartından dolayı grafik üzerinde geçmişte yaptığı ya da yapmadığı alımları hatalı gösterir.
PHP Code:
int p1=5;
int p2=21;
var Veriler = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatOku(Veriler,"Kapanis");
var gn = Sistem.GrafikVerileriniOku(Sistem.Sembol, "G");
var kgn = Sistem.GrafikFiyatOku(gn, "Kapanis");
var m1 = Sistem.MA(kgn, "Simple", p1 );
m1 =Sistem.DonemCevir(Sistem.GrafikVerileri, gn , m1 );
var m2 = Sistem.MA(kgn, "Simple", p2 );
m2 =Sistem.DonemCevir(Sistem.GrafikVerileri, gn , m2 );
var T = Sistem.OtoTrendDusen(Veriler, 300, 20);
//kesişim şartı
//if (m50[i]>m100[i] && m50[i-1]<m100[i-1])
var SonYon = "";
for (int i=2; i < Sistem.BarSayisi; i++)
{
if (SonYon != "A" && m1[i]>m2[i] && C[i]>T[i] )
{
SonYon = Sistem.Yon[i] = "A";
Sistem.Mesaj("Trend Yukarı Kırıldı");
}
else if (SonYon != "S" && C[i]<m2[i] )
{
SonYon = Sistem.Yon[i] = "S";
Sistem.Mesaj("Satıldı..");
}
}
//ekranda çizgi olarak göster
Sistem.Cizgiler[0].Deger = m1;
Sistem.Cizgiler[1].Deger = m2;
Sistem.Cizgiler[2].Deger = T;
https://i.hizliresim.com/qdkql3.png
https://i.hizliresim.com/DYbXR1.png
bar çizimlerinde hata oluşumunu nasıl düzeltebiliriz