OrderBookSpreadWidener
QuoteChangeMessage 的对称扩展宽度。 将新(宽度) 内部的每个生平水平压缩到新的可见最佳; 外部水平通过。 从 OrderBookSnapshotHolder 读取当前原始书状态, 调用者在 SnapshotComplete 初始版本后保持并释放增量框架 。
构造函数
public OrderBookSpreadWidener(decimal percent)
orderBookSpreadWidener = OrderBookSpreadWidener(percent)
初始化了 & ##OrderBookSpreadWidener+# 类的新实例 。
- percent
- 半宽,以百分比计,非正性功能障碍
属性
方法
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.