Originally Posted by
mk4588
Arkadaşlar kolay gelsin herkese. Herhangi bir sistemin getirisinin yüzdesini herhangi iki tarih arasında hesaplayabilecek bir kod kalıbı var mı acaba? Mesela geçmiş performansa bakarken herhangi iki tarih arasında açılan ve kapatılan pozisyonlara göre kar veya zarar görebiliyoruz, fakat orda performans arayüzü minimum kaymaları ve komisyonu hesaplamıyor. Onu ben net yüzdeyi hesaplamak için excele atmak zorunda kalıyorum. O da biraz vakit alıyor. Yardımcı olabilecek arkadaş varsa mutlu olacağım. Ama arayüzde böyle birşeyin hala olmaması da bana çok ilginç geliyor. Çok önemli birşey değil mi ki bu? Sistemlerle alakalı en net bilgi kazanç veya kayıp yüzdesi değil midir? Bu arada ideale yazdım durumu bana tatmin edici bir cevap vermediler ben de mecbur forumlara yazıyorum
İki tarih arasındaki farkı ölçmek için aşağıdaki formülü kullanabilirsiniz.
Dip zirve analizi, Zirveden uzaklık vs. içinde değişiklilik yapılarak kullanılabilir. Her periyotta bar sayısını ölçmeden veya hesaplatmadan sonuçları verir.
PHP Code:
//var V = Sistem.GrafikVerileriniOku(Sistem.Sembol,Sistem.Periyot);
//
// ------Sistem
///
Sistem.GetiriHesapla("31/12/2004", 0.035 ); // Şu tarihten başlayarak kz hesapla ve her işlemin kaymasına bu puanı düş.
var KarZarar = Sistem.GetiriKZ;// ortaya çıkacak kz eğrisine KarZarar isimli değişkene ata
Sistem.Cizgiler[2].Deger = KarZarar;
// YIL, AY,GUN,SAAT,DK,SN,
var Tarih1 = new DateTime(2016, 1, 4, 0, 0, 0);
var Tarih2 = new DateTime(2019, 1, 4, 0, 0, 0);
int BarSayac = 0;
for (int i = 0; i < V.Count; i++)
{
if (V[i].Date > Tarih2) break;
if (V[i].Date >= Tarih1) BarSayac++;
}
int SonBaraSay = 0;
for (int i = 0; i < V.Count; i++)
{
if (V[i].Date >= Tarih2) SonBaraSay++;
}
int ilkTarih= 0;
for (int i = 0; i < V.Count; i++)
{
if (V[i].Date >= Tarih1) ilkTarih++;
}
var O=Sistem.Liste(0);
var C=Sistem.Liste(0);
var R = Sistem.Liste(0);
var Range = Sistem.Liste(0);
for (int i=ilkTarih; i<V.Count; i++)
{
C[i] = KarZarar[i-SonBaraSay+1];
O[i] = KarZarar[i-ilkTarih+1];
R[i] = C[i] - O[i] ;
Range = R[i];
if (V[i].Date == Tarih1)
Sistem.DikeyCizgiEkle(i, Color.Turquoise, 2, 3);
if (V[i].Date == Tarih2)
Sistem.DikeyCizgiEkle(i, Color.Turquoise, 2, 3);
}
//TEST
Sistem.ZeminYazisiEkle(Range.ToString("0.000"),2, 10, 25, Color.Silver, "Tahoma", 12);
Yer İmleri