SbeStopCondition
Conditional-order condition for the SBE wire format. Carries both the stop flavour (stop-loss / take-profit, with percent + trailing variants) and the algorithmic-execution flavour (TWAP / VWAP / Iceberg / NBBO). The flavour is told apart by AlgoCode: null means a plain stop, otherwise the order is an algo parent (the value is the Algorithm book code) the router forwards to the algo server.
Наследует: OrderCondition
Реализует: IStopLossOrderCondition, ITakeProfitOrderCondition, IPercentStopOrderCondition
Свойства
public decimal? ActivationPrice { get; set; }
value = sbeStopCondition.ActivationPrice
sbeStopCondition.ActivationPrice = value
The absolute value of the price when the one is reached the protective strategy is activated.
public string AlgoCode { get; set; }
value = sbeStopCondition.AlgoCode
sbeStopCondition.AlgoCode = value
Algorithmic-execution code — the Algorithm book code (e.g. TWAP / VWAP / Iceberg / NBBO) the order is routed to. Null on a plain stop order.
public DateTime? AlgoEndAt { get; set; }
value = sbeStopCondition.AlgoEndAt
sbeStopCondition.AlgoEndAt = value
UTC time the algo must finish by (then cancels the remainder).
public string AlgoParametersJson { get; set; }
value = sbeStopCondition.AlgoParametersJson
sbeStopCondition.AlgoParametersJson = value
JSON of per-algo parameters (slice count, display volume, participation rate, …). Algo-specific schema, opaque to the wire/condition.
public DateTime? AlgoStartAt { get; set; }
value = sbeStopCondition.AlgoStartAt
sbeStopCondition.AlgoStartAt = value
UTC time the algo should start working.
public decimal? ClosePositionPrice { get; set; }
value = sbeStopCondition.ClosePositionPrice
sbeStopCondition.ClosePositionPrice = value
Close position price. means close by market.
public string Extra { get; set; }
value = sbeStopCondition.Extra
sbeStopCondition.Extra = value
A venue's own order condition, in whatever encoding that venue uses. The record layout names a fixed set of stop fields, and a venue that has more of them than that - QUIK's repo and negotiated-trade blocks, for one - would otherwise have nowhere to put the rest. The wire carries this through untouched; only the two ends that know the venue read it.
public bool IsActivationPricePercent { get; set; }
value = sbeStopCondition.IsActivationPricePercent
sbeStopCondition.IsActivationPricePercent = value
When , ActivationPrice (or ActivationPrice) is a percent of the market price at registration time. The server snapshots the price and stores the resulting absolute trigger.
public bool IsClosePositionPricePercent { get; set; }
value = sbeStopCondition.IsClosePositionPricePercent
sbeStopCondition.IsClosePositionPricePercent = value
When , ClosePositionPrice (or ClosePositionPrice) is a percent of the activation price; the limit price is computed at trigger time.
public bool IsTrailing { get; set; }
value = sbeStopCondition.IsTrailing
sbeStopCondition.IsTrailing = value
Trailing stop-loss.
public bool IsTrailingOffsetPercent { get; set; }
value = sbeStopCondition.IsTrailingOffsetPercent
sbeStopCondition.IsTrailingOffsetPercent = value
When , the trailing offset is a percent of the high/low watermark; the stop price is recomputed on each tick.
public decimal? TrailingOffset { get; set; }
value = sbeStopCondition.TrailingOffset
sbeStopCondition.TrailingOffset = value
Trailing stop offset from extremum (for trailing stops).
public FixStopOrderTypes? Type { get; set; }
value = sbeStopCondition.Type
sbeStopCondition.Type = value
Stop flavor (stop-loss / take-profit, with trailing variants), so the SBE wire preserves whether the order is a take-profit or a stop-loss instead of collapsing both to a stop.