IMarginController
StockSharp.MatchingEngine
証拠金取引ロジックの制御インターフェース。レバレッジはパーポジション(レバレッジ)です。マージンコール/ストップアウトレベルはパーポートフォリオ(MarginCallLevel、StopOutLevel@)です。
メソッド
CheckMarginLevel
public decimal CheckMarginLevel(IPortfolio portfolio, decimal unrealizedPnL)
result = iMarginController.CheckMarginLevel(portfolio, unrealizedPnL)
ポートフォリオの現在のマージンレベルを計算します。
- portfolio
- ポートフォリオ
- unrealizedPnL
- 現行の非正規化PnL@
戻り値: 証拠金レベル比(等度/ブロック)。ブロックされたお金がなければMaxValue@に返して下さい。
GetRequiredMargin
public decimal GetRequiredMargin(decimal price, decimal volume, PositionInfo position)
result = iMarginController.GetRequiredMargin(price, volume, position)
ポジションレベルのレバレッジを使用して、注文に必要なマージンを計算します。
- price
- 注文価格。
- volume
- 注文数量。
- position
- 位置情報(レバレッジの場合)。null(デフォルトレバレッジ1を使用します) は使えます。
戻り値: 必須証拠金額。
IsMarginCall
public bool IsMarginCall(IPortfolio portfolio, decimal unrealizedPnL)
result = iMarginController.IsMarginCall(portfolio, unrealizedPnL)
ポートフォリオがマージンコール状態にあるかどうかを確認します。MarginCallLevel を使用します。
- portfolio
- ポートフォリオ
- unrealizedPnL
- 現行の非正規化PnL@
戻り値: 証拠金レベルが満たさか、または余白コールのしきい値の下にある場合真に。
IsStopOut
public bool IsStopOut(IPortfolio portfolio, decimal unrealizedPnL)
result = iMarginController.IsStopOut(portfolio, unrealizedPnL)
ポートフォリオが停止状態にあるかどうかを確認します。EnableStopOutおよびStopOutLevel を使用してください。
- portfolio
- ポートフォリオ
- unrealizedPnL
- 現行の非正規化PnL@
戻り値: ストップアウトが有効になっていて、マージンレベルが停止し、ストップアウトのしきい値の下にある場合、真に。
ValidateOrder
public InvalidOperationException ValidateOrder(IPortfolio portfolio, decimal price, decimal volume, PositionInfo position)
result = iMarginController.ValidateOrder(portfolio, price, volume, position)
ポートフォリオに十分な資金が発注されることを検証します。
- portfolio
- ポートフォリオをチェックする。
- price
- 注文価格。
- volume
- 注文数量。
- position
- 位置情報(レバレッジ)。null は使えます。
戻り値: 不十分な資金がある場合、エラー、それ以外の場合は無効です。