Aller au contenu

Estimations de marge

Dans cTrader Windows 4.5, nous avons ajouté des calculs de marge estimée à l'API Algo. En d'autres termes, vous pouvez maintenant utiliser une méthode pour vérifier quelle part de votre marge sera utilisée par une nouvelle position ou un ordre.

Comment fonctionnent les estimations de marge

Pour calculer la marge estimée, appelez la méthode Symbol.GetEstimatedMargin() et transmettez les arguments requis, à savoir le type de trade (achat ou vente) et le volume de l'ordre.

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

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

Comme GetEstimatedMargin() est une méthode d'interface, vous pouvez l'utiliser avec n'importe quel objet Symbol ou SymbolInfo comme indiqué ci-dessous.

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

Remarque

Pendant le backtesting ou l'optimisation, la méthode GetEstimatedMargin() renverra la marge estimée sans prendre en compte l'exposition.