Skip to main content
Version: Upcoming

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.

Order Life Cyce

Delayed start time The order may contain a start time parameter to specify when an order becomes active.

Wait-start The order can be be staged so that it does not become active until released (active size is initially zero).

Staged The order is entered by one user, and activated by another user.

StageReview The order is entered by one trading system, and activated by another system (compliance/risk).

Stop Time The order stops working when the stop time is reached.

Order Duration The order stops working when the order duration is reached

Price Range Cancel The order stops working when an underlying price is reached.

User Cancel The order is explicitly cancelled by the client

Note: Orders can be staged, released, and cancelled 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 with tag numbers in the range 5,000-5,999 for SpiderRock specific parameters.

TagField NameReq'dTypeAssociated Record Value
(SpdrParentOrder)
Comments
Standard HeaderYMsgType = D
11ClOrdIdYstringaltOrderIdClient order ID (24 character max)
1AccountYstringaccntSR account acronym. Must be configured prior to testing or trading
Account superceded by: SRAccnt
100ExDestinationNmultiple-value
string
exchMaskSR Destination Code (see appendix)
Required for DMA style orders
Superceded by: SRExDestination
40OrdTypeNcharorderLimitType1 = Market
2 = Limit
5 = Market on Close
B = Limit on Close
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.
Superceded by: SROrderLimitType
44PriceNfloatorderPrcLimitRequired for limit order types
Superceded by: SROrderPrcLimit
59TimeInForceNstringorderDuration
parentOrderHandling
0 = Day
2 = Opening
3 = Immediate or Cancel (IOC)
6 = Good Till Date/Time (or Duration)
7 = Closing
OrderDuration superceded by: SROrderDuration SRTimeInForce
ParentOrderHandling superceded by SROrderHandling
207SecurityExchangeNstringsecKeyCurrently Ignored
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.
Superceded by: SRSecKey
461CFICodeNstringseckeyCurrently Ignored
ES = Equity Common Shares [CS]
F = Future [FUT]
OC = Option - Call [OPT]
OP = Option - Put [OPT]
201PutOrCallNintsecKeyAlternative to CFICode<461>
0 = Put
1 = Call
Superceded by: SRSecKey
167SecurityTypeNstringsecTypeAlternative to CFICode<461>
CS = Equity default
FUT = Future/Future Options
OPT = Equity Option
Superceded by: SRSecType
55SymbolYstringsecKeyExchange 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
Superceded by: SRSecKey
65SymbolSfxBstringsecKeySymbol suffix
Superceded by: SRSecKey
22IDSourceNstringsecKey8 = Exchange Symbol is accepted when used in conjunction with SecurityID<48> to communicate the Exchange Symbol.
Superceded by: SRSecKey
48SecurityIDNstringsecKeyExchange symbol, when IDSource = 8 and Symbol<55> is blank.
Superceded by: SRSecKey
541MaturityDateNstringsecKeyFor Futures and Options YYYYMMDD
Superceded by: SRSecKey
200MaturityMonthYearNstringsecKeyAlternative to MaturityDate<541> YYYYMM
Superceded by: SRSecKey
205MaturityDayNintsecKeyAlternative to MaturityDate<541> 1-31
Superceded by: SRSecKey
202StrikePriceNfloatsecKeyOption strike price
Superceded by: SRSecKey
54SideYcharorderSide
ssaleFlag
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).
OrderSide superceded by: SROrderSide
SsaleFlag superceded by: SRShortSaleFlag
77OpenCloseNcharpositionTypeFor 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).
Superceded by: SRPositionType
204CustomerOrFirmNcharfirmType0 = 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
Superceded by: SRFirmType
528OrderCapacityNcharorderCapacityA = Agency
G = Prop
I = Individual
P = Principal
R = Riskless
W = AgentOtherMember
Will default to SR account configuration if not specified
Superceded by: SROrderCapacity
60TransactTimeYutcDttmTime this order request was initiated/released. Formatted as: YYYYMMDD-HH:MM:SS.fff
Note: this order must arrive at SpiderRock within 15 seconds of the TransactTime to be considered a valid order.
38OrderQtyYintorderSizeExecutable quantity
Superceded by: SROrderSize
Standard TrailerY

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.

