Getiri Hesapla ve KarZarar Fonksiyonları

GetiriHesapla Fonksiyonu ve Alt Listeleri

Fonksiyonun Kullanım Şekilleri
  • Sistem.GetiriHesapla(Tarih, Komisyon); (Tarih bilgisi çift tırnak içinde gg/aa/yyyy şeklinde girilir.)
Fonksiyonun Amacı ve Kullanımı

Sistem.GetiriHesapla fonksiyonu, bir sistem formülüne yazıldığı zaman, sisteminizin stratejisi, bu fonksiyona girilen başlangıç tarihinden itibaren son bara kadar hesaplanır ve bir kayıt listesinde tutulur. Hesaplama yapılırken, komisyon veya kayma maliyetlerini de girerseniz, o maliyetleri çıkarıp getiri hesabı yapar.

Stratejinizi yazıp grafiğe uyguladınız, al/sat noktalarını görüyorsunuz, ama hemen altında da getiri/KZ grafiği eklemek istiyorsanız bu fonksiyonla getiriyi hesaplatabilirsiniz. Geriye kalan, sonucu bir çizgiye atamak.

Fonksiyonu, başlangıç tarihi ve isteniyorsa kayma/komisyon maliyeti için işlem başına düşülmesi istene puan/fiyat bilgisi girerek, aşağıdaki şekilde kullanabilirsiniz:

Sistem.GetiriHesapla(“01/01/2010”, 0.00);

Alt Fonksiyonlar

Getiri Hesapla fonksiyonu, sistemin işleme girdiği barları, işleme girdiği fiyatları, pozisyonun yönünü ve miktarını bulur ve çeşitli listelere doldurur. Tek başına bu fonksiyonu koda yazmak yeterli değildir. Bu fonksiyon ile elde edilen/hesaplanan verilerin her birine aşağıda tam listesi verilen birer alt fonksiyon ile ulaşılır. Bu fonksiyonların bazıları liste verir (grafiğe çizgi olarak çizdirilenler). Bir kısmı ise sayı/oran/değer gibi bir tek sonuç (performans analiz raporundaki önemli bilgiler) olarak elde edilir. (formülde kullanmak, ekrana yazdırmak vs amaçlı)

GRAFİĞE ÇİZDİRİLEBİLEN GETİRİ HESAPLA LİSTELERİ:

  • Sistem.GetiriKZ
  • Sistem.GetiriMiktar
  • Sistem.GetiriPozisyon
  • Sistem.GetiriKZPoz
  • Sistem.GetiriKZGun
  • Sistem.GetiriKZAy
  • Sistem.GetiriKZYil

PUAN/ORAN/SAYI VERİLERİ SUNAN GETİRİ HESAPLA SONUÇLARI:

  • Sistem.GetiriKarIslem
  • Sistem.GetiriKarMiktar
  • Sistem.GetiriZararIslem
  • Sistem.GetiriZararMiktar
  • Sistem.GetiriKarIslemOran
  • Sistem.GetiriNetKar
  • Sistem.GetiriToplamIslem
Örnek Kullanım-1

TOMA stratejisi kullanılan bit sistemde, GETİRİ HESAPLA fonksiyon ile dönen tüm listeler kullanılmış ve hepsi aşağıdaki örnekte ekrana çizdirilmiştir.
var TOMA = Sistem.TOMA(3, 2.48);
var Veriler = Sistem.GrafikFiyatSec(“Kapanis”);
var EMA = Sistem.MA(Veriler, “Exp”, 3);

Sistem.KesismeTara(EMA, TOMA);
var Renk2 = Sistem.Renk(60,255,0,100);
var Renk1 = Sistem.Renk(60,0,255,0);

Sistem.GetiriHesapla(“01/01/2010”, 0.00);

Sistem.Cizgiler[0].Deger = Sistem.GetiriKZ;
Sistem.Cizgiler[1].Deger = Sistem.GetiriKZPoz;
Sistem.Cizgiler[2].Deger = Sistem.GetiriKZGun;
Sistem.Cizgiler[3].Deger = Sistem.GetiriKZGun;
Sistem.Cizgiler[4].Deger = Sistem.GetiriKZYil;
Sistem.Cizgiler[5].Deger = Sistem.GetiriMiktar;
Sistem.Cizgiler[6].Deger = Sistem.GetiriPozisyon;
Grafikteki Görüntü Aşağıdaki gibidir.

Örnek Kullanım-2

