Yatırımcıların en çok ihtiyaç duyabileceği çalışmalardan biri de, kendi belirledikleri kriterlere göre sembol aramaktır. Pek çok strateji veya filtre kriterini sistem modülünde formül olarak yazıp, bu filtreye uyan senetleri bul çalışmasını SORGU analiz aracı üzerinden yapabilirsiniz.
Sorgu filtrelerinizde kullanacağınız kriterler/koşullar neredeyse düşünebildiklerinizle sınırlı. Çünkü iDeal’de var olan yüzeysel, derinlik, bilanço, grafik ve indikatör verilerinin tamamını kullanabileceğiniz özel filtreler yazabilirsiniz.
Örneğin;
Gibi, böyle ve daha kapsamlı binlerce filtre düşünülebilir. Bu örnekleri, hangi verilerle nasıl kriterler yazabileceğinizi göstermek adına örnekledi.
Örnek-1: RSI değeri 35 ile 65 arasında olan senetleri sorgula.
Tam Kodu:
Sistem.SorguBaslik[0] = "Açılış"; Sistem.SorguBaslik[1] = "Yüksek"; Sistem.SorguBaslik[2] = "Düşük"; Sistem.SorguBaslik[3] = "Kapanış"; Sistem.SorguBaslik[4] = "Hacim"; Sistem.SorguBaslik[6] = "RSI 14"; Sistem.SorguBaslik[7] = "MOM 12"; var RSI = Sistem.RSI(14); var MOM = Sistem.Momentum(12); var SonRSI = RSI[Sistem.BarSayisi-1]; var SonMOM = MOM[Sistem.BarSayisi-1]; // filtrele if (SonRSI < 35 || SonRSI > 65) { Sistem.SorguDeger[0] = Sistem.GrafikVerileri[Sistem.BarSayisi-1].Open; Sistem.SorguDeger[1] = Sistem.GrafikVerileri[Sistem.BarSayisi-1].High; Sistem.SorguDeger[2] = Sistem.GrafikVerileri[Sistem.BarSayisi-1].Low; Sistem.SorguDeger[3] = Sistem.GrafikVerileri[Sistem.BarSayisi-1].Close; Sistem.SorguDeger[4] = Sistem.GrafikVerileri[Sistem.BarSayisi-1].Vol; Sistem.SorguDeger[6] = SonRSI; Sistem.SorguDeger[7] = SonMOM; if (SonRSI < 30.0F) Sistem.SorguAciklama = "Aşırı Satım"; else if (SonRSI > 70.0F) Sistem.SorguAciklama = "Aşırı Alım"; else Sistem.SorguAciklama = "Normal"; Sistem.SorguEkle(); }
Örnek-2: Filtre kuralı: FK değeri pozitif olan senetler
Sorgu ekranında gösterilmesi istenen ekstra bilgiler:
Tam Kodu:
Sistem.SorguBaslik[0] = "Kapanış"; Sistem.SorguBaslik[1] = "RSI 14"; Sistem.SorguBaslik[2] = "PD/DD"; Sistem.SorguBaslik[3] = "F/K"; Sistem.SorguOndalik[3] = 2; Sistem.SorguBaslik[4] = "1.Alış Lot"; Sistem.SorguOndalik[4] = 0; Sistem.SorguBaslik[5] = "1.Satış Lot"; Sistem.SorguOndalik[5] = 0; Sistem.SorguBaslik[6] = "5_Gün Ort"; Sistem.SorguBaslik[7] = "22Gün Ort"; Sistem.SorguBaslik[8] = "Gün %"; Sistem.SorguBaslik[9] = "Hafta %"; Sistem.SorguBaslik[10] = "Ay %"; Sistem.SorguBaslik[11] = "Yıl %"; var RSI = Sistem.RSI(14); var MA5 = Sistem.MA(5, "Simple", "Kapanis"); var MA22= Sistem.MA(22, "Simple", "Kapanis"); var SonRSI = RSI[Sistem.BarSayisi-1]; var SonMA5 = MA5[Sistem.BarSayisi-1]; var SonMA22 = MA22[Sistem.BarSayisi-1]; var FK = (float)Sistem.YuzeyselVeri.PriceEarningValue; var PDDD = (float)Sistem.YuzeyselVeri.PiyDegDefDeg; var ALISLOT = (float)Sistem.DerinlikVeri.Bids[0].Size; var SATISLOT = (float)Sistem.DerinlikVeri.Asks[0].Size; var Sembol = "IMKBH'GARAN"; var Derinlik = Sistem.DerinlikVerisiOku(Sembol); var AlisFiyatKademe0 = Derinlik.Bids[0].Price; var AlisLotKademe0 = Derinlik.Bids[0].Size; var SatisLotKademe3 = Derinlik.Bids[3].Size; // filtrele if (FK >0) { Sistem.SorguDeger[0] = Sistem.GrafikVerileri[Sistem.BarSayisi-1].Close; Sistem.SorguDeger[1] = SonRSI; Sistem.SorguDeger[2] = PDDD; Sistem.SorguDeger[3] = FK; Sistem.SorguDeger[4] = ALISLOT; Sistem.SorguDeger[5] = SATISLOT; Sistem.SorguDeger[6] = SonMA5; Sistem.SorguDeger[7] = SonMA22; Sistem.SorguDeger[8] = (float)Sistem.YuzeyselVeri.NetPerDay; Sistem.SorguDeger[9] = (float)Sistem.YuzeyselVeri.NetPerWeek; Sistem.SorguDeger[10] = (float)Sistem.YuzeyselVeri.NetPerMonth; Sistem.SorguDeger[11] = (float)Sistem.YuzeyselVeri.NetPerYear; if (FK < 10.0F) Sistem.SorguAciklama = "Kazanç Durumu İyi"; else if (FK > 10.0F && FK < 30.0F ) Sistem.SorguAciklama = "Kazanç Durumu Orta"; else Sistem.SorguAciklama = "Kazanç Durumu Kötü"; Sistem.SorguEkle(); }