TagField NameReq'dTypeAssociated Record Value
(SpdrParentOrder)
Comments
Standard HeaderYMsgType = D
Basic NewOrderSingle FieldsSee "NewOrderSingle" above
100ExDestinationYstringexchMaskSR Destination Code (see appendix)
Standard TrailerY

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.

TagField NameReq'dTypeAssociated Record Value
(SpdrParentOrder)
Comments
Standard HeaderYMsgType = D
Basic NewOrderSingle FieldsSee "NewOrderSingle" above
Standard TrailerY

Example - Staged/WaitStart

The SRStartType<5090> tag is used to send staged/wait orders to SpiderRock. These orders will be sent to the exchange 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.

TagField NameReq'dTypeAssociated Record Value
(SpdrParentOrder)
Comments
Standard HeaderYMsgType = D
Basic NewOrderSingle FieldsSee "NewOrderSingle" above
Algorithmic NewOrderSingle FieldsSee "NewOrderSingle" above
5086SRStageTypeYintspdrStageType1 = ModifyAny
2 = ModifyAlgo
5090SRStartTypeYintstartType2 = WaitTrigger (wait start)
Standard TrailerY

Example - Market-On-Open/Market-On-Close

Market-On-Open/Market-On-Close 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.

TagField NameReq'dTypeAssociated Record Value
(SpdrParentOrder)
Comments
Standard HeaderYMsgType = D
Basic NewOrderSingle FieldsSee "NewOrderSingle" above
59TimeInForceYcharparentOrderHandling2 = At the opening
7 = At the Close
Standard TrailerY

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.

TagField NameReq'dTypeAssociated Record Value
(SpdrParentOrder)
Comments
Standard HeaderYMsgType = D
Basic NewOrderSingle FieldsSee "NewOrderSingle" above
5036SRUsernameNstringuserNameClient defined username
Used for customer service and futures compliance
If necessary, a default may be assigned to the FIX session. (24 character max)
5055SRProgressExposeTimeNintprogressExposeTimeDuration in seconds
5094SROrderHandlingYintorderHandlingPrimary order handling algorithm
1 = ActiveTaker
2 = PostOnly
3 = DMA
4 = MktOnOpn
5 = MktOnCls
11 = CrossResponse
12 = AuctionResponse
5096SRBalanceHandlingNintparentBalanceHandling0 = 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
5090SRStartTypeNintstartType0 = Immediate
1 = WaitTrigger (wait for RiskGroup/Sweep trigger)
2 = Staged (wait for order to be modified/r eleased)
5084SRTimeInForceNstringtimeInForceDay = 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.
5086SROrderDurationNintorderDurationOrder with SrTimeInForce = GTD expires after working for this number of seconds.
5088SRGoodTillDttmNutcDttmgoodTillDttmOrder with SrTimeInForce = GTD expires at this time.
5028SRExecBrokerCodeNstringexecBrkrCodeOverrides the default executing broker for this parent order
5034SRStrategyNstringstrategyClient strategy label. Displayed on SR Order Manager
5082SRExDestinationNstringexchMaskSpace separated exchange list; default = all available exchanges
5046SRMaxExposureSizeNintmaxExposureSizeMaximum simultaneous public exposure size across all exchanges
5048SRNumMakeExchangesNintnumMakeExchangesNumber of public exposure exchanges
5050SRPublicSizeNcharpublicSize0 = None
1 = Randomize
2 = MktSize
3 = FullSize
4 = MktSizeA
5 = MktSizeB
6 = MktSizeC
7 = FullSizeR
Max25Pct=8
Max50Pct=9
Max75Pct=10
NoSize=11
5052SRCanCxlOverlapNcharcanOverlapCxlReplWhen replacing (cancel-with-replacement) a child order, can cancel request overlap with new order? The order may overfill if 'Y'.
Y = Yes
N = No
5080SRMaxChildOrdersNintmaxChildOrdersUpper bound for the number of child orders generated for this parent order
Default: 1000
5054SRProgressRuleNintprogressRule0 = 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
5056SRProgressSliceCntNintprogressSliceCntnumber of slices to use (default = 4 or 8) [max 20]
5104SRTakeReachRuleNinttakeReachRule0 = None
1 = Delayed
2 = Passive
3 = WeakOnly
4 = RespondOnly
5 = FullSize
6 = ISOSweep
7 = AllOrNone
8 = QtyOrMore
9 = UpToQty
10 = AtMost25
11 = AtMost50
12 = MinTakeFee
5098SROrderLimitTypeNintorderLimitType0 = Market
1 = MarketArrival
2 = Prc
3 = PrcDe
4 = PrcDeX
5 = PrcDeT
6 = PrcDeP
7 = PrcDeXT
8 = PrcD
eXP 9 = Vol
10 = VolX
11 = PrcV
12 = PrcVX
13 = VolPrc
14 = RelMid
15 = RelJoin
16 = RelCross
17 = SmrtFast
18 = SmrtNorm
19 = RelTurn
20 = PrcDeEm
22 = VolEm
23 = Aux
24 = UPrcPct
25 = PkgNeutral
26 = RcPrem
27 = SynthLimitMM
28 = SynthLimitBW
29 = SynthLimitWW
5106SROrderPrcLimitNfloatorderPrcLimitApplies if SROrderLimitType<5098> = Prc
5126SROrderPrcOffsetNfloatorderPrcOffsetDefault=0
5132SRTakeAlphaFactorNfloattakeAlphaFactor
5134SRMakeAlphaFactorNfloatmakeAlphaFactor
5136SRTakeProbabilityNfloattakeProbability
5138SRMakeProbabilityNfloatmakeProbability
5259SRMaxSymDayDDeltaLnNfloatmaxSymDayDDeltaLnmax acct+symbol day $delta long
Should be a positive number; Defaults to no limit
5260SRMaxSymDayDDeltaShNfloatmaxSymDayDDeltaShmax acct+symbol day $delta short
Should be a positive number; Defaults to no limit
5058SRVwap ParticipationNfloatvwapParticipationTarget VWAP participation rate (target % of trade activity)
5290SRUserData1NstringuserData1User 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.
5291SRUserData2NstringuserData2User 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 FieldsSee "Algorithmic Order -- Option Specific Fields" below
Standard TrailerY

