
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