Ben Bollinger sorgusu yazmıştım(isteğinizin TKE kısmı yok); genellikle portföyümdeki senetlerin farklı periyotlardaki bollinger değerlerini görmek için kullanıyorum.. Son bar kapanışında dibi ve tepeyi delenler ile orta band 1% civarı olanlara açıklama yazar.. Son bölümdeki if kısmının yorum (//) satırlarını kaldırırsanız sadece açıklaması olanları listeler..
https://i.hizliresim.com/grqEZb.jpgPHP Code:
var MARJ = 0.01f; // %1 yaklaşma
Sistem.SorguBaslik[0] = "Kapanış";
Sistem.SorguBaslik[1] = "Bust";
Sistem.SorguBaslik[2] = "MA-20";
Sistem.SorguBaslik[3] = "Balt";
var MA1 = Sistem.MA(20, "Simple", "Kapanis");
var Veriler = Sistem.GrafikVerileri;
var Bu = Sistem.BollingerUp(Veriler, "Simple", 20, 2);
var Ba = Sistem.BollingerDown(Veriler, "Simple", 20, 2);
var C = Sistem.GrafikFiyatOku(Veriler, "Kapanis");
var j=Sistem.BarSayisi-1;
var Limit = MARJ*C[C.Count-1];
var Son = C[j];
// filtrele
var Fark12 = Son-MA1[j];//Math.Abs(Son-MA1[j]);
var bilgi = "";
if (Son<Ba[j])
{
bilgi = "Dibi delmiş";
Sistem.SorguZeminRengi = Color.Red;
Sistem.SorguYaziRengi = Color.White;
}else if (Son>Bu[j]) {
bilgi = "Tepeyi delmiş";
Sistem.SorguZeminRengi = Color.Green;
Sistem.SorguYaziRengi = Color.White;
}
if (Fark12 < Limit && Fark12>0) bilgi += "Orta üstü %1 yaklaşma..";
if (Math.Abs(Fark12) < Limit && Fark12<0) bilgi += "Orta alt %1 yaklaşma..";
//if (bilgi!="") {
Sistem.SorguDeger[0] = Son;
Sistem.SorguDeger[1] = Bu[j];
Sistem.SorguDeger[2] = MA1[j];
Sistem.SorguDeger[3] = Ba[j];
Sistem.SorguAciklama = bilgi;
Sistem.SorguEkle();
//}