Algorithmic Order -- Option Specific Fields

The following fields can be included in Algorithmic orders when SecurityType<167> = Option.

TagField NameReq'dTypeAssociated Record Value
(SpdrParentOrder)
Comments
5170SRPositionTypeNintpositionTypePrimary position type (single leg orders)
5060SRAuctionResponderNstringauctionResponder0 =None
ANY = parent order can be an auction responder
5108SROrderRefUPrcNfloatorderRefUPrcThe stock reference price, a contribution to the order premium.
5110SROrderRefDeltaNfloatorderRefDelta
5112SROrderRefGammaNfloatorderRefGamma
5192SROrderRefRMetric1NfloatorderRefRMetric1User supplied custom risk metric
5194SROrderRefRMetric2NfloatorderRefRMetric2User supplied RMetric2 value
5196SROrderRefRMetric3NfloatorderRefRMetric3User supplied RMetric3 value
5198SROrderRefRMetric4NfloatorderRefRMetric4User supplied RMetric4 value
5200SROrderRefRMetric5NfloatorderRefRMetric5User supplied RMetric5 value
5212SROrderRefRMetric6NfloatorderRefRMetric6User supplied RMetric6 value
5236SROrderRefRMetric7NfloatorderRefRMetric7User supplied RMetric7 value
5116SROrderVolLimitNfloatorderVolLimitOrder volatility limit - Valid range: [0.005, 9.000].
Required if SROrderLimitType<5098> is Vol, VolX, or VolPrc
Ignored if SROrderLimitType is Market
5118SRRateOverrideNfloatrateOverrideMust be positive
5120SRSDivOverrideNfloatsdivOverride
5122SRDDivOverrideNstringddivOverrideDiscrete dividends override
Format:[years: amount, years:amount, ...]
5124SROverrideCodeNcharoverrideCodeSDiv/DDiv override rule (applies if LimitType = Vol)
0 = None
S = SDivOnly
D = DDivOnly
B = Both
5228SRMakeSurfWidthOffsetNfloatmakeSurfWidthOffset
5229SRTakeSurfWidthOffsetNfloattakeSurfWidthOffset
5140SRTakeSurfPrcOffsetNfloattakeSurfPrcOffset
5142SRTakeSurfVolOffsetNfloattakeSurfVolOffset
5144SRMakeSurfPrcOffsetNfloatmakeSurfPrcOffset
5146SRMakeSurfVolOffsetNfloatmakeSurfVolOffset
5072SRCxlUPrcRangeNboolcxlUPrcRangeCancel order if outside stock price range
Y = Yes
N = No
Z = Yes/Halt - Yes and also cancel on underlying halt
M = No/Halt - No, but cancel on underlying halt
5074SRMinUBidNfloatminUBidAny non-hold status will revert to markup if stock NBBO Mid is outside [midStockPx,maxUAsk] range.
5076SRMaxUAskNfloatSee description for minUBid
5078SRMinOptionPxNfloatmaxUAskOption price floor for orders tied to stock
5255SRMaxExpDayWtVegaLnNfloatmaxExpDayWtVegaLnmax accnt+expiration day wvega (time weighted) long. Should be a positive number; Defaults to no limit
5256SRMaxExpDayWtVegaShNfloatmaxExpDayWtVegaShmax accnt+expiration day wvega (time weighted) short. Should be a positive number; Defaults to no limit
5257SRMaxSymDayWtVegaLnNfloatmaxSymDayWtVegaLnmax acct+symbol day vega long. Should be a positive number; Defaults to no limit
5258SRMaxSymDayWtVegaShNfloatmaxExpDayWtVegaShmax 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.

TagField NameReq'dTypeAssociated Record Value
(SpdrParentOrder)
Comments
5152SRAutoHedgeNcharautoHedgeN = NoHedge default
X = FastCrx
Y = FastDark
Z = SlowDark
F = AutoCrx
S = AutoTrn
M = AutoMid
A = SpdrAuto
1 = Spdr10S
3 = Spdr30S
9 = Spdr90S
5 = Spdr5M
H = Spdr30M
D = SpdrDay
12 = SmartFast
13 = SmartNorm
V1 = AlphaVwap1pct=V1
V2 = AlphaVwap2pct
V5 = AlphaVwap5pct
V25 = AlphaVwap25pct
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.

An order’s algorithmic parameters remain unaffected unless a new value is manually updated for a specific parameter. If a new value is not supplied, the previous order's algo parameters are carried forward onto the new order.

An OrderCancelReplace<G> request may be sent to increase the quantity on a filled order, but not a cancelled nor rejected order.

TagField NameReq'dTypeAssociated Record Value
(SpdrParentOrder)
Comments
Standard HeaderYMsgType = G
11ClOrdIdYstringaltOrderIdClient order ID of the cancel request (24 character max)
41OrigClOrdIDYstringaltPrevOrderIdClOrdID<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 TrailerY

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.

