DonemCevir Fonksiyonu

Fonksiyonun Kullanım Şekli
  • Sistem.DonemCevir(Veriler, UstDonemVerileri, UstDonemCevrilecekData)
Fonksiyonun Amacı

Bir sembolün herhangi bir periyodunun verilerini veya o periyoda ait verilerden elde edilen hesaplanmış listeleri/indikatörleri daha küçük periyotta çizdirebilmek için DonemCevir fonksiyonu hazırlanmıştır.

Örnek: Bir senedin günlük periyotta gördüğü en yüksek ve en düşük değerleri, aynı senedin günlük grafiği üzerine çizdirmek, Günlük grafikteki bir hareketli ortalamasını daha küçük zaman dilimli grafikte görmek.

Örnek Kullanım-1

ÖRNEK: VIP30 5 DK Grafiğinin altına, XU030 ve USDTRY kodlarının 5 dk grafiklerinin kapanışlarını bir indikatör gibi çizdirmek.

//üst periyot verilerini oku
var UstBars = Sistem.GrafikVerileriniOku(Sistem.Sembol,"H"); 
var KPN0 = Sistem.Liste(0);
var KPN1 = Sistem.Liste(0);
var Fark = Sistem.Liste(0); 

for (int i = 1; i < UstBars.Count; i++)
{
   KPN0[i] = UstBars[i].Close;  //Haftalık kapanışlar
   KPN1[i] = UstBars[i-1].Close;  // Haftalık kapanışların birer bar öncesi
   Fark[i] = 100 * ((KPN0[i] - KPN1[i] ) / KPN1[i]); //Haftalık kapanışların yüzde değişim farkı
} 

//Verileri hizala
var Hizali0 = Sistem.DonemCevir(Sistem.GrafikVerileri, UstBars, KPN0);
var Hizali1 = Sistem.DonemCevir(Sistem.GrafikVerileri, UstBars, KPN1);
var HizaliFark = Sistem.DonemCevir(Sistem.GrafikVerileri, UstBars, Fark); 

Sistem.Cizgiler[0].Deger = Hizali0;
Sistem.Cizgiler[1].Deger = Hizali1;
Sistem.Cizgiler[2].Deger = HizaliFark;
Sistem.Cizgiler[3].Deger = Sistem.Liste(0); 

//Panelden çizgi numaraları, renkleri, kalınlık ve stileri aşağıdaki gibidir.

Grafikteki Görüntü Aşağıdaki gibidir.

Örnek Kullanım-2

ÖRNEK: ÖNCEKİ GÜNÜN YÜKSEK VE DÜŞÜK DEĞERİNİ ALT PERİYOTTA ÇİZDİRMEK.

//Panelden ilk iki çizgi aktif edilir. Panel numaraları 1’dir.

//üst periyot verilerini oku
var UstBars = Sistem.GrafikVerileriniOku(Sistem.Sembol,"G");
var H = Sistem.Liste(0);
var L = Sistem.Liste(0);
for (int i = 1; i < UstBars.Count; i++)
{
   H[i] = UstBars[i-1].High;
   L[i] = UstBars[i-1].Low;
} 

//Verileri hizala
var HH = Sistem.DonemCevir(Sistem.GrafikVerileri, UstBars, H);
var LL = Sistem.DonemCevir(Sistem.GrafikVerileri, UstBars, L); 

//ekranda çizgi olarak göster
Sistem.Cizgiler[0].Deger = HH;
Sistem.Cizgiler[1].Deger = LL;

Örnek Kullanım-3

Bir sembolün Haftalıktan daha düşük bir periyodunda, ENDEKS100’ün haftalık yüksek/düşük ve kapanışının grafik üzerine, Endeks100 ve grafiği bakılan sembolün o periyotları için hesaplanan TOMA indikatörlerinin de grafik altında çizdirilmesi örneği.

var Sembol = "IMKBX'XU100";
var Endeks = Sistem.GrafikVerileriniOku(Sembol, "G");
Endeks = Sistem.GrafikVerilerindeTarihHizala(Sistem.GrafikVerileri, Endeks); 

var Veriler = Sistem.GrafikVerileriniOku(Sembol, "60");
Veriler = Sistem.GrafikVerilerindeTarihHizala(Sistem.GrafikVerileri, Veriler); 

var HAFTA = Sistem.GrafikVerileriniOku(Sistem.Sembol, "H");
var KapHafta = Sistem.GrafikFiyatOku(HAFTA, "Kapanis");
var YkHafta = Sistem.GrafikFiyatOku(HAFTA, "Yuksek");
var DskHafta = Sistem.GrafikFiyatOku(HAFTA, "Dusuk");
var C =Sistem.DonemCevir(Sistem.GrafikVerileri, HAFTA , KapHafta );
var H =Sistem.DonemCevir(Sistem.GrafikVerileri, HAFTA , YkHafta );
var D =Sistem.DonemCevir(Sistem.GrafikVerileri, HAFTA , DskHafta ); 

var toma3 = Sistem.TOMA(Endeks,6,2); // günlük ve üstü periyotlar çizgiler1 bu değişken olmalı
var toma2 = Sistem.TOMA(Veriler,6,2); // alt periyotlarda çizgiler1 bu değişken olmalı 

Sistem.Cizgiler[0].Deger=Sistem.TOMA(6,2);
Sistem.Cizgiler[1].Deger=toma2;
Sistem.Cizgiler[2].Deger=C;
Sistem.Cizgiler[3].Deger=H;
Sistem.Cizgiler[4].Deger=D;

PANEL DURUMU:

GRAFİKTEKİ GÖRÜNÜM: