MarginController

StockSharp.MatchingEngine

Реализация IMarginController по умолчанию. Кредитное плечо берется из Leverage (по умолчанию 1). Уровни Margin Call/Stop Out берутся из IPortfolio.

Реализует: IMarginController

Методы

CheckMarginLevel
public decimal CheckMarginLevel(IPortfolio portfolio, decimal unrealizedPnL)
result = marginController.CheckMarginLevel(portfolio, unrealizedPnL)

Рассчитайте текущий уровень маржи для портфеля.

portfolio
Портфолио.
unrealizedPnL
Текущий нереализованный PnL.

Возвращает: Соотношение уровня маржи (эквити/блокировано). Возвращает MaxValue, если заблокированных денег нет.

GetRequiredMargin
public decimal GetRequiredMargin(decimal price, decimal volume, PositionInfo position)
result = marginController.GetRequiredMargin(price, volume, position)

Рассчитайте необходимую маржу для ордера, используя кредитное плечо на уровне позиции.

price
Цена заказа.
volume
Объем заказа.
position
Информация о позиции (для кредитного плеча). Может быть нулевым (используется кредитное плечо по умолчанию 1).

Возвращает: Требуемая сумма маржи.

IsMarginCall
public bool IsMarginCall(IPortfolio portfolio, decimal unrealizedPnL)
result = marginController.IsMarginCall(portfolio, unrealizedPnL)

Проверьте, находится ли портфель в состоянии маржинального требования. Использует MarginCallLevel.

portfolio
Портфолио.
unrealizedPnL
Текущий нереализованный PnL.

Возвращает: Истинно, если уровень маржи равен или ниже порога маржинального требования.

IsStopOut
public bool IsStopOut(IPortfolio portfolio, decimal unrealizedPnL)
result = marginController.IsStopOut(portfolio, unrealizedPnL)

Проверьте, находится ли портфель в состоянии стоп-аута. Использует EnableStopOut и StopOutLevel.

portfolio
Портфолио.
unrealizedPnL
Текущий нереализованный PnL.

Возвращает: Истинно, если стоп-аут включен и уровень маржи находится на уровне или ниже порога стоп-аута.

ValidateOrder
public InvalidOperationException ValidateOrder(IPortfolio portfolio, decimal price, decimal volume, PositionInfo position)
result = marginController.ValidateOrder(portfolio, price, volume, position)

Убедитесь, что в портфеле достаточно средств для заказа.

portfolio
Портфолио для проверки.
price
Цена заказа.
volume
Объем заказа.
position
Информация о позиции (для кредитного плеча). Может быть нулевым.

Возвращает: Ошибка, если недостаточно средств, в противном случае — ноль.