TagField NameReq'dTypeAssociated Record Value
(SpdrParentOrder)
Comments
Standard HeaderYMsgType = AB
11ClOrdIdYstringaltOrderIdClient order ID (24 character max)
1AccountYstringaccntSR account acronym Must be configured prior to testing or trading
Account superceded by: SRAccnt
38OrderQtyYintorderSizeExecutable quantity
Superceded by: SROrderSize
54SideNcharorderSide1 = Buy
100ExDestinationNstringexchMaskSR Destination Code (see appendix) - Required for DMA style orders
Superceded by: SRExDestination
40OrdTypeNcharorderLimitType1 = Market
2 = Limit - Required for DMA and Smart/Sweep style orders
Superceded by: SROrderLimitType
44PriceNfloatorderPrcLimitRequired for limit order types
Superceded by: SROrderPrcLimit
59TimeInForceNstringorderDuration
parentOrderHandling
0 = Day
3 = Immediate or Cancel (IOC)
OrderDuration superceded by: SROrderDuration SRTimeInForce
ParentOrderHandling superceded by SROrderHandling
60TransactTimeYutcDttmTime this order request was initiated/released. Formatted as: YYYYMMDD-HH:MM:SS.fff
Note: this order must arrive at SpiderRock within 15 seconds of the TransactTime to be considered a valid order.
Algorithmic Multileg FieldsAssociated Record Value
(SpdrParentOrder.OrderLegsList)
See "Multileg Algorithm" below
555NoLegsYintnumLegsNumber of legs
→ 654LegRefIdYstringaltStkLegId
altLegIdN
Used to identify a specific leg
→ 608LegCFICodeNstringIgnoredES= Equity Common Shares
OC = Option - Call [OPT]
OP = Option - Put [OPT]
F = Future [FUT]
OCXF = Future Option - Call [OPT]
OPXF = Future Option - Put [OPT]
Superceded by: SRLegSecType
Supercedes: LegSecurityType
→ 609LegSecurityTypeNstringticker
secKeyN (for options)
secTypeN (for options)
Alternative to LegCFICode<608>
CS = Equity default
FUT = Future/Future Options
OPT = Equity Option
→ 600LegSymbolYstringticker
secKeyN (for options)
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.
→ 601LegSymbolSfxNstringtickerLeg Symbol Suffix
→ 611LegMaturityDateNstringsecKeyN (for options)For Futures and Options. Formatted as: YYYYMMDD
→ 612LegStrikePriceNfloatsecKeyN (for options)Option strike price
→ 624LegSideYcharssaleFlag
sideN
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).
Superceded by: SRLegSide,SRLegShortSaleFlag
→ 623LegRatioQtyYintmultNThe ratio of quantity for this individual leg relative to the entire multileg security
→ 564LegPositionEffectNcharposTypeNFor 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).
Superceded by: SRLegPosEffect
Standard TrailerY

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.

TagField NameReq'dTypeAssociated Record Value
(SpdrParentOrder)
Comments
Standard HeaderYMsgType = AB
Basic NewOrderMultileg FieldsSee "NewOrderMultileg" above
100ExDestinationYstringexchMaskSR Destination Code (see appendix) - Required for DMA style orders
Superceded by: SRExDestination
Standard TrailerY

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.

TagField NameReq'dTypeAssociated Record Value
(SpdrParentOrder)
Comments
Standard HeaderYMsgType = AB
Basic NewOrderMultileg FieldsSee "NewOrderMultileg" above
Standard TrailerY

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.

TagField NameReq'dTypeAssociated Record Value
(SpdrParentOrder)
Comments
Standard HeaderYMsgType = AB
Any Combination of Basic or Complex NewOrderMultiLeg Fields
5086SRStageTypeYintspdrStageType1 = ModifyAny
2 = ModifyAlgo
5090SRStartTypeYintstartType2 = WaitTrigger (wait start)
Standard TrailerY

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.

TagField NameReq'dTypeAssociated Record Value
(SpdrParentOrder)
Comments
Standard HeaderYMsgType = AB
Basic NewOrderMultileg Fields (See NewOrderMultileg above)
5036SRUsernameNstringaltUserNameClient defined username. - Used for customer service and futures compliance - If necessary, a default may be assigned to the FIX session (24 character max).
5055SRProgressExposeTimeNintprogressExposeTimeDefault = 0
5094SROrderHandlingYintorderHandlingPrimary order handling algorithm
8 = Legger
9 = Seeker
10 = SeekerLegger
20 = CobMaker
5096SRBalanceHandlingNintparentBalanceHandling0 = None (non-marketable balance will not be posted)
4 = PostLimit
5086SRStageTypeYintspdrStageType1 = ModifyAny
2 = ModifyAlgo
5090SRStartTypeNintstartType0 = Immediate
1 = WaitTrigger (wait for RiskGroup/Sweep trigger)
2 = Staged (wait for order to be modified/released)
5084SRTimeInForcestringtimeInForceDay = 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.
5089SRMarketSessioncharmarketSession1 = Regular Market
2 = Pre-Market
3 = Post-Market
4 = Regular and Pre-Market
5 = Regular and Post-Market
6 = All Day
5086SROrderDurationintorderDurationOrder with SrTimeInForce = GTD expires after working for this number of seconds 0/missing = ignore
5088SRGoodTillDttmutcDttmgoodTillDttmOrder with SrTimeInForce = GTD expires at this time working for this number of seconds
5034SRStrategyNstringstrategyClient strategy label. Displayed on SR Order Manager
5360SRExDestinationstringexchMaskComma separated exchange list; default = all available exchanges
5046SRMaxExposureSizeintmaxExposureSizeMaximum simultaneous public exposure size across all exchanges
5048SRNumMakeExchangesintnumMakeExchangesNumber of public exposure exchanges
5050SRPublicSizeNcharpublicSize0 = None
1 = Randomize
2 = MktSize
3 = FullSize
4 = MktSizeA
5 = MktSizeB
6 = MktSizeC
7 = FullSizeR
5080SRMaxChildOrdersintmaxChildOrdersUpper bound for the number of child orders generated for this parent order
5054SRProgressRuleintprogressRule0 = Immediate (default)
1 = Twap
3 = TwapReset
5 = FastReset
6 = SlowReset
7 = TwapAlpha
progressRule 11 = SpdrPulse
5056progressSliceCntintprogressSliceCntNumber of slices to use (default = 4 or 8) [max 20]
5104SRTakeReachRuleinttakeReachRule0 = Immediate
1 = Delayed
2 = Passive
5098SROrderLimitTypestringorderLimitType0 = Market
1 = MarketArrival
2 = Prc
3 = PrcDe
4 = PrcDeX
6 = PrcDeP
8 = PrcDeXP
14 = RelMid
15 = RelJoin
16 = RelCross
5100SRTakeLimitClasschartakeLimitClass0 = Simple
1=Surface
Probability=2
SurfProb=3
5102SRMakeLimitClasscharmakeLimitClass0 = Simple
1=Surface
Probability=2
SurfProb=3
5106SROrderPrcLimitfloatorderPrcLimitApplies if SROrderLimitType<5098> = Prc
5108SROrderRefUPrcpriceorderRefUPrcdefault=underlier.mid
5110SROrderRefDeltafloatorderRefDeltaDefault=option.delta
5112SROrderRefGammafloatorderRefGammaDefault=option.gamma
5116SROrderVolLimitNfloatorderVolLimitOrder volatility limit - Valid range: [0.005, 9.000].
Required if SROrderLimitType<5098> is Vol, VolX, or VolPrc
Ignored if SROrderLimitType is Market
5126SROrderPrcOffsetfloatorderPrcOffsetDefault=0
5128SRTakeAlphaTypechartakeAlphaType1 = Static
2 = Hawk
3 = Eagle
4 = Falcon
5 = Relative
5130SRMakeAlphaTypecharmakeAlphaType1 = Static
2 = Hawk
3 = Eagle
4 = Falcon
5 = Relative
5132SRTakeAlphaFactorfloattakeAlphaFactor
5134SRMakeAlphaFactorfloatmakeAlphaFactor
5136SRTakeProbabilityfloattakeProbability
5138SRMakeProbabilityfloatmakeProbability
5202SRLeadSidecharleadSideSROrderHandling=Legger Only
1 = Buy
2 = Sell
5204SRMaxCompletionSlippagefloatmaxCompletionSlippageSROrderHandling=Legger Only
5206SROrderRefPremiumfloatorderRefPremiumReference premium (multileg orders only)
5290SRUserData1NstringuserData1User 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.
5291SRUserData2NstringuserData2User 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 TrailerY

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.

TagField NameReq'dTypeAssociated Record Value
(SpdrParentOrder)
Comments
Basic NewOrderMultileg Fields (See NewOrderMultileg above)
5094SROrderHandlingYintorderHandlingPrimary order handling algorithm
8 = Legger
5096SRBalanceHandlingNintparentBalanceHandling0 = None (non-marketable balance will not be posted)
4 = PostLimit
5202SRLeadSideNcharleadSideLegger Only
1 = Buy
2 = Sell
5204SRMaxCompletionSlippageNfloatmaxCompletionSlippageLegger Only
Standard TrailerY

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.

TagField NameReq'dTypeAssociated Record Value
(SpdrParentOrder)
Comments
Standard HeaderYMsgType = AC
11ClOrdIdYstringaltOrderIdClient order ID of the cancel request (24 character max)
41OrigClOrdIDYstringaltPrevOrderIdClOrdID<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 TrailerY

ExecutionReport (SpiderRock to Client)

SpiderRock natively follows FIX 4.4 rules for ExecutionReport handling but can switch to FIX 4.2 on request.

