انتقل إلى المحتوى

تقديرات الهامش

في cTrader Windows 4.5، أضفنا حسابات الهامش المقدرة إلى واجهة برمجة تطبيقات Algo. بعبارة أخرى، يمكنك الآن استخدام طريقة للتحقق من مقدار الهامش الذي سيتم استخدامه بواسطة مركز جديد أو أمر.

كيف تعمل تقديرات الهامش

لحساب الهامش المقدر، قم باستدعاء طريقة Symbol.GetEstimatedMargin() وتمرير الوسائط المطلوبة، وهي نوع التداول (إما شراء أو بيع) وحجم الأمر.

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

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

نظرًا لأن GetEstimatedMargin() هي طريقة واجهة، يمكنك استخدامها مع أي كائنات Symbol أو SymbolInfo كما هو موضح أدناه.

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

ملاحظة

أثناء الاختبار العكسي أو التحسين، ستقوم طريقة GetEstimatedMargin() بإرجاع الهامش المقدر دون الأخذ في الاعتبار التعرض.