마진 예측
cTrader Windows 4.5에서 Algo API에 예상 마진 계산을 추가했습니다. 즉, 새로운 포지션 또는 주문이 마진을 얼마나 사용할지 확인하는 메서드를 사용할 수 있습니다.
마진 예측 작동 방식
예상 마진을 계산하려면 Symbol.GetEstimatedMargin() 메서드를 호출하고 필요한 인수, 즉 거래 유형(매수 또는 매도)과 주문 거래량을 전달합니다.
| 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() 메서드는 노출을 고려하지 않고 예상 마진을 반환합니다.