Grafik Fiyat Oku (Grafik Verileri, “Değer”)

Grafik Verileri Fonksiyonları

Fonksiyonların Kullanım Şekilleri
  • Sistem.GrafikVerileri();
  • Sistem.GrafikVerileriniOku(Sembol,Periyot);
  • Sistem.GrafikFiyatSec(“Deger”);
  • Sistem.GrafikFiyatOku(GrafikVerileri, “Değer”);
  • Sistem.GrafikFiyatOku(“IMKBH’YKBNK”,”G”, “Kapanis”);
Fonksiyonun AmacıBir Sembolün GRAFİK verilerini okumak için kullanılır.
Kullanım Şekilleri

*GrafikVerileri: Grafiğin üzerine uygulanacak bir formül (bir indikatör veya bir sistem) yazılırken kullanılır. Hangi sembolün hangi periyotlu grafiğinin verilerinin okunacağını, grafiğe uygulanınca kendisi anlar. Dönüş değeri satır ve sütunlardan oluşan (record) bir listedir. Listenin her bir satırı bir barı, her bir sütunu da o barın bir değerini (Open, High,Low,Close, Date,Time,Volume,Size vs) içerir. Bu fonksiyonla okutulan Veriler tablosundan bir veri tipi Veriler.Deger şeklinde çekilir.

ÖRNEK:

var V = Sistem.GrafikVerileri;

 

