Langkau tajuk talian

Anggaran margin

Dalam cTrader Windows 4.5, kami menambah pengiraan anggaran margin kepada API Algo. Dengan kata lain, anda kini boleh menggunakan kaedah untuk memeriksa berapa banyak margin anda yang akan digunakan oleh posisi baharu atau pesanan.

Bagaimana anggaran margin berfungsi

Untuk mengira anggaran margin, panggil kaedah Symbol.GetEstimatedMargin() dan hantarkan argumen yang diperlukan, iaitu jenis dagangan (sama ada beli atau jual) dan volum pesanan.

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

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

Oleh kerana GetEstimatedMargin() ialah kaedah antara muka, anda boleh menggunakannya dengan mana-mana objek Symbol atau SymbolInfo seperti yang ditunjukkan di bawah.

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

Nota

Semasa pengujian balik atau pengoptimuman, kaedah GetEstimatedMargin() akan mengembalikan anggaran margin tanpa mengambil kira pendedahan.