Lewati ke isi

Estimasi margin

Di cTrader Windows 4.5, kami menambahkan perhitungan estimasi margin ke Algo API. Dengan kata lain, Anda sekarang dapat menggunakan metode untuk memeriksa berapa banyak margin Anda yang akan digunakan oleh posisi baru atau order.

Cara kerja estimasi margin

Untuk menghitung estimasi margin, panggil metode Symbol.GetEstimatedMargin() dan berikan argumen yang diperlukan, yaitu jenis trading (beli atau jual) dan volume order.

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

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

Karena GetEstimatedMargin() adalah metode antarmuka, Anda dapat menggunakannya dengan objek Symbol atau SymbolInfo apa pun seperti yang ditunjukkan di bawah ini.

 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)}"); 
        }
    }
}

Catatan

Selama backtesting atau optimisasi, metode GetEstimatedMargin() akan mengembalikan estimasi margin tanpa mempertimbangkan eksposur.