MarginController
A implementação padrão de IMarginController. A alavancagem é retirada da alavancagem (padrão 1). Os níveis de chamada/parada de margem são retirados do IPortfolio.
Implementa: IMarginController
Métodos
public decimal CheckMarginLevel(IPortfolio portfolio, decimal unrealizedPnL)
result = marginController.CheckMarginLevel(portfolio, unrealizedPnL)
Calcular o nível de margem atual para uma carteira.
- portfolio
- Portfólio.
- unrealizedPnL
- Atual não realizada PnL.
Retorna: Razão de nível de margem (equidade / bloqueada). Retorna MaxValuese não houver dinheiro bloqueado.
public decimal GetRequiredMargin(decimal price, decimal volume, PositionInfo position)
result = marginController.GetRequiredMargin(price, volume, position)
Calcular a margem necessária para uma ordem, usando alavancagem de nível de posição.
- price
- Preço de encomenda.
- volume
- Volume de encomenda.
- position
- Informação da posição (para alavancagem). Pode ser nulo (usa a alavancagem padrão 1).
Retorna: Montante da margem exigida.
public bool IsMarginCall(IPortfolio portfolio, decimal unrealizedPnL)
result = marginController.IsMarginCall(portfolio, unrealizedPnL)
Verifique se o portfólio está em estado de chamada de margem. Use MarginCallLevel.
- portfolio
- Portfólio.
- unrealizedPnL
- Atual não realizada PnL.
Retorna: Verdadeiro se o nível de margem estiver abaixo ou abaixo do limiar de valor de cobertura de margem.
public bool IsStopOut(IPortfolio portfolio, decimal unrealizedPnL)
result = marginController.IsStopOut(portfolio, unrealizedPnL)
Verifique se o portfólio está em estado de parada. Usa EnableStopOut e StopOutLevel.
- portfolio
- Portfólio.
- unrealizedPnL
- Atual não realizada PnL.
Retorna: Verdadeiro se o stop-out estiver habilitado e o nível de margem estiver abaixo ou abaixo do limiar de stop-out.
public InvalidOperationException ValidateOrder(IPortfolio portfolio, decimal price, decimal volume, PositionInfo position)
result = marginController.ValidateOrder(portfolio, price, volume, position)
Validar essa carteira tem fundos suficientes para a ordem.
- portfolio
- Portfólio para verificar.
- price
- Preço de encomenda.
- volume
- Volume de encomenda.
- position
- Informação da posição (para alavancagem). Pode ser nula.
Retorna: Erro se fundos insuficientes, nulo caso contrário.