IMarginController
Интерфейс для управления логикой маржинальной торговли. Кредитное плечо рассчитывается по позициям (кредитное плечо). Уровни маржинального колл/стоп-аута указаны для каждого портфеля (MarginCallLevel, StopOutLevel).
Методы
public decimal CheckMarginLevel(IPortfolio portfolio, decimal unrealizedPnL)
result = iMarginController.CheckMarginLevel(portfolio, unrealizedPnL)
Рассчитайте текущий уровень маржи для портфеля.
- portfolio
- Портфолио.
- unrealizedPnL
- Текущий нереализованный PnL.
Возвращает: Соотношение уровня маржи (эквити/блокировано). Возвращает MaxValue, если заблокированных денег нет.
public decimal GetRequiredMargin(decimal price, decimal volume, PositionInfo position)
result = iMarginController.GetRequiredMargin(price, volume, position)
Рассчитайте необходимую маржу для ордера, используя кредитное плечо на уровне позиции.
- price
- Цена заказа.
- volume
- Объем заказа.
- position
- Информация о позиции (для кредитного плеча). Может быть нулевым (используется кредитное плечо по умолчанию 1).
Возвращает: Требуемая сумма маржи.
public bool IsMarginCall(IPortfolio portfolio, decimal unrealizedPnL)
result = iMarginController.IsMarginCall(portfolio, unrealizedPnL)
Проверьте, находится ли портфель в состоянии маржинального требования. Использует MarginCallLevel.
- portfolio
- Портфолио.
- unrealizedPnL
- Текущий нереализованный PnL.
Возвращает: Истинно, если уровень маржи равен или ниже порога маржинального требования.
public bool IsStopOut(IPortfolio portfolio, decimal unrealizedPnL)
result = iMarginController.IsStopOut(portfolio, unrealizedPnL)
Проверьте, находится ли портфель в состоянии стоп-аута. Использует EnableStopOut и StopOutLevel.
- portfolio
- Портфолио.
- unrealizedPnL
- Текущий нереализованный PnL.
Возвращает: Истинно, если стоп-аут включен и уровень маржи находится на уровне или ниже порога стоп-аута.
public InvalidOperationException ValidateOrder(IPortfolio portfolio, decimal price, decimal volume, PositionInfo position)
result = iMarginController.ValidateOrder(portfolio, price, volume, position)
Убедитесь, что в портфеле достаточно средств для заказа.
- portfolio
- Портфолио для проверки.
- price
- Цена заказа.
- volume
- Объем заказа.
- position
- Информация о позиции (для кредитного плеча). Может быть нулевым.
Возвращает: Ошибка, если недостаточно средств, в противном случае — ноль.