OrderBookSpreadWidener
シンメトリクスは、QuoteChangeMessage.. 新規(ワイド)内のすべての生レベルを崩壊させるため、新しい目に見えるベストに広がります。 外部レベルが通過します。 呼び出し元はOrderBookSnapshotHolder@から現在の生のブックの状態を読み、呼び出し元はSnapshotComplete@に初期の後に増加フレームを維持し、放出します。
コンストラクター
public OrderBookSpreadWidener(decimal percent)
orderBookSpreadWidener = OrderBookSpreadWidener(percent)
OrderBookSpreadWidenerクラスの新しいインスタンスを初期化します。
- percent
- ハーフスプレッドの増幅、パーセント。 ノンポジティブは、幅を広げるのを抑制します。
プロパティ
public bool IsEnabled { get; }
value = orderBookSpreadWidener.IsEnabled
パーセントがプラスで広まっている場合。
メソッド
public QuoteChangeMessage Apply(QuoteChangeMessage msg, OrderBookSnapshotHolder holder, decimal? priceStep)
result = orderBookSpreadWidener.Apply(msg, holder, priceStep)
Reads the current raw book from (the caller must have applied to the holder first) and rewrites it as either a full SnapshotComplete (first call for this security) or an Increment carrying only the changes against the previously-emitted collapsed view.
- msg
- Incoming order book change message.
- holder
- Holder of the current raw order book state.
- priceStep
- Price step of the security, so the widened best lands on a price that can be traded. when the step is unknown, and the widened price is then left as the arithmetic produced it.
戻り値: Collapsed message; the original message when widening is disabled or no raw snapshot is available; or if is .
public QuoteChangeMessage Collapse(SecurityId securityId, OrderBookSnapshotHolder holder, decimal? priceStep)
result = orderBookSpreadWidener.Collapse(securityId, holder, priceStep)
Returns the current collapsed view of as a fresh SnapshotComplete. Pure read — does not touch the diff-state used by Decimal}). Useful for replying to a new subscriber without re-emitting deltas from before their subscription.
- securityId
- Security to build the collapsed snapshot for.
- holder
- Holder of the current raw order book state.
- priceStep
- Price step of the security, so the widened best lands on a price that can be traded. when the step is unknown, and the widened price is then left as the arithmetic produced it.
戻り値: Collapsed snapshot, or when widening is disabled or no raw snapshot is available for .
private static QuoteChange[] Diff(Dictionary<decimal, QuoteChange> prev, QuoteChange[] new, Dictionary<decimal, QuoteChange> next)
result = OrderBookSpreadWidener.Diff(prev, new, next)
One walk produces both the changes against and the state to keep for the next call, so the emitted view is never built twice.
public void ResetSnapshot(SecurityId securityId)
orderBookSpreadWidener.ResetSnapshot(securityId)
diff-state を 増分 に ドロップすると、OrderBookSnapshotHolderを強制して、 新たに SnapshotComplete を 出力します。
- securityId
- 金融商品がリセットされるか、全ての金融商品をリセットする
private static decimal Snap(decimal price, decimal? priceStep, bool down)
result = OrderBookSpreadWidener.Snap(price, priceStep, down)
Moves the widened price onto the step grid, away from the market: down for a bid, up for an ask. Rounding to the nearest step instead would move it the other way half the time and quote a spread tighter than the one asked for, which is the thing widening exists to stop.