Order Entry Specs
This document describes the application level FIX messages used to submit and manage orders for equities, futures, and options, including single-leg and multi-leg variants.
This document is intended to be used in conjunction with the SpiderRock FIX Session Guide which describes session level message handling and other SpiderRock FIX conventions in more detail.
Please refer to the OrderManagement section of this site for more information about SpiderRock execution and order management algos and concepts.
Supported Order Types
DMA style orders - These are market or limit orders with a simple limit price and a designated exchange.
Smart/Sweep style orders - These market or limit orders, with a simple limit price, and no designated exchange. These orders will be routed to one or more exchanges at SpiderRock's discretion.
Algorithmic orders These are orders with complex algo behavior and complex price and size limits. They can both provide and interact with liquidity on any public exchange.
Multi-Leg orders - Also known as spread orders, these are orders to buy and sell orders with more than one option simulaneously. Multi-Leg orders can have DMA, Smart/Sweep, or Complex Algo style order handling. They can also work legs individually across all relevant exchanges.
Opening/Closing auctions - Orders designated for participation in either exchange opening or closing auctions.
Staged/Wait Start order management Most order types may be queued in SpiderRock systems until released by the client. These order types can be used to integrate client risk/approval systems with orders generated by trading groups. Alternatively, they can be used to integrate trader approval of orders generated by automated strategies. not sure
Note: Orders can be both staged in and released by any combination of SpiderRock GUI tools, the SpiderRock SRSE API, and FIX messaging.
Application Messages
NewOrderSingle (Client to SpiderRock)
NewOrderSingle<D> messages are used to submit orders for single securities. Both the standard order types and algorithmic order types offered by SpiderRock are communicated using this message.
In addition to standard FIX fields, SpiderRock uses custom FIX fields (5,000+) for SpiderRock specific parameters.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
Standard Header | Y | MsgType = D | ||
11 | ClOrdId | Y | string | Client order ID (24 character max) |
1 | Account | Y | string | SR account acronym. Must be configured prior to testing or trading |
100 | ExDestination | N | string | SR Destination Code (see appendix) Required for DMA style orders |
40 | OrdType | N | char | 1 = Market 2 = Limit 5 = Market on Close B = Limit on Required for DMA and Smart/Sweep style orders. Not required for more complex order types. If necessary, use Market as the order type when submitting orders with more complex behavior. |
44 | Price | N | float | Required for limit order types |
59 | TimeInForce | N | string | 0 = Day 2 = Opening 3 = Immediate or Cancel (IOC) 6 = Good Till Date/Time (or Duration) 7 = Closing |
207 | SecurityExchange | N | string | Market used to identify a security's issuing authority (see Appendix A for those accepted by SpiderRock) For Futures products: the issuing authority must be supplied For Equities and Equity Options in which the issuing authority SecurityExchange<207> is not explicitly supplied, NMS is assumed. |
461 | CFICode | N | string | ES = Equity Common Shares [CS] F = Future [FUT] OC = Option - Call [OPT] OP = Option - Put [OPT] |
201 | PutOrCall | N | int | Alternative to CFICode<461> 0 = Put 1 = Call |
167 | SecurityType | N | string | Alternative to CFICode<461> CS = Equity default FUT = Future/Future Options OPT = Equity Option |
55 | Symbol | Y | string | Exchange symbol May incorporate symbol suffix (e.g. VIA.A) For OPRA options, SpiderRock accepts an OSI code in this field For standardized futures products, maturity information can be included in this field, e.g. GCZ22 |
65 | SymbolSfx | B | string | Symbol suffix |
22 | IDSource | N | string | 8 = Exchange Symbol is accepted when used in conjunction with SecurityID<48> to communicate the Exchange Symbol. |
48 | SecurityID | N | string | Exchange symbol, when IDSource = 8 and Symbol<55> is blank. |
541 | MaturityDate | N | string | For Futures and Options YYYYMMDD |
200 | MaturityMonthYear | N | string | Alternative to MaturityDate<541> YYYYMM |
205 | MaturityDay | N | int | Alternative to MaturityDate<541> 1-31 |
202 | StrikePrice | N | float | Option strike price |
54 | Side | Y | char | 1 = Buy 2 = Sell 5 = Sell short 6 = Sell short exempt Y= Sell auto (SR determines whether child orders should be selling long or short by looking up account/aggregate group position when child orders are created). |
77 | OpenClose | N | char | For Options: O = Open C = Close A = Auto (SR determines whether child orders should be marked open or closed by looking up account/aggregate group position when child orders are created). |
204 | CustomerOrFirm | N | char | 0 = Customer 1 = Firm 2 = Broker / Dealer 4 = Market Maker 5 = Non-Member Market Maker 8 = Customer Professional Will default to SR account configuration if not specified |
528 | OrderCapacity | N | char | A = Agency G = Prop I = Individual P = Principal R = Riskless W = AgentOtherMember Will default to SR account configuration if not specified |
60 | TransactTime | Y | utcDttm | Time this order request was initiated/released. Formatted as: YYYYMMDD-HH:MM:SS.fff Note: this order must arrive at SpiderRpcl within 15 seconds of the TransactTime to be considered a valid order. |
38 | OrderQty | Y | int | Executable quantity |
Standard Trailer | Y |
Example -- DMA
DMA orders are used to send a single order to a specific exchange or destination. This order type allows the client to control where the order is traded. Note that DMA orders may interact with dark liquidity in the SpiderRock platform if this is desired.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
Standard Header | Y | MsgType = D | ||
Basic NewOrderSingle Fields | See "NewOrderSingle" above | |||
100 | ExDestination | Y | string | SR Destination Code (see appendix) |
Standard Trailer | Y |
Example - Smart/Sweep
Smart/Sweep orders are used to send an order without specifying a destination. SpiderRock will determine the optimal destination(s) for the order and will automatically sweep multiple destinations to maximize liquidity capture. This order type can optionally post any unfilled balance on an exchange.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
Standard Header | Y | MsgType = D | ||
Basic NewOrderSingle Fields | See "NewOrderSingle" above | |||
Standard Trailer | Y |
Example - Staged/WaitStart
The SRStartType<5090> tag is used to send staged/wait orders to SpiderRock. These orders will be sent to the exchange as market orders once the client commands their release. Note that orders can be released in multiple ways: via the SpiderRock GUI tools, the SpiderRock SRSE/SQL API, and a Listexecute<L> FIX message. Staged orders will be acknowledged immediately; fills will only be reported after the order has been released.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
Standard Header | Y | MsgType = D | ||
Basic NewOrderSingle Fields | See "NewOrderSingle" above | |||
Algorithmic NewOrderSingle Fields | See "NewOrderSingle" above | |||
5090 | SRStartType | Y | int | 2 = Staged (wait start) |
Standard Trailer | Y |
Example - MarketOnOpen/MarketOnClose
MarketOnOpen/MarketOnClose orders are used when participating in opening and closing exchange auctions. Note: Either FIX 4.2 or FIX 4.4style OrdType/TimeInForce tagging is allowed.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
Standard Header | Y | MsgType = D | ||
Basic NewOrderSingle Fields | See "NewOrderSingle" above | |||
59 | TimeInForce | Y | char | 2 = At the openning 7 = At the Close |
Standard Trailer | Y |
Example - SpiderRock Algorithm
Complex Algo/Parent orders express intent to interact with the market in a variety of ways. These parent orders can, and frequently do, result in multiple child orders being generated and routed to the exchange.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
Standard Header | Y | MsgType = D | ||
Basic NewOrderSingle Fields | See "NewOrderSingle" above | |||
5036 | SRUsername | N | string | Client defined username Used for customer service and futures compliance If necessary, a default may be assigned to the FIX session. (24 character max) |
5055 | SRProgressExposeTime | N | int | Duration in seconds |
5094 | SROrderHandling | Y | int | Primary order handling algorithm 1 = ActiveTaker 2 = PostOnly 3 = DMA 4 = MktOnOpn 5 = MktOnCls 11 = CrossResponse 12 = AuctionResponse |
5096 | SRBalanceHandling | N | int | 0 = None (non-marketable balance will not be posted) default 1 = PostWith 2 = PostTurn 3 = PostImprove 4 = PostLimit 5 = PostLmtW 7 = PostWthF 9 = PostFlash 10 = PostFlashW 12 = PostFlashI |
5090 | SRStartType | N | int | 0 = Immediate 1 = WaitTrigger (wait for RiskGroup/Sweep trigger) 2 = Staged (wait for order to be modified/released) |
5089 | SRMarketSession | char | 1 = Regular Market 2 = Pre-Market 3 = Post-Market 4 = Regular and Pre-Market 5 = Regular and Post-Market 6 = All Day | |
5084 | SRTimeInForce | N | string | Day = Order remains working until the end of the day's primary trading session. EXT = Extended Day - Order remains working through the day's intended trading session until the next top of day rotation. WK = Week - Order remains working for the remainder of the week's normal trading sessions. EWK = Extended Week - Order remains working for the week's remaining extended trading sessions until the next Friday/EndOfWeek rotation. IOC = Immediate or Cancel - Order expires after one attempt at execution OR after one second. GTD = Good Till Duration - Order remains working through the day's extended trading session until the next top of day rotation OR when SRGoodTillDttm time is reached OR after working for SROrderDuration seconds. |
5086 | SROrderDuration | N | int | Order with SrTimeInForce = GTD expires after working for this number of seconds. |
5088 | SRGoodTillDttm | N | utcDttm | Order with SrTimeInForce = GTD expires at this time. |
5028 | SRAltRouteCode | N | string | Alternate child order routing code (assigned by SR) |
5034 | SRStrategy | N | string | Client strategy label. Displayed on SR Order Manager |
5082 | SRExchanges | N | string | Comma separated exchange list; default = all available exchanges |
5046 | SRMaxExposureSize | N | int | Maximum simultaneous public exposure size across all exchanges |
5048 | SRNumMakeExchanges | N | int | Number of public exposure exchanges |
5050 | SRPublicSize | N | char | 0 = None 1 = Randomize 2 = MktSize 3 = FullSize 4 = MktSizeA 5 = MktSizeB 6 = MktSizeC 7 = FullSizeR |
5052 | SRCanCxlOverlap | N | char | Y = Yes |
5080 | SRMaxChildOrders | N | int | Upper bound for the number of child orders generated for this parent order |
5054 | SRProgressRule | N | int | 0 = Immediate default 1 = Twap 2 = Vwap (not available for options) 3 = TwapReset 4 = VwapReset (not available for options) 5 = FastReset 6 = SlowReset 7 = TwapAlpha 8 = VwapAlpha (not available for options) 11 = SpdrPulse |
5056 | SRTwapSliceCnt | N | int | Number of TWAP slices (default = 1) |
5104 | SRTakeReachRule | N | int | 0 = Immediate 1 = Delayed 2 = Passive |
5098 | SROrderLimitType | N | int | 0 = Market 1 = MarketArrival 2 = Prc 3 = PrcDe 4 = PrcDeX 5 = PrcDeT 6 = PrcDeP 7 = PrcDeXT 8 = PrcDeXP 9 = Vol 10 = VolX 11 = VolF 12 = VolFX 13 = VolPrc 14 = RelMid 15 = RelJoin 16 = RelCross 17 = SmrtFast 18 = SmrtNorm 19 = RelTurn |
5106 | SROrderPrcLimit | N | float | Applies if SROrderLimitType<5098> = Prc |
5126 | SROrderPrcOffset | N | float | Default=0 |
5132 | SRTakeAlphaFactor | N | float | |
5134 | SRMakeAlphaFactor | N | float | |
5136 | SRTakeProbability | N | float | |
5138 | SRMakeProbability | N | float | |
5253 | SRMax AccDayDDeltaLn | N | float | max accnt day $delta long Should be a positive number; Defaults to no limit |
5254 | SRMax AccDayDDeltaSh | N | float | max accnt day $delta short Should be a positive number; Defaults to no limit |
5259 | SRMax SymDayDDeltaLn | N | float | max acct+symbol day $delta long Should be a positive number; Defaults to no limit |
5260 | SRMax SymDayDDeltaSh | N | float | max acct+symbol day $delta short Should be a positive number; Defaults to no limit |
5058 | SRVwap Participation | N | float | Target vwap participation rate (target % of trade activity) |
5290 | SRUserData1 | N | string | User defined field (max 255 chars) - Can be returned on exec reports, forwarded on drop lines, or copied onto child orders. Please advise SpiderRock support staff of intended behavior. |
5291 | SRUserData2 | N | string | User defined field (max 255 chars) - Can be returned on exec reports, forwarded on drop lines, or copied onto child orders. Please advise SpiderRock support staff of intended behavior. |
SR Option Specific Fields | See "Algorithmic Order -- Option Specific Fields" below | |||
Standard Trailer | Y |
Algorithmic Order -- Option Specific Fields
The following fields can be included in Algorithmic orders when SecurityType<167> = Option.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
5170 | SRPositionType | N | int | Primary position type (single leg orders) |
5060 | SRAuctionResponder | N | string | If set, parent order can be an auction responder |
5108 | SROrderRefUPrc | N | float | The stock reference price, a contribution to the order premium. |
5110 | SROrderRefDelta | N | float | |
5112 | SROrderRefGamma | N | float | |
5192 | SROrderRefRMetric1 | N | float | User supplied custom risk metric |
5194 | SROrderRefRMetric2 | N | float | User supplied RMetric2 value |
5196 | SROrderRefRMetric3 | N | float | User supplied RMetric3 value |
5198 | SROrderRefRMetric4 | N | float | User supplied RMetric4 value |
5116 | SROrderVolLimit | N | float | Order volatility limit - Valid range: [0.005, 9.000]. Required if SROrderLimitType<5098> is Vol, VolX, or VolPrc Ignored if SROrderLimitType is Market |
5118 | SRRateOverride | N | float | Must be positive |
5120 | SRSDivOverride | N | float | |
5122 | SRDDivOverride | N | string | Discrete dividends override Format:[years: amount, years:amount, ...] |
5124 | SROverrideCode | N | char | SDiv/DDiv override rule (applies if LimitType = Vol) S = SDivOnly D = DDivOnly B = Both |
5228 | SRMakeSurfWidthOffset | N | float | |
5229 | SRTakeSurfWidthOffset | N | float | |
5140 | SRTakeSurfPrcOffset | N | float | |
5142 | SRTakeSurfVolOffset | N | float | |
5144 | SRMakeSurfPrcOffset | N | float | |
5146 | SRMakeSurfVolOffset | N | float | |
5072 | SRCxlUPrcRange | N | bool | Cancel order if/when outside stock price range |
5074 | SRMinUBid | N | float | Any non-hold status will revert to markup if stock NBBO Mid is outside [midStockPx,maxUAsk] range. |
5076 | SRMaxUAsk | N | float | See description for minUBid |
5078 | SRMinOptionPx | N | float | Option price floor for orders tied to stock |
5251 | SRMax AccDayWtVegaLn | N | float | max accnt day wvega (time weighted) long. Should be a positive number; Defaults to no limit |
5252 | SRMax AccDayWtVegaSh | N | float | max accnt day wvega (time weighted) short. Should be a positive number; Defaults to no limit |
5255 | SRMax ExpDayWtVegaLn | N | float | max accnt+expiration day wvega (time weighted) long. Should be a positive number; Defaults to no limit |
5256 | SRMax ExpDayWtVegaSh | N | float | max accnt+expiration day wvega (time weighted) short. Should be a positive number; Defaults to no limit |
5257 | SRMax SymDayWtVegaLn | N | float | max acct+symbol day vega long. Should be a positive number; Defaults to no limit |
5258 | SRMax SymDayWtVegaSh | N | float | max acct+symbol day $delta short. Should be a positive number; Defaults to no limit |
Algorithmic Order -- Option Autohedging Fields
If autohedging is enabled, then any resulting autohedge fills will be reported using the orders . Note that since autohedge trades are generated in response to option fills, perhaps over multiple orders, some accommodations must be made in the resulting autohedge execution reports. They cannot be reported back to the client on an order entry line; all autohedged drop reports are reported down a separate FIX drop line.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
5152 | SRAutoHedge | N | char | N = NoHedge default F = AutoCrx S= AutoTrn M = AutoMid A = SpdrAuto 1 = Spdr10S 3 = Spdr30S 9 = Spdr90S 5 = Spdr5M H = Spdr30M T = Static |
OrderCancelReplace (Client to SpiderRock)
The OrderCancelReplace<G> request is used to change the parameters of an existing New Order Single.
An ExecutionReport<8> with ExecType<150>=Pending Replace will be sent unless the OrderCancelReplace<G> can immediately be accepted (ExecutionReport<8> with ExecType<150>=Replaced) or rejected (OrderCancelReject<9> message).
An OrderCancelReplace<G> request will only be accepted if any associated child orders can successfully be cancelled. Requests that cannot be processed will be rejected with a CancelReject<3> message.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
Standard Header | Y | MsgType = G | ||
11 | ClOrdId | Y | string | Client order ID of the cancel request (24 character max) |
41 | OrigClOrdID | Y | string | ClOrdID<11> of the previous order (NOT the initial order of the day) when canceling an order. (24 character max) |
Modifiable New Order Single Fields (See list above) | ||||
Standard Trailer | Y |
NewOrderMultileg (Client to SpiderRock)
A NewOrderMultileg<AB> message is used to submit an order for up to 6 option legs and one equity leg as a package. Both standard multi-leg order types and the more complex ones offered by SpiderRock are communicated using this message.
The NewOrderMultileg<AB> fields listed in the following table are used in common by all SpiderRock multileg orders. Additional fields are used by different order types to communicate their unique features. These fields are described in subsequent sections.
In addition to standard FIX fields, SpiderRock uses custom FIX fields (5,000+) for SpiderRock specific parameters.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
Standard Header | Y | MsgType = AB | ||
11 | ClOrdId | Y | string | Client order ID (24 character max) |
1 | Account | Y | string | SR account acronym Must be configured prior to testing or trading |
38 | OrderQty | Y | int | Executable quantity |
54 | Side | N | char | 1 = Buy |
100 | ExDestination | N | string | SR Destination Code (see appendix) - Required for DMA style orders |
40 | OrdType | N | char | 1 = Market 2 = Limit - Required for DMA and Smart/Sweep style orders |
44 | Price | N | float | Required for limit order types |
59 | TimeInForce | N | string | 0 = Day 3 = Immediate or Cancel (IOC) |
60 | TransactTime | Y | utcDttm | Time this order request was initiated/released. Formatted as: YYYYMMDD-HH:MM:SS.fff Note: this order must arrive at SpiderRpcl within 15 seconds of the TransactTime to be considered a valid order. |
Algorithmic Multileg Fields | See "Multileg Algorithm" below | |||
555 | NoLegs | Y | int | Number of legs |
→ 654 | LegRefId | Y | string | Used to identify a specific leg |
→ 616 | LegSecurityExchange | N | string | Alternative to CFICode<461> If used, specify for Futures and Options If not specified, Equity is assumed FUT -- Future/Future Options OPT -- Equity Option CS (default) -- Equity |
→ 608 | LegCFICode | N | string | ES= Equity Common Shares F = Future [FUT] OC = Option - Call [OPT] OP = Option - Put [OPT] |
→ 609 | LegSecurityType | N | string | Alternative to LegCFICode<608> CS = Equity default FUT = Future/Future Options OPT = Equity Option |
→ 600 | LegSymbol | Y | string | Leg Exchange symbol May incorporate symbol suffix, e.g. VIA.A For OPRA options, SpiderRock accepts an OSI code in this field. For standardized futures products, maturity information can be included in this field, e.g. GCZ22. |
→ 601 | LegSymbolSfx | N | string | Leg Symbol Suffix |
→ 611 | LegMaturityDate | N | string | For Futures and Options. Formatted as: YYYYMMDD |
→ 612 | LegStrikePrice | N | float | Option strike price |
→ 624 | LegSide | Y | char | 1 = Buy 2 = Sell 5 = Sell short 6 = Sell short exempt Y = Sell auto (SR determines whether child orders should be selling long or short by looking up account/aggregate group position when child orders are created). |
→ 623 | LegRatioQty | Y | int | The ratio of quantity for this individual leg relative to the entire multileg security |
→ 564 | LegPositionEffect | N | char | For Options O = Open C = Close A = Auto (SR determines whether child orders should be marked open or closed by looking up account/aggregate group position when child orders are created). |
Standard Trailer | Y |
Example - DMA
DMA orders are used to send a multi-leg order to a specified exchange or destination. This order type is appropriate when the client wishes to control where the order is traded. Note that DMA orders may interact with dark liquidity in the SpiderRock platform if configured to do so.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
Standard Header | Y | MsgType = AB | ||
Basic NewOrderMultileg Fields | See "NewOrderMultileg" above | |||
100 | ExDestination | Y | string | SR Destination Code (see appendix) - Required for DMA style orders |
Standard Trailer | Y |
Example - Smart/Sweep
Smart/Sweep orders are used to send an order without specifying a destination. SpiderRock will determine the optimal destination(s) for the order and will automatically sweep multiple destinations to maximize liquidity capture. This order type can optionally post any unfilled balance on an exchange.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
Standard Header | Y | MsgType = AB | ||
Basic NewOrderMultileg Fields | See "NewOrderMultileg" above | |||
Standard Trailer | Y |
Example - Staged/WaitStart
The SRStartType<5090> tag is used to send staged/wait orders to SpiderRock. These orders will be sent to exchange as market orders once the client commands their release. Note that orders can be released in multiple ways: via SpiderRock GUI tools, via the SpiderRock SRSE/SQL API, and via a Listexecute<L> fix message. Staged orders will be acknowledged immediately; fills will only be reported after the order has been released.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
Standard Header | Y | MsgType = AB | ||
Any Combination of Basic or Complex NewOrderMultiLeg Fields | ||||
5090 | SRStartType | Y | int | 2 = Staged |
Standard Trailer | Y |
Example - Multileg Algorithm
SpiderRock Algorithmic orders express intent to interact with the market in a variety of ways. These parent orders can, and frequently do, result in multiple child orders being generated and routed to the exchange.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
Standard Header | Y | MsgType = AB | ||
Basic NewOrderMultileg Fields (See NewOrderMultileg above) | ||||
5036 | SRUsername | N | string | Client defined username. - Used for customer service and futures compliance - If necessary, a default may be assigned to the FIX session (24 character max). |
5055 | SRProgressExposeTime | N | int | Default = 0 |
5094 | SROrderHandling | Y | int | Primary order handling algorithm 8 = Legger 9 = Seeker 10 = SeekerLegger 20 = CobMaker |
5096 | SRBalanceHandling | N | int | 0 = None (non-marketable balance will not be posted) 4 = PostLimit |
5090 | SRStartType | N | int | 0 = Immediate 1 = WaitTrigger (wait for RiskGroup/Sweep trigger) 2 = Staged (wait for order to be modified/released) |
5089 | SRMarketSession | char | 1 = Regular Market 2 = Pre-Market 3 = Post-Market 4 = Regular and Pre-Market 5 = Regular and Post-Market 6 = All Day | |
5084 | SRTimeInForce | string | Day = Day -- Order remains working until the end of the day's primary trading session. EXT = Extended Day - Order remains working through the day's extended trading session until the next top of day rotation. - WK = Week - Order remains working for the remainder of the week's normal trading sessions. EWK = Extended Week - Order remains working for the week's remaining extended trading sessions until the next Friday/EndOfWeek rotation. IOC = Immediate or Cancel - Order expires after one attempt at execution OR after one second. GTD = Good Till Duration - Order remains working through the day's extended trading session until the next top of day rotation OR when SRGoodTillDttm time is reached OR after working for SROrderDuration seconds. | |
5089 | SRMarketSession | char | 1 = Regular Market 2 = Pre-Market 3 = Post-Market 4 = Regular and Pre-Market 5 = Regular and Post-Market 6 = All Day | |
5086 | SROrderDuration | int | Order with SrTimeInForce = GTD expires after working for this number of seconds 0/missing = ignore | |
5088 | SRGoodTillDttm | utcDttm | Order with SrTimeInForce = GTD expires at this time working for this number of seconds | |
5028 | SRAltRouteCode | string | Alternate child order routing code (assigned by SR) | |
5034 | SRStrategy | N | string | Client strategy label. Displayed on SR Order Manager |
5082 | SRExchanges | string | Comma separated exchange list; default = all available exchanges | |
5046 | SRMaxExposureSize | int | Maximum simultaneous public exposure size across all exchanges | |
5048 | SRNumMakeExchanges | int | Number of public exposure exchanges | |
5050 | SRPublicSize | N | char | 0 = None 1 = Randomize 2 = MktSize 3 = FullSize 4 = MktSizeA 5 = MktSizeB 6 = MktSizeC 7 = FullSizeR |
5080 | SRMaxChildOrders | int | Upper bound for the number of child orders generated for this parent order | |
5054 | SRProgressRule | int | 0 = Immediate (default) 1 = Twap 3 = TwapReset 5 = FastReset 6 = SlowReset 7 = TwapAlpha 11 = SpdrPulse | |
5056 | SRTwapSliceCnt | int | Number of TWAP slices (default = 1) | |
5104 | SRTakeReachRule | int | 0 = Immediate 1 = Delayed 2 = Passive | |
5098 | SROrderLimitType | string | 0 = Market 1 = MarketArrival 2 = Prc 3 = PrcDe 4 = PrcDeX 6 = PrcDeP 8 = PrcDeXP 14 = RelMid 15 = RelJoin 16 = RelCross | |
5100 | SRTakeLimitClass | char | Simple=0 Surface=1 Probability=2 SurfProb=3 | |
5102 | SRMakeLimitClass | char | Simple=0 Surface=1 Probability=2 SurfProb=3 | |
5106 | SROrderPrcLimit | float | Applies if LimitType = Prc[] | |
5109 | SROrderRefUAsk | price | ||
5110 | SROrderRefDelta | float | Default=option.delta | |
5112 | SROrderRefGamma | float | Default=option.gamma | |
5114 | SROrderRefTheta | float | ||
5116 | SROrderVolLimit | N | float | Order volatility limit - Valid range: [0.005, 9.000]. Required if SROrderLimitType<5098> is Vol, VolX, or VolPrc Ignored if SROrderLimitType is Market |
5126 | SROrderPrcOffset | float | Default=0 | |
5128 | SRTakeAlphaType | char | 1 = Static 2 = Hawk 3 = Eagle 4 = Falcon 5 = Relative | |
5130 | SRMakeAlphaType | char | 1 = Static 2 = Hawk 3 = Eagle 4 = Falcon 5 = Relative | |
5132 | SRTakeAlphaFactor | float | ||
5134 | SRMakeAlphaFactor | float | ||
5136 | SRTakeProbability | float | ||
5138 | SRMakeProbability | float | ||
5202 | SRLeadSide | char | SROrderHandling=Legger Only 1 = Buy 2 = Sell | |
5204 | SRMaxCompletionSlippage | float | SROrderHandling=Legger Only | |
5206 | SROrderRefPremium | float | Reference premium (multileg orders only) | |
5290 | SRUserData1 | N | string | User defined field (max 255 chars) Can be returned on exec reports; forward to drop lines or forwarded to child orders Please advise SpiderRock support staff of intended behavior. |
5291 | SRUserData2 | N | string | User defined field (max 255 chars) Can be returned on exec reports; forward to drop lines or forwarded to child orders Please advise SpiderRock support staff of intended behavior. |
Standard Trailer | * Y* |
Example - Legger
Legger orders allow SpiderRock to determine optimal destination(s) for the order. SpiderRock will automatically sweep multiple destinations to maximize the order's liquidity capturer. Any unfilled balance can optionally be posted to exchange.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
Basic NewOrderMultileg Fields (See NewOrderMultileg above) | ||||
5094 | SROrderHandling | Y | int | Primary order handling algorithm 8 = Legger |
5096 | SRBalanceHandling | N | int | 0 = None (non-marketable balance will not be posted) 4 = PostLimit |
5202 | SRLeadSide | char | Legger Only 1 = Buy 2 = Sell | |
5204 | SRMaxCompletionSlippage | float | Legger Only | |
Standard Trailer | Y |
MultilegCancelReplace (Client to SpiderRock)
The MultilegCancelReplace<AD> request is used to change the parameters of an existing New Order Single.
An ExecutionReport<8> with ExecType<150>=Pending Replace will be sent unless the MultilegCancelReplace<AD> can immediately be accepted (ExecutionReport<8> with ExecType<150>=Replaced) or rejected (OrderCancelReject<9> message).
An MultilegCancelReplace<AD> request will only be accepted if any associated child orders can successfully be cancelled. Requests that cannot be processed will be rejected with a CancelReject<3> message.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
Standard Header | Y | MsgType = AC | ||
11 | ClOrdId | Y | string | Client order ID of the cancel request (24 character max) |
41 | OrigClOrdID | Y | string | ClOrdID<11> of the previous order (NOT the initial order of the day) when canceling an order. (24 character max) |
Modifiable NewOrderMultileg Fields (See list above) | ||||
Standard Trailer | Y |
ExecutionReport (SpiderRock to Client)
SpiderRock natively follows FIX 4.4 rules for ExecutionReport handling but can switch to FIX 4.2 on request.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
37 | OrderID | Y | string | Unique ID for order chain assigned by SpiderRock |
198 | SecondaryOrderID | N | string | Value from executing venue |
11 | ClOrdID | Y | string | Value from client request |
41 | OrigClOrdID | N | string | Conditionally required for response to a Cancel or Cancel/Replace request - (ExecType=PendingCancel, Replaced, or Canceled) |
76 | ExecBroker | N | string | Value from executing venue |
5036 | SRUsername | N | string | Used for customer service and futures compliance |
5012 | SRAltAccnt | N | string | |
5410 | SRExtTraderId | N | string | |
5350 | SRExecBrokerMPID | N | string | Executing broker MPID |
17 | ExecID | Y | string | Unique ID assigned by SpiderRock |
20 | ExecTransType | Y | int | |
19 | ExecRefID | N | string | |
150 | ExecType | Y | char | |
60 | TransactTime | Y | utcDttm | Time the transaction represented by this ExecutionReport occurred |
39 | OrdStatus | Y | char | |
103 | OrdRejReason | N | int | For optional use with ExecType = 8 (Rejected) |
378 | ExecRes tatementReason | N | int | If replaced in the SpiderRock System using another order entry method |
1 | Account | Y | string | Assigned by SpiderRock |
54 | Side | Y | char | Value from executing venue - Value may differ from client's order if execution order is sold short. |
38 | OrderQty | Y | int | |
40 | OrdType | Y | char | Order type of this execution |
77 | OpenClose | N | char | Value from client's order |
44 | Price | N | float | Value from client's order |
528 | OrderCapacity | N | char | Value from order to venue |
32 | LastShares | Y | int | |
31 | LastPx | Y | float | |
30 | LastMkt | N | string | Value from executing venue |
29 | LastCapacity | N | string | Value from executing venue |
151 | LeavesQty | Y | int | 0 if order is not active, not (OrderQty-Cum) |
14 | CumQty | Y | int | |
6 | AvgPx | Y | float | Execution price |
58 | Text | N | string | |
5605 | SRRejectCode | N | int | See Appendix C for a list of SR reject codes |
442 | MultiLegReportingType | N | char | Used to indicate what an Execution Report represents (e.g. used with multi-leg securities, such as option strategies, spreads, etc.). 1 = SINGLE_SECURITY 2 = INDIVIDUAL_LEG 3 = MULTI_LEG_SECURITY |
654 | LegRefID | N | string | Used to identify a specific leg for multileg order execution reports |
439 | ClearingFirm | N | string | Value from client's order, or SpiderRock account config |
440 | ClearingAccount | N | string | Value from client's order, or SpiderRock account config |
Symbology | ||||
22 | IdSource | N | int | Value from client's order |
48 | SecurityId | N | string | Value from client's order |
167 | SecurityType | N | string | Value from client's order |
55 | Symbol | Y | string | Value from client's order |
65 | SymbolSfx | N | string | Value from client's order |
207 | SecurityExchange | Y | string | Exchange |
461 | CFICode | N | string | Value from client's order |
201 | PutOrCall | N | int | Value from client's order |
541 | MaturityDate | N | string | Value from client's order YYYYMMDD |
200 | MaturityMonthYear | N | string | Value from client's order YYYYMM |
205 | MaturityDay | N | int | Value from client's order 1-31 |
202 | StrikePrice | N | price | Value from client's order |
Billing Parameters | ||||
5648 | SRBillingCategory | N | string | A = Alpha A50 = AlphaTop50 TM = TiedMaker TT = TiedTaker S = SOR D = DMA AT = AwayTrade F = Facilitate AF = AlphaFacilitate AR = AuctionResponse BA = BlockAuction BR = BlockResponse E = Extern SO = SymOverride NB = NonBillable SS = SpdrSweep IS = IsoSweep |
5613 | SRBillingRate | N | float | Tier 1 billing rate |
5610 | SRLiquidityTag | N | string | From SpiderRock normalized venue liquidity tag |
5614 | SRExchFeeEst | N | float | From exchange published Fee Schedules |
5611 | SRExchLiqTag | N | string | Exchange supplied liquidity code |
Standard Trailer | Y |
OrderCancelRequest (Client to SpiderRock)
An OrderCancelRequest<F> message requests the cancelation of all the remaining quantity of an order. The request will only be accepted if the order can be successfully pulled back from a downstream exchange, broker, or equivalent destination.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
Standard Header | Y | MsgType = F | ||
11 | ClOrdId | Y | string | Client order ID of the cancel request (24 character max) |
41 | OrigClOrdID | Y | string | ClOrdID<11> of the previous order (NOT the initial order of the day) when canceling an order (24 character max) |
37 | OrderID | N | string | SR assigned OrderID (from an ExecutionReport message) - Note: one of OrigClOrdID or OrderID must be supplied. |
55 | Symbol | N | string | |
65 | SymbolSfx | N | string | |
167 | SecurityType | N | string | Must be specified if a Future or Option - If a Future: Symbol<55>, SecurityType<167>, and MaturityMonthYear<200> are required - If an Option: Symbol<55>, SecurityType<167>, MaturityMonthYear<200>, PutOrCall<201>, and StrikePrice<202> are required |
200 | MaturityMonthYear | N | string | For Futures and Options |
205 | MaturityDay | N | int | For Futures and Options |
201 | PutOrCall | N | int | For Options |
202 | StrikePrice | N | float | For Options |
54 | Side | N | char | 1 = Buy 2 = Sell 5 = Sell short 6 = Sell short exempt Y = Sell auto (SR determines whether child orders should be selling long or short by looking up account/aggregate group position when child orders are created) |
60 | TransactTime | Y | utcDttm | Time this order request was initiated/released. Formatted as: YYYYMMDD-HH:MM:SS.fff Note: this order must arrive at SpiderRpcl within 15 seconds of the TransactTime to be considered a valid order. |
38 | OrderQty | N | int | Executable quantity |
58 | Text | N | string | User supplied text such as a cancel reason |
Standard Trailer | Y |
OrderCancelReject (SpiderRock to Client)
SpiderRock FIX Gateways follow FIX 4.4 style rules for CancelReject handling but can switch to FIX 4.2 on request.
Tag | Field Name | Req'd | Type | Comments |
---|---|---|---|---|
Standard Header | Y | MsgType = 8 | ||
37 | OrderID | Y | string | Unique ID for order chain assigned by SpiderRock |
11 | ClOrdID | Y | string | Value from client request |
41 | OrigClOrdID | Y | string | Conditionally required for response to a Cancel or Cancel/Replace request (ExecType=PendingCancel, Replaced, or Canceled) |
434 | CxlRej ResponseTo | Y | char | Valid values: 1 = OrderCancelRequest <F> 2 = OrderCancel/Replace Request <G> |
102 | CxlRejReason | N | int | |
39 | OrdStatus | Y | char | OrdStatus value after this cancel reject is applied |
58 | Text | N | string | |
Standard Trailer | Y |