GrafikVerileri (veya GrafikVerileriniOku) fonksiyonu ile çekilen veri listesinde aşağıdaki Rercord’lar(Kayıtlar) yer alır. Her bir record(kayıt), VeriListesiAdı.Kayıt

  • Open
  • High
  • Close
  • Low
  • Date(Tarih&Saat fonksiyonunu detaylı inceleyiniz. C# Tarih metodlarının tamamını bu RECORD(KAYIT) için kullanabilirsiniz. (Aşağıda verilen örnekte, bir barın hem tarihi okunmuş hem de o tarih bilgisi içinden, barın haftanın hangi gününe ait olduğu bilgisi de çekilmiştir.)
  • Vol(Bar’a ait işlem hacmi)
  • Size (Bar’a ait işlem adedi)

ÖRNEK: Bir VOP kontratının (Ekim 2015 Vadeli) 5 dakikalık grafiğini VERİLER isimli bir listeye okutup, Bu Grafik listesinin 2500 numaralı (en eski bar NUMARASI SIFIRDIR) BAR’ı için yukarıdaki kayıtları (record’ları) okuyup DEBUG panelinde görelim;
var Sembol = “VIP’F_XU0301015S0”;
var Veriler = Sistem.GrafikVerileriniOku(Sembol, “5”);

Sistem.Debug(“1200 Nolu Barın KAPANIS FIYATI = “ + Veriler[2500].Close.ToString());
Sistem.Debug(“1200 Nolu Barın YÜKSEK FIYATI = “ + Veriler[2500].High.ToString());
Sistem.Debug(“120 Nolu Barın DÜŞÜK FIYATI = “ + Veriler[2500].Low.ToString());
Sistem.Debug(“120 Nolu Barın Günü = “ + Veriler[2500].Date.DayOfWeek.ToString());
Sistem.Debug(“120 Nolu Barın TARİH VE SAATİ = “ + Veriler[2500].Date.ToString());
Sistem.Debug(“120 Nolu Barın İŞLEM HACMİ = “ + Veriler[2500].Vol.ToString());
Sistem.Debug(“120 Nolu Barın İŞLEM ADEDİ = “ + Veriler[2500].Size.ToString());
SONUÇ ŞÖYLEDİR:

*GrafikVerileriniOku(Sembol, Periyot): Yazılan formül bir grafiğin üzerine uygulanmayacak ise (Algo, Robot veya başka amaçlı bir formül yazılıyorsa) Grafik Verilerini okutmak için, hangi sembolün hangi periyotlu grafiğini okumak istediğimizi belirtmemiz gerekir. Sembolü belirtirken PIYASA’KOD şeklinde kullanmak gerekir.

ÖRNEK:

  • var V1 = Sistem.GrafikVerileriniOku(“FX’EURUSD”, “5”);
  • var V2 = Sistem.GrafikVerileriniOku(“IMKBH’SAHOL”, “G”);
  • var V3 = Sistem.GrafikVerileriniOku(“VIP’VIP-X030”, “60”);

Dönüş Değeri, üstteki fonksiyonla aynıdır. İlgili sembolün belirtilen periyoduna ait grafiğinin tüm barları ve her bir bara ait saklanan tüm verileri bir Record olarak döner.

 

*GrafikFiyatSec(“Deger”): Grafiğin üzerine uygulanacak bir formül (bir indikatör veya bir sistem) yazılırken kullanılır. Hangi sembolün hangi periyotlu grafiğinin verilerinin okunacağını, grafiğe uygulanınca kendisi anlar. Dönüş değeri seçilen grafik veri tipini (Değer) içeren bir LİSTE dir. (Örneğin Her barın Kapanış değerleri).

Bu fonksiyon ile grafiğin barlarının aşağıdaki bilgileri (parantez içine çift tırnak içinde bunlardan biri yazılarak) okutulabilir:

  • Acilis
  • Kapanis
  • Dusuk
  • Yuksek
  • Hacim
  • Size
  • OHLC/4
  • Tipik
  • Ortalama
  • Orta Nokta

 

ÖRNEK:

var C = Sistem.GrafikFiyatSec(“Kapanis”);

var Vol = Sistem.GrafikFiyatSec(“Hacim”);

var H = Sistem.GrafikFiyatSec(“Yuksek”);

 

*GrafikFiyatOku(GrafikVerileri, “Deger”): BAR değerlerinin tamamını okuyan fonksiyonlardan biriyle (en başta anlatılan iki fonksiyondan biri) bir Veri (record) okutulmuş, bu Veri listesinden de barlara ait bir başka veri tipi elde edilmek isteniyorsa bu fonksiyon kullanılır. Bir üstte kullanılan fonksiyonun mantık ve format olarak aynısıdır. Tek farkı (algo veya robotlarda kullanıldığından) öncesinde hangi sembolün hangi periyoduna ait veriler kullanılacaksa, o veri listesinin belirtilmesidir.

 

ÖRNEK:

var Barlar = Sistem.GrafikVerileri(“IMKBH’GARAN”, “G”); //Garanti Bankası Hissesinin Günlük grafiklerinin tüm barları okutuldu

var Volume = Sistem.GrafikFiyatOku(Barlar, “Hacim”); //Okutulan bu veri listesinden, her barın hacim değeri okutuldu.

 

Volume artık, her bir bara ait hacim değerini (sayısal değer olarak) içeren bir listedir. İstenirse grafik üzerinde çizgi olarak da çizdirilebilir.

 

*GrafikFiyatOku(“IMKBH’YKBNK”,”G”,”Kapanis”: Bir sembolün, BAR verilerini okutmadan, direkt olarak barlara ait bir veri tipini okutmak için kullanılır. Parantez içindeki parametrelere sırasıyla ve çift tırnaklar içinde sembol,periyot ve veri tipi girilir. Dönüş değeri bir sayı listesidir.

GrafikVerileri Dönüş İçeriğinin Bar Bar okutulması

İlk Bardan son bara kadar, her bir bara ait verileri okumak, işlemek (hesap vs yapmak) ve başka bir listeye aktarmak için döngü kullanmak gerekir. Döngü içinde, her barı temsil eden ve sürekli artan bir değişken kullanılır ve listelerin her bir elemanı o listenin INDEX’i kullanılarak okunur/yazılır/hesaplatılır.

ÖRNEK: (Her bir barın yüksek ve düşükleri arasındaki farkı Listem1 olarak, Her barda gerçekleşmiş işlem adedi değerinin 10 katını da Listem2 olarak hesaplamak ve ekrana çizmek:
var Veri = Sistem.GrafikVerileri;
var Listem1 = Sistem.Liste(0);
var Listem2 = Sistem.Liste(0);

for (int i= 1; i < Veri.Count; i++)
{
Listem1[i] = (Veri[i].High – Veri[i].Low);
Listem2[i] = (Veri[i].Size* 10);
}
Sistem.Cizgiler[0].Deger = Listem1;
Sistem.Cizgiler[1].Deger = Listem2;

Örnek Kullanılar

ÖRNEK-1: VIOP kontratı Açık Pozisyon Sayısı Değişimlerini okuyup, VIOP grafiği altına çizdirmek
var Sembol = “VIP’VIP-X030-APOZ”;
var Veriler = Sistem.GrafikVerileri;
var V = Sistem.GrafikVerileriniOku(Sembol, “G”);
var APOZ2 = Sistem.GrafikFiyatOku(V, “Kapanis”);
var APOZ = Sistem.Liste(0);
var sonbar = Veriler.Count-1;

for (int i=1; i<sistem.barsayisi; i++)=”” apoz[i]=”Veriler[i].Opint;” sistem.cizgiler[0].deger=”APOZ;</pre”></sistem.barsayisi;>
ÖRNEK-2: GÜNLÜK PİVOT’ları hesaplayıp çizdirmek
var Veriler = Sistem.GrafikVerileriniOku(Sistem.Sembol, “G”);
var sonbar = Veriler.Count-1;
var H = Veriler[sonbar-1].High;
var L = Veriler[sonbar-1].Low;
var C = Veriler[sonbar-1].Close;
var R = H – L;
var P = (H + L + C) / 3;

var R3 = Sistem.Liste(0);
var R2 = Sistem.Liste(0);
var R1 = Sistem.Liste(0);
var S1 = Sistem.Liste(0);
var S2 = Sistem.Liste(0);
var S3 = Sistem.Liste(0);
var pivot = Sistem.Liste(0);

for (int i=1; i<sistem.barsayisi; i++)=”” {=”” r3[i]=”P” +=”” (r=”” *=”” 1.0f);=”” r2[i]=”P” 0.618f);=”” r1[i]=”P” 0.382f);=”” s1[i]=”P” -=”” s2[i]=”P” s3[i]=”P” pivot[i]=”P;” }=”” sistem.cizgiler[0].deger=”R3;” sistem.cizgiler[1].deger=”R2;” sistem.cizgiler[2].deger=”R1;” sistem.cizgiler[3].deger=”S1;” sistem.cizgiler[4].deger=”S2;” sistem.cizgiler[5].deger=”S3;” sistem.cizgiler[6].deger=”pivot;” <=”” pre=””></sistem.barsayisi;>

 

Daha Fazla Bilgiye mi İhtiyacınız Var?

Ürünlerimiz veya hizmetlerimizle ilgili yardıma ihtiyacınız varsa, lütfen bizimle temasa geçin.