콘텐츠로 이동

마진 예측

cTrader Windows 4.5에서 Algo API에 예상 마진 계산을 추가했습니다. 즉, 새로운 포지션 또는 주문이 마진을 얼마나 사용할지 확인하는 메서드를 사용할 수 있습니다.

마진 예측 작동 방식

예상 마진을 계산하려면 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() 메서드는 노출을 고려하지 않고 예상 마진을 반환합니다.