ÖRNEK:SUM fonksiyonu kullanılarak oluşturulan bir strateji kullanan bir sistemde, her bir işlem bazında KAR/ZARARI çizdiren, Performans Analizindeki bazı önemli sonuçları da grafik üzerine yazdıran örnek (İLK 2 ÇİZGİ AKTİF EDİLİR, PANEL NUMARALARI 2 YAPILIR)
var C = Sistem.GrafikFiyatSec(“Kapanis”);
var A = Sistem.Sum(C,10);
var B = Sistem.Liste(0);

for (int i=3; i<sistem.barsayisi; i++)<br=””> B[i] = A[i]+A[i-1]-A[i-2]-A[i-3]; </sistem.barsayisi;>

var SonYon =””;
for (int i=1; i<sistem.barsayisi; i++)=”” {=”” if(b[i]=””> 3.60f && SonYon!=”A”)
{
Sistem.Yon[i] = “A”;
SonYon = “A”;
}
else if(B[i] < -3.60f && SonYon!=”S”)
{
Sistem.Yon[i] = “S”;
SonYon = “S”;
}
}
Sistem.GetiriHesapla(“01/01/2010”,0.000); </sistem.barsayisi;>

var Renk1 = Sistem.Renk(150, 255, 255, 0);
var Renk2 = Sistem.Renk(255, 0, 255, 0);
var Renk3 = Sistem.Renk(255, 255, 0, 80);

Sistem.ZeminYazisiEkle(“Toplam İşlem Sayısı = ” + ” ” +Sistem.GetiriToplamIslem.ToString(“0”), 1, 170, 20, Renk1, “Tahoma”, 10);
Sistem.ZeminYazisiEkle(“Kazandıran İşlem Sayısı = ” + ” ” + Sistem.GetiriKarIslem.ToString(“0”), 1, 170, 35, Renk1, “Tahoma”, 10);
Sistem.ZeminYazisiEkle(“Kaybettiren İşlem Sayısı = ” + ” ” + Sistem.GetiriZararIslem.ToString(“0”),1, 170, 50, Renk1, “Tahoma”, 10);
Sistem.ZeminYazisiEkle(“Karlı İşlem Miktarı = ” + ” ” + Sistem.GetiriKarMiktar.ToString(“0.000”), 1, 220, 85, Renk1, “Tahoma”, 10);
Sistem.ZeminYazisiEkle(“Zararlı İşlem Miktarı = ” + ” ” + Sistem.GetiriZararMiktar.ToString(“0.000”),1, 220, 100, Renk1, “Tahoma”, 10);
Sistem.ZeminYazisiEkle(“Karlı İşlem Oranı = ” + “% ” + Sistem.GetiriKarIslemOran.ToString(“0.00”), 1, 220, 115, Renk1, “Tahoma”, 10);
Sistem.ZeminYazisiEkle(“Profit Factor = ” + ” ” + Sistem.ProfitFactor.ToString(“0.00”),1, 440, 40, Renk3, “Tahoma”, 12);
Sistem.ZeminYazisiEkle(“Net Kar = ” + ” ” + Sistem.GetiriNetKar.ToString(“0.000”),1, 440, 20, Renk2, “Tahoma”, 15);

Sistem.Cizgiler[0].Deger = Sistem.GetiriKZPoz;
Sistem.Cizgiler[1].Deger = Sistem.Liste(0);

var Renk10 = Sistem.Renk(60,255,0,0);
var Renk20 = Sistem.Renk(60,0,255,0);
Sistem.DolguEkle(1,0,Renk10,Renk20);

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

Örnek Kullanım-3

2 Hareketli ortalamanın kesişimi stratejisi kullanan sisteme KarZarar (getiri) eğrisi eklenemek. (çizgi panel no 2)
var A1 = Sistem.MA(3, “Simple”, “Kapanis”);
var A2 = Sistem.MA(20, “Simple”, “Kapanis”);
var SonYon = “”;

for (int i = 1; i < Sistem.BarSayisi; i++) { if (A1[i] > A2[i] && SonYon != “A”)
{
Sistem.Yon[i] = “A”;
SonYon = Sistem.Yon[i];
}
else if (A1[i] < A2[i] && SonYon != “S”)
{
Sistem.Yon[i] = “S”;
SonYon = Sistem.Yon[i];
}
}

Sistem.GetiriHesapla(“01/01/2010”, 0.00);
Sistem.Cizgiler[0].Deger = Sistem.GetiriKZ

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

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.