TagField NameReq'dTypeAssociated Record Value
SpdrParentReport (r)
SpdrParentExecution (x)
Comments
115OnBehalfOfCompIDNstringexecBrkrClFirm (x)client/firm at executing broker
116OnBehalfOfSubIDNstringexecBrkrUserName (x)userName at execution broker
11ClOrdIDYstringparentNumber (x)See Also: SRBaseParentNumber
1AccountYstringaccnt (r)
execBrkrAccnt (x)
20ExecTransTypeYintexecStatus (x)
150ExecTypeYcharexecStatus (x)
39OrdStatusYcharspdrOrderStatus (r)
fillQuantity (r)
r.execType (r)
41OrigClOrdIDNstringprevParentNumber (r)Conditionally required for response to a Cancel or Cancel/Replace request - (ExecType=PendingCancel, Replaced, or Canceled)
37OrderIDYhexlongbaseParentNumber (r)Unique ID for order chain assigned by SpiderRock
54SideYcharorderSide (x)
ssaleFlag (x)
Value from executing venue - Value may differ from client's order if execution order is sold short.
38OrderQtyYintorderSize (x)parent order size
40OrdTypeYcharparentOrderHandling (r)
limitPrice (r)
orderLimitType (r)
Order type of this execution
528OrderCapacityNcharorderCapacity (r)Value from order to venue
A = Agency
W = Agent Other Member
I = Individual
P = Principal
G = Proprietary
44PriceNfloatlimitPrice (r)Value from client's order
47Rule80ANcharorderCapacity (r)A = Agency Singl eOrder
W = Agent Other Member
I = Individual
P = Principal
59TimeInForceNstringorderDuration (r)
parentOrderHandling (r)
0 = Day
2 = Opening
7 = Closing
Symbology
55SymbolYstringsecKey (x)Value from client's order
65SymbolSfxNstringsecKey (x)Value from client's order
167SecurityTypeNstringsecKey (x)MLEG = Multileg
CS = Common Stock
FUT = Future
OPT = Option
541MaturityDateNstringsecKey (x)Value from client's order YYYYMMDD
200MaturityMonthYearNstringsecKey (x)Value from client's order YYYYMM
205MaturityDayNintsecKey (x)Value from client's order 1-31
202StrikePriceNpricesecKey (x)Value from client's order
201PutOrCallNintsecKey (x)Value from client's order
100ExDestinationNstringchildExDest (r)Child order exchange destination
204CustomerOrFirmNcharfirmType (r)Child order firm type
0 = Customer
1 = Firm
2 = Broker / Dealer
3 = Broker Dealer Customer
4 = Market Maker
5 = Non-Member Market Maker
8 = Customer Professional
J =Fim JBO
77PositionEffectNstringpositionType (x)parent order position type
O = Opening
C = Closing
439ClearingFirmNstringclearingFirm (x)clearing firm
440ClearingAccountNstringclearingAccnt (x)clearing firm account
17ExecIDYstringUnique ID assigned by SpiderRock
19ExecRefIDNstring
654LegRefIDNstringlegRefId (x)Used to identify a specific leg for multileg order execution reports
6AvgPxYfloatsumFillMoney (x)
sumFillQty (x)
Execution price
14CumQtyYintsumFillQty (x)
151LeavesQtyYintorderSize(x)
sumFillQty (x)
0 if order is not active
31LastPxYfloatfillPrice (x)
32LastSharesYintfillQuantity (x)
30LastMktNstringfillMarket (x)
childExDest (x)
Value from executing venue
29LastCapacityNstringlastCapacity (x)child order capacity
58TextNstringspdrCloseReason (r), orderClosedText (r)
60TransactTimeYutcDttmfillTransactDttm (x)
timestamp (r)
Time the transaction represented by this
75TradeDateNutcDttmsecKey (x)
fill.fillDttm (x)
Trading Date
76ExecBrokerNstringextExecBroker (r)Child executing venue
5607SRStreetExecIDNstringfillExecId (x)street side execution Id
5608SRStreetExecRefIDNstringfillExecRefId (x)street side execution ref Id
442MultiLegReportingTypeNcharparentShape (r)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
5602SRFillNumberNhexlongfillNumber (x)SpiderRock execution number
5611SRExchLiqTagNstringexchLiquidityTag (x)Exchange supplied liquidity code
5610SRLiquidityTagNstringspdrLiquidityTag (x)SpiderRock normalized venue liquidity tag
5619SRExchFeeEstNfloatfillExchFee (x)SpiderRock estimate of the exchange fee based on liquidity tags (best effort)
5618SRBillingRateNfloatfillBrkrRate (x)
fillRoutingRate (x)
billing brokerage + routing rate
5360SRExDestinationNstringchildExDest (x)child order exchange destination
5627SRChildShortSaleFlagNstringchildSSaleFlag (x)4 = Auto
6 = Close
8 = Cover
3 = Exempt
1 = Long
7 = N/A
5 = Open >
2 = Short
5625SRChildPositionTypeNstringchildPosType (x)Child order position type
7 = Auto
5 = Open
7 = Close
5631SRStreetRouteNstringroutingCode (x)SpiderRock market routing code
5038SROrderDttmNutcDttmorderDttm (r)
5012SRAltAccntNstringaltAccnt (r)client assigned account
5014SRAltUserNameNstringaltUserName (r)client assigned user name
5034SRStrategyNstringparentStrategy (r)client assigned strategy name
5009SRSpdrSourceNstringspdrSource (r)Source of this order (FIX, SRSE, HedgeTool, etc)
5000SRParentNumberNhexlongparentNumber (r)SpiderRock order id. See Also SRBaseParentNumber
5004SRBaseParentNumberNhexlongbaseParentNumber (r)Unique ID for order chain assigned by SpiderRock
See Also SRParentNumber
5290SRUserData1NstringuserData1 (r)client supplied data field
5291SRUserData2NstringuserData2 (r)client supplied data field
5088SRGoodTillDttmNdatetimegoodTillDttm (r)
Standard TrailerY

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.

