Ana içeriğe geç

Marjin tahminleri

cTrader Windows 4.5'te, Algo API'ye tahmini marjin hesaplamaları ekledik. Başka bir deyişle, yeni bir pozisyon veya emir tarafından marjinizin ne kadarının kullanılacağını kontrol etmek için artık bir yöntem kullanabilirsiniz.

Marjin tahminleri nasıl çalışır

Tahmini marjini hesaplamak için Symbol.GetEstimatedMargin() yöntemini çağırın ve gerekli argümanları, yani işlem türünü (alış veya satış) ve emir hacmini geçirin.

1
2
3
4
var estimatedMargin = Symbol.GetEstimatedMargin(TradeType.Buy, 10000);

if (estimatedMargin > Account.FreeMargin)
    Print("Not enough margin");

GetEstimatedMargin() bir arayüz yöntemi olduğundan, aşağıda gösterildiği gibi herhangi bir Symbol veya SymbolInfo nesnesiyle kullanabilirsiniz.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using cAlgo.API;

namespace cAlgo.Robots
{
    [Robot(AccessRights = AccessRights.None)]
    public class ExpectedMargin : Robot
    {
        [Parameter("Volume", DefaultValue = 10000, MinValue = -1)]
        public double Volume {get; set;}

        [Parameter("Symbol Name")]
        public string UserSymbolName {get; set;}

        protected override void OnStart()
        {
            if (string.IsNullOrWhiteSpace(UserSymbolName))
                UserSymbolName = SymbolName;

            Print($"Buy: {Symbols.GetSymbolInfo(UserSymbolName).GetEstimatedMargin(TradeType.Buy, Volume)}");
            Print($"Sell: {Symbols.GetSymbolInfo(UserSymbolName).GetEstimatedMargin(TradeType.Sell, Volume)}"); 
        }
    }
}

Not

Geriye dönük test veya optimizasyon sırasında, GetEstimatedMargin() yöntemi, risk maruziyetini dikkate almadan tahmini marjini döndürecektir.