OrderBookSpreadWidener
Simmetric spread widener para QuoteChangeMessage. Recolher todos os níveis brutos dentro do novo (largura) espalhado para o novo melhor visível; níveis externos passam através. Lê o estado atual do livro bruto de um OrderBookSnapshotHolder o chamador mantém e emite quadros de Incremento após o inicial SnapshotComplete.
Construtores
public OrderBookSpreadWidener(decimal percent)
orderBookSpreadWidener = OrderBookSpreadWidener(percent)
Inicializa uma nova instância da classe OrderBookSpreadWidener.
- percent
- Meio-alargamento, em percentagem.
Propriedades
public bool IsEnabled { get; }
value = orderBookSpreadWidener.IsEnabled
Se a percentagem for positiva e for aplicado um alargamento.
public decimal Percent { get; }
value = orderBookSpreadWidener.Percent
Meio-alargado, em percentagem.
Métodos
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.
Retorna: 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.
Retorna: 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)
Solta o estado de diff usado para emitir incrementos, forçando o próximo OrderBookSnapshotHolder) a emitir um novo SnapshotComplete.
- securityId
- Instrumento financeiro para repor ou repor todos os instrumentos financeiros.
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.