TagField NameReq'dTypeAssociated Record Value
(SpdrParentReport)
Comments
Standard HeaderYMsgType = F
11ClOrdIdYstringaltOrderIdClient order ID of the cancel request (24 character max)
41OrigClOrdIDYstringaltPrevOrderIdClOrdID<11> of the previous order (NOT the initial order of the day) when canceling an order. (24 character max)
37OrderIDNstringSR assigned OrderID (from an ExecutionReport message) - Note: one of OrigClOrdID or OrderID must be supplied.
Symbology
55SymbolYstringsecKeyExchange 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
Superceded by: SRSecKey
65SymbolSfxBstringsecKeySymbol suffix
Superceded by: SRSecKey
167SecurityTypeNstringsecKeyMLEG = Multileg
CS = Common Stock
FUT = Future
OPT = Option
541MaturityDateNstringsecKeyFor Futures and Options YYYYMMDD
Superceded by: SRSecKey
200MaturityMonthYearNstringsecKeyAlternative to MaturityDate<541> YYYYMM
Superceded by: SRSecKey
205MaturityDayNintsecKeyAlternative to MaturityDate<541> 1-31
Superceded by: SRSecKey
202StrikePriceNfloatsecKeyOption strike price
Superceded by: SRSecKey
201PutOrCallNintsecKeyValue from client's order
54SideYcharorderSide
ssaleFlag
Value from executing venue - Value may differ from client's order if execution order is sold short.
60TransactTimeYutcDttmTime 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.
38OrderQtyYintorderSizeExecutable quantity
Superceded by: SROrderSize
58TextNstringUser supplied text such as a cancel reason
Standard TrailerY

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.

TagField NameReq'dTypeAssociated Record Value
(SpdrParentReport)
Comments
Standard HeaderYMsgType = 8
37OrderIDYhexlongbaseParentNumberUnique ID for order chain assigned by SpiderRock
11ClOrdIDYstringparentNumberSee Also: SRBaseParentNumber
41OrigClOrdIDYstringaltPrevOrderIdConditionally required for response to a Cancel or Cancel/Replace request (ExecType=PendingCancel, Replaced, or Canceled)
434CxlRejResponseToYcharValid values:
1 = OrderCancelRequest <F>
2 = OrderCancel/Replace Request <G>
102CxlRejReasonNint
39OrdStatusYcharOrdStatus value after this cancel reject is applied
58TextNstring
Standard TrailerY