Option Algos
Algo Overview
Sweep Algos
Sweep algorithms enable a synchronized order delivery mechanism to multiple exchanges to maximize liquidity capture.
- Users can send marketable limit orders to the engine to maximize liquidity capture.
- Orders will automatically route to the optimal exchange(s) based on exchange fees and available liquidity.
- Orders can interact with off-exchange liquidity pools to increase available liquidity and reduce exchange fees.
Volatility Algos
Volatility algorithms enable orders with dynamic price or volatility limits to accurately represent client's trading intent in fast markets.
- User seeks best possible fill relative to limit provided. SpiderRock Connect supports a number of tied-to-underlier limit types including volatility and price + delta-based limits.
- Orders will automatically route to the optimal exchange(s) based on exchange fees and available liquidity.
Multi-leg Algos
Multi-leg algorithms enable spread orders to sweep available liquidity across Exchange COBs or work orders in single-leg markets.
- Spread orders (up to 6 option legs and 1 stock leg) can seek liquidity on Exchange COBs or source liquidity across multiple single-leg exchanges.
- Spread limit price can be static or tied to the underlying instrument.
- Options fills can be automatically hedged / legging style orders can include an auto-complete slippage and a leg size exposure parameter.
Alpha Taking Algos
Alpha taking algorithms reduce transaction costs by timing the release of marketable limit orders based on dynamic surface limits or probability limits.
- Orders wait for actionable opportunity to remove liquidity so that fills are statistically targeting a mid-market or better fill a few minutes forward.
- Probability calculations are inclusive of expected exchange fees.
- Alpha probabilities are recomputed continuously as market data changes.
Alpha Making Algos
Alpha making algorithms reduce transaction costs by posting and moving orders into exchange order books based on dynamic surface limits or probability limits.
- Orders are almost always liquidity-adding orders on exchange and can include a traditional static or tied-to-underlier limit.
- Algo instructions specify how much orders can improve markets.
- Probability calculations are inclusive of expected exchange fees and expected depth profile when adding a new order to an exchange order book.
Facilitation Algos
Facilitation algorithms enable client firms to submit facilitation orders to exchanges for public exposure prior to crossing with firm interest.
- Crossing algos can be used to either maximize or minimize firm interaction with client orders.
- Orders will sweep all available liquidity or create space to facilitate via exchange auction mechanisms.
- Client can leverage SpiderRock alpha probabilities to make real-time facilitation decisions.
Sweep Algos
Sweep algos maximize liquidity capture with immediately marketable limit orders on products that are multiply listed.
Order type: Simple market orders without an explicit destination
Mechanism: SpiderRock Connect optimizes the child-order delivery to available exchanges in order to either minimize exchange fees when attempting to trade less than visible size, or maximize liquidity capture when attempting to trade visible size or more.
Corresponding FIX Tags
Option | GUI Tool | FIX Tag | FIX Value |
---|---|---|---|
Order Type | ActiveTaker | 5094 | 1 |
Post Type | NoPost | 5096 | 0 |
Make Limit Class | Simple | 5102 | 0 |
Take Limit Class | Simple | 5100 | 0 |
Limit Type | Market | 5098 | 0 |
Volatility Algos
Volatility algos work an order at the best possible price relative to the user-limit expressed in volatility or price + delta based.
Order Type: Simple dynamic limit orders that are sensitive to exchange fee/rebate profiles
Mechanism: SpiderRock Connect's execution engines will dynamically determine the best venue based primarily on exchange fees followed by available liquidity, and will cancel and replace child orders as the underlier price moves to accurately represent client trading intent.
Corresponding FIX Tags
Option | GUI Tool | FIX Tag | FIX Value |
---|---|---|---|
Order Type | ActiveTaker | 5094 | 1 |
Post Type | PostLimit | 5096 | 4 |
Make Limit Class | Simple | 5102 | 0 |
Take Limit Class | Simple | 5100 | 0 |
Limit Type if Vol | Mid, Cross, Market | 5098 | |
Limit Type if Prc | Market, MarketArrival, Prc, PrcDe, PrcDeX, PrcDeT, PrcDeP, PrcDeXT, PrcDeXP, Vol, VolX, PrcV, PrcVX, VolPrc, RelMid, RelJoin, RelCross, SmrtFast, SmrtNorm, RelTurn | 5098 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 |
Multi-Leg Algos
The SpiderRock spread order handler offers enhanced ways to source liquidity by sweeping the complex order books (COBs) or work orders in single-leg markets.
Order Type: Simple dynamic limit orders that are sensitive to exchange fee/rebate profiles
Mechanism: Spread orders are comprised of a maximum of 6 option legs and 1 stock leg. They are either static limit orders or have a price + delta limit tied to an underlying symbol. They can post liquidity or wait to be marketable before being represented in the market. They can also be auto-hedged with the corresponding underlying instrument.
Mechanism/Algo Settings: Spread orders can be sent up to 3 different COBs. If any responses are received and the parent order remains unfilled, the parent order balance will be moved to the exchange with the best response. If no responses are received, the order will either be left on the COB (Seeker) or switched to the MultiLegLegger handle depending on the order type selected. This handler can source liquidity across multiple single-leg exchanges. While this handler attempts to fill the order in discrete leg packages, it does have legging risk. Users can choose not to post liquidity and wait until some number of spread units become marketable, or post liquidity to compete more aggressively with public interest.
Corresponding FIX Tags
Option | GUI Tool | FIX Tag | FIX Value |
---|---|---|---|
Order Type | Seeker, Seek/Leg, Legger, Facilitate | 5094 | 9, 10, 8, 6 |
Post Type | NoPost, PostWith, PostTurn, PostImpr, PostLimit, PostLmtW, PostWithF | 5096 | 0, 1, 2, 3, 4, 5, 7 |
Make Limit Class, | Simple, Surface, Probability, mksurf|tkprob | 5102 | 0, 1, 2, 3 |
Take Limit Class | Simple, Surface, Probability, mksurf|tkprob | 5100 | 0, 1, 2, 3 |
Limit Type | Market, MarketArrival, Prc, PrcDe, PrcDeX, PrcDeT, PrcDeP, PrcDeXT, PrcDeXP, Vol, VolX, PrcV, PrcVX, VolPrc, RelMid, RelJoin, RelCross, SmrtFast, SmrtNorm, RelTurn | 5098 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 |
Exposure | 10%, 20$, 50%, 100% | 5046 | Integer (%) |
Slippage | Pennies (num field) | 5204 | Price |
Lead | Buy, Sell, Any | 5202 | 1, 2, 0 |
Alpha Taking Algos
Alpha taking algos reduce transaction costs by timing the release of marketable limit orders based on surface limits or probability limits.
Order Type: These orders are marketable limit orders triggered by the SpiderRock dynamic surface (+ or – an offset) or alpha probabilities. Users can express the probability at which they want to work an order. Parent orders are discretionary and wait for an actionable opportunity. Orders don’t necessarily fill.
Mechanism/Algo Settings: Orders remain dark until triggered by a secondary limit (Surface or Probability). Alpha probabilities are numerical estimates of expected short term profitability of the available price points at or between the current public bid and offer and are derived from SpiderRock machine learning algorithms.
Corresponding FIX Tags
Option | GUI Tool | FIX Tag | FIX Value |
---|---|---|---|
Order Type | ActiveTaker | 5094 | 1 |
Post Type | NoPost | 5096 | 0 |
Take Limit Class | Surface, Probability, mksurf|tkprob | 5100 | 1, 2, 3 |
Limit Type if Vol | Mid, Cross, Market | 5098 | |
Limit Type if Prc | Market, MarketArrival, Prc, PrcDe, PrcDeX, PrcDeT, PrcDeP, PrcDeXT, PrcDeXP, Vol, VolX, PrcV, PrcVX, VolPrc, RelMid, RelJoin, RelCross, SmrtFast, SmrtNorm, RelTurn | 5098 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 |
Surface Limit | Prc Offset ask, Prc Offset bid | 5518, 5536 | Price |
Take Probability Alpha Type | Static, Relative, Eagle, Hawk, Falcon | 5128 | 1, 5, 3, 2, 4 |
Take Probability Limit | If Static: set TakeLimit (Num) | 5136 | float |
Alpha Making Algos
Alpha making algos reduce transaction costs by posting liquidity based on dynamic surface limits or probability limits (which are often better the NBBO).
Order Type: These orders are non-marketable limit orders that are designed to never remove liquidity. These orders typically have a primary user-supplied limit, which acts as a top or bottom limit, and a secondary limit expressed as a + or - offset from the SpiderRock surface, or leaning on the SpiderRock alpha probabilities. Orders are discretionary resting orders and may not fill.
Mechanism/Algo settings: Orders will post in the market at levels that are computed from the effective limit, which is the tightest of the user-supplied limit and the secondary limit (based on the Surface or Probability). The limit at which the order is represented in the market is highly dynamic and will generate a number of cancels/replaces to achieve the desired level of execution.
Corresponding FIX Tags
Option | GUI Tool | FIX Tag | FIX Value |
---|---|---|---|
Order Type | PostOnly | 5094 | 2 |
Post Type | PostWith, PostTurn, PostImpr, PostLimit, PostLmtW, PostWithF, PostFlash | 5096 | 0, 1, 2, 3, 4, 5, 7 |
Make Limit Class | Surface, Probability | 5102 | 1, 2, 3 |
Limit Type if Vol | Mid, Cross, Market | 5098 | 9, 10, 0 |
Limit Type if Prc | Market, MarketArrival, Prc, PrcDe, PrcDeX, PrcDeT, PrcDeP, PrcDeXT, PrcDeXP, Vol, VolX, PrcV, PrcVX, VolPrc, RelMid, RelJoin, RelCross, SmrtFast, SmrtNorm, RelTurn | 5098 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 |
Surface Limit | Prc Offset ask, Prc Offset bid | 5518, 5536 | Price |
Make Probability Alpha Type | Static, Relative, Eagle, Hawk, Falcon | 5130 | 1, 5, 3, 2, 4 |
Make Probability Limit | If Static: set MakeLimit (Num) | 5138 | float |
Corresponding Alpha Taking and Making Algos
Alpha Taking and Alpha Making algos can be combined. Users will post in the market, if the limit becomes marketable the taking component of the algo will take that price.
Corresponding FIX Tags
Option | GUI Tool | FIX Tag | FIX Value |
---|---|---|---|
Order Type | ActiveTaker | 5094 | 1 |
Post Type | PostWith, PostTurn, PostImpr, PostLimit, PostLmtW, PostWithF, PostFlash | 5096 | 0, 1, 2, 3, 4, 5, 7 |
Take Limit Class | Surface, Probability, mksurf|tkprob | 5100 | 1, 2, 3 |
Make Limit Class, | Simple, Surface, Probability, mksurf|tkprob | 5102 | 0, 1, 2, 3 |
Limit Type if Vol | Mid, Cross, Market | 5098 | 9, 10, 0 |
Limit Type if Prc | Market, MarketArrival, Prc, PrcDe, PrcDeX, PrcDeT, PrcDeP, PrcDeXT, PrcDeXP, Vol, VolX, PrcV, PrcVX, VolPrc, RelMid, RelJoin, RelCross, SmrtFast, SmrtNorm, RelTurn | 5098 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 |
Surface Limit | Prc Offset ask, Prc Offset bid | 5518, 5536 | Price |
Take Probability Alpha Type | Static, Relative, Eagle, Hawk, Falcon | 5128 | 1, 5, 3, 2, 4 |
Make Probability Alpha Type | Static, Relative, Eagle, Hawk, Falcon | 5130 | 1, 5, 3, 2, 4 |
Take Probability Limit | If Static: set TakeLimit (Num) | 5136 | float |
Make Probability Limit | If Static: set MakeLimit (Num) | 5138 | float |
Common Order Parameters
Common Order Modifiers | Description | FIX Tag | FIX Value |
---|---|---|---|
Start Type | Immediate, WaitTrigger, Staged | 5090 | 0, 1, 2 |
ActiveOrderSize | (num) | 5044 | int |
TimeInForce | Day, IOC, GTD, ExtDay, Week, ExtWeek | 5084 | 1, 2, 3, 4, 5, 6 |
OrderDuration | (num)seconds | 5086 | int |
GoodTillDttm | UTC Timestamp | 5088 | datetime |
AltRouteCode | Alternative child order route code | 5028 | string |
Strategy | Text strategy field | 5034 | string |
Exchanges | Comma-separated exchange list, default=all | 5082 | string |
MaxExposureSize | Maximum exposure size of order | 5046 | int |
NumMakeExchanges | Number of public exchanges to post | 5048 | int |
PublicSize | None, Randomize, MktSize, FullSize | 5050 | 0, 1, 2, 3 |
CanCxlOverlap | Yes, No | 5052 | Y, N |
MaxChildOrders | Upper bound for the number of child orders | 5080 | int |
TwapSliceCount | Number of TWAP slices (default = 1) | 5056 | int |
TakeReach | Immediate, Delayed, Passive, WeakOnly | 5104 | 0, 1, 2, 3 |
OrderPriceOffset | default = 0 | 5126 | price |
OrderPrcLimit | If LimitType = Prc | 5106 | price |
TakeAlphaFactor | For relative probability limit | 5132 | float |
MakeAlphaFactor | For relative probability limit | 5134 | float |
MaxAccDayDDeltaLn | max account day $delta long (num) | 5253 | float |
MaxAccDayDDeltaSh | max account day $delta short (num) | 5254 | float |
MaxSymDayDDeltaLn | max symbol day $delta long (num) | 5259 | float |
MaxSymDayDDeltaSh | max symbol day $delta short (num) | 5260 | float |
OrderRefUPrc | stock reference price, default = 0 | 5108 | price |
OrderRefDelta | Reference delta, default = option delta | 5110 | float |
OrderRefGamma | Reference delta, default = option gamma | 5112 | float |
OrderRefTheta | Reference theta, default = option theta | 5114 | float |
OrderRefMetric1 | User-supplied custom risk metric #1 | 5192 | float |
OrderRefMetric2 | User-supplied custom risk metric #2 | 5194 | float |
OrderRefMetric3 | User-supplied custom risk metric #3 | 5196 | float |
OrderRefMetric4 | User-supplied custom risk metric #4 | 5198 | float |
OrderVolLimit | if LmtType=Vol, VolX,VolPrc. Igrored if LmtType=Market | 5116 | float |
RateOverride | ignore is 0, if > 0, override | 5118 | float |
SDivOverride | SDivOverride | 5120 | float |
DDivOverride | Discrete Div Override | 5122 | string |
srOverrideCode | is LimitType = Vol, SDivOnly, DDivOnly, Both | 5124 | S, D, B |
srMakeSurfacePrcOffset | default = 0 | 5144 | float |
srTakeSurfacePrcOffset | default = 0 | 5410 | float |
srMakeSurfaceVolOffset | default = 0 | 5146 | float |
srTakeSurfaceVolOffset | default = 0 | 5142 | float |
srCxlUPrcRange | Cancel order is outside stock price range | 5072 | Y, N |
srMinUBid | Will hold if outside min stock price | 5074 | float |
srMaxUAsk | Will hold if outside max stock price | 5076 | float |
srMinOptionPx | Option floor price for tied to stock orders | 5078 | float |
srAutoHedge | NoHedge, FastCrx, AutoCrx, AutoTrn, AutoMid, SpdrAuto, Spdr10S, Spdr30S, Spdr90S, Spdr5M, Spdr30M, Static | 5152 | N, X, F, S, M, A, 1, 3, 9, 5, H, T |
srAutoHedgeSSaleFlag | Long, Short, Exempt, Auto, Open, Close, Cover, NA | 5172 | 1, 2, 3, 4, 5, 6, 8, 7 |
srAutoHedgeClOrdID | Required if AutoHedge enabled. ClOrdld that will be used on hedge execution | 5010 | string |
srMaxAccDayWtVegaLn | max account day wvega (time-weighted) short | 5251 | float |
srMaxAccDayWtVegaSh | max account day wvega (time-weighted) long | 5252 | float |
srMaxExpDayWtVegaLn | max account+expiration day wvega (time-weighted) long | 5255 | float |
srMaxExpDayWtVegaSh | max account+expiration day wvega (time-weighted) short | 5256 | float |
srMaxSymDayWtVegaLn | max account+symbol day vega long | 5257 | float |
srMaxSymDayWtVegaSh | max account+symbol day vega short | 5258 | float |