Alıntı Originally Posted by Caglar Yazıyı Oku
Tiberius hocam değer verdiğim parametrelerden, max days to new high hesaplaması yapıyor musunuz? Akşam eve gidince yazıp gönderiyim. YKOC un sisteminde en çok merak ettiğim değer o şu anda.
Umit hocam, sistemin yeni yüksek yapması için geçen maximum günü hesaplayan formül aşağıda:

Kod:
public int CalcMaxDaysToNewHigh(List<float> equityCurve, List<cxBar> prices)
{
    if (equityCurve == null || prices == null) return -1;
    if (equityCurve.Count != prices.Count) return -1;


    var maxDaysToNewHigh = -1;
    var equityHigh = 0f;
    var dateOfEquityHigh = DateTime.MaxValue;


    for (var i = 0; i < equityCurve.Count; i++)
    {
        var equity = equityCurve[i];
        var date = prices[i].Date;


        if (equity > equityHigh)
        {
            equityHigh = equity;
            dateOfEquityHigh = date;
        }


        var duration = date - dateOfEquityHigh;
        maxDaysToNewHigh = Math.Max(maxDaysToNewHigh, (int)duration.TotalDays);
    }


    return maxDaysToNewHigh;
}
Formül şu şekilde kullanılabilir:

Kod:
var maxDaysToNewHigh = User.CalcMaxDaysToNewHigh(Sistem.GetiriKZ, Sistem.GrafikVerileri);
Sistem.Mesaj(maxDaysToNewHigh.ToString());
Müsait bir zamanınızda ne kadar değer veriyor yazabilirseniz bilgilenmiş oluruz. Bu kadar iyi bir sistemin < 30 vermesini bekliyorum. 60'dan küçük bir değer henüz benim ulaşabildiğim bir değer değil. 28'lik bir sistemi şu anda test ediyorum ancak gerçek hesapta işlem yapmaya başlamadığım için onu saymıyorum.