UDS are multi-leg, tradable options strategies created by an individual and registered by an exchange for general open market trading. The formula includes legs composed of an operator, ratio, and contract.
Generally, a definition of UDS is exchange specific. Some common UDS are recognized by exchanges, but they may have different specifications. You should be aware of these differences and should refer to specific exchanges for detailed information. For example, Exchange A and Exchange E may recognize certain butterflies, but Exchange A may require their specification from the buy side, while the Exchange E may support buy and sell side specification.
In CQG, UDS are built in to Strategy Analysis (on the Strategy drop-down menu). The menu includes several common strategies as well as strategies that are not tradable (such as covered UDS). You can also create custom UDS.
UDS are saved as QFormulas, and you work with them in that format. QFormulas can be created through Strategy Analysis or using Formula Builder and the User Defined Strategy (UDS) function.
UDS format
The UDS expression ( UDS_expr ) has the following format:
UDS_expr = "UDS("UDS_formula [","UDS_type ] ")"
UDS_formula = ["-"] Leg [ ("-"|"+") Leg] +
Leg = [ratio "*"] (symbol | UDS_expr | Cover_expr )
Ratio = a positive integer value
Symbol = Standard CQG option symbol (e.g. C.EPH2117850) | Standard CQG future symbol
Cover_expr = " COVER("Future_Symbol ","Option_Delta ","Future_Price")"
Where:
Futures_Symbol = Standard CQG futures symbol
Options_Delta = value whose meaning is similar to the option Delta greek. It shall be a non-zero decimal value. (There are no other formal restrictions on its value, but in reality, its value is usually between 0 and 1. It is used (1) in UDS price calculation and (2) implicitly, by exchange, in calculating sizes of the future leg fills when the exchange executes UDS order.)
Future_Price = futures price value (always in decimal format)
UDS_type = one of predefined UDS abbreviations agreed between CQG IC and the CQG Gateway.
Examples: "BearC", "BullC". If the UDS_type is not specified explicitly, then this is a custom strategy.
Examples:
UDS(C.EPM2117850 - 2 * C.EPM2117900 + C.EPM2117950, BflyCL) – a butterfly call long
UDS(C.EPM2117850 - 2 * P.EPH2117900 + C.EPM2217950) – a custom option strategy
UDS( UDS(C.US.CLEG214800 - C.US.CLEH214800) - COVER(F.US.CLEG21, 0.50, 47.91), CalC_US) – a recursive covered strategy
UDS(F.US.FRIH21 + F.US.FRIM21 + F.US.FRIU21 + F.US.FRIZ21, Pack) - a pack future-only strategy
UDS(EP?1 - EP?2) – a custom futures strategy
UDS( UDS(F.US.FRIH21 + F.US.FRIM21) - 2* UDS(F.US.FRIU21 + F.US.FRIZ21)) - a recursive custom future-only strategy
UDS formula describes strategy from a buy perspective. It specifies a set of legs (contracts and quantities) to be bought or sold to buy the given UDS strategy.
Please note that the leg order may vary from exchange to exchange for the same strategy type. Please refer to particular exchange rules for the given strategy to avoid rejection. From the CQG IC perspective two strategies UDS(A+B, strategy_type) and UDS(B+A, strategy_type) are equal, but from the exchange perspective one could be rejected and another one could be accepted as correct one.
Option UDS:
All strategy legs should be options (Call and/or Put) or nested UDS with option legs. Intercommodity spreads are possible.
Futures UDS:
All strategy legs should be futures contracts or nested UDS with futures legs. Intercommodity spreads are possible.
Covered UDS:
Futures and options can be mixed in the same strategy. In this case the future instrument can only specify a cover leg, which implies that valid values of option delta and future price parameters shall be specified for it. Non-cover legs of a Covered UDS can only be option legs or nested UDSs with option legs. It is possible to specify several cover legs as well as several nested UDS legs, in any mutual order.
Examples (not exhaustive) of structures of covered UDS:
- UDS(COVER(F.US.EPH21, 0.3, 3780) + option leg + option leg )
- UDS(option leg + option leg + COVER(F.US.EPH21, 0.3, 3780))
- UDS(UDS( option leg + option leg ) + COVER(F.US.EPH21, 0.3, 3780))
- UDS(UDS( option leg + option leg ) + COVER(F.US.EPH21, 0.3, 3780) + COVER(F.US.EPM21, 0.25, 3800))
Notes:
• Intercommdity UDS are allowed. All leg commodities must have the same conversion parameters.
• The same put/call side must be used for all legs of options UDS.
• For custom formulas, the UDS type is not used.
• These strategies cannot be nested; that is, they cannot be the leg of another synthetic strategy and they cannot contain another strategy as a leg.
• Future-only UDS that are recognized by an exchange as so-called UmaFs (UDS masqueraded as Futures) are not fully supported: they can be traded, but the displayed quotes will remain synthetic ones.
UDS types
UDS that do not use one of these strategies are considered custom.
The strategy abbreviation is used as part of UDS expression (strategy formula).
User-defined strategy |
Abbreviation (user type) |
User-defined strategy |
Abbreviation (user type) |
2x1 Ratio Spread Call / Buy U |
2x1C_UL |
Iron Condor |
ICndr |
2x1 Ratio Spread Call / Sell U |
2x1C_US |
Iron Condor / Buy U |
ICndr_UL |
2x1 Ratio Spread Put / Buy U |
2x1P_UL |
Iron Condor / Sell U |
ICndr_US |
2x1 Ratio Spread Put / Sell U |
2x1P_US |
Jelly Roll |
JRoll |
2x3x2 Ratio Butterfly Call |
2x3x2BflyC |
Ladder Call / Buy U |
CTreeCL_UL |
2x3x2 Ratio Butterfly Call / Buy U |
2x3x2BflyC_UL |
Ladder Call / Sell U |
CTreeCL_US |
2x3x2 Ratio Butterfly Call / Sell U |
2x3x2BflyC_US |
Ladder Put / Buy U |
CTreePL_UL |
2x3x2 Ratio Butterfly Put |
2x3x2BflyP |
Ladder Put / Sell U |
CTreePL_US |
2x3x2 Ratio Butterfly Put / Buy U |
2x3x2BflyP_UL |
Location Spread |
LSpread |
2x3x2 Ratio Butterfly Put / Sell U |
2x3x2BflyP_US |
Pack, Futures |
Pack |
3 Way: Call Spread vs a Put |
CSpr_P |
Pack: Blue |
BluePack |
3 Way: Put Spread vs a Call |
PSpr_C |
Pack: Copper |
CopperPack |
3 Way: Straddle vs a Call |
Strd_C |
Pack: Gold |
GoldPack |
3 Way: Straddle vs a Put |
Strd_P |
Pack: Green |
GreenPack |
3x1 Ratio Spread Call |
3x1C |
Pack: Orange |
OrangePack |
3x1 Ratio Spread Call / Buy U |
3x1C_UL |
Pack: Pink |
PinkPack |
3x1 Ratio Spread Call / Sell U |
3x1C_US |
Pack: Purple |
PurplePack |
3x1 Ratio Spread Put |
3x1P |
Pack: Red |
RedPack |
3x1 Ratio Spread Put / Buy U |
3x1P_UL |
Pack: Silver |
SilverPack |
3x1 Ratio Spread Put / Sell U |
3x1P_US |
Pack: White |
WhitePack |
3x2 Ratio Spread Call |
3x2C |
Ratio Risky |
RRatio |
3x2 Ratio Spread Call / Buy U |
3x2C_UL |
Ratio Risky / Sell U |
RRatio_US |
3x2 Ratio Spread Call / Sell U |
3x2C_US |
Ratio Spread, Call |
RatioC |
3x2 Ratio Spread Put |
3x2P |
Ratio Spread, Put |
RatioP |
3x2 Ratio Spread Put / Buy U |
3x2P_UL |
Reversal/Conversion |
Rev |
3x2 Ratio Spread Put / Sell U |
3x2P_US |
Risk Reversal |
SynUL |
Back Spread, Call |
BackC |
Risky Swap |
RSwap |
Back Spread, Put |
BackP |
Risky Swap / Buy U |
RSwap_UL |
Basis Spread |
Basis |
Risky Swap / Sell U |
RSwap_US |
Bear Call Spread |
BearC |
Risky Time Spread |
RTime |
Bear Put Spread |
BearP |
Risky Time Spread / Sell U |
RTime_US |
Bond Futures Spread |
InterBonds |
Semi-Underlying, Long |
SemiUL |
Box Spread |
Box |
Semi-Underlying, Short |
SemiUS |
Bull Call Spread |
BullC |
Skinny Butterfly Call |
SkinBflyC |
Bull Put Spread |
BullP |
Skinny Butterfly Call / Buy U |
SkinBflyC_UL |
Bundle, Futures |
Bndl |
Skinny Butterfly Call / Sell U |
SkinBflyC_US |
Butterfly Call / Buy U |
BflyCL_UL |
Skinny Butterfly Put |
SkinBflyP |
Butterfly Call / Sell U |
BflyCL_US |
Skinny Butterfly Put / Buy U |
SkinBflyP_UL |
Butterfly Call, Long |
BflyCL |
Skinny Butterfly Put / Sell U |
SkinBflyP_US |
Butterfly Call, Short |
BflyCS |
Spread Call / Sell U |
BullC_US |
Butterfly Put / Buy U |
BflyPL_UL |
Spread Call vs Call |
BullC_C |
Butterfly Put / Sell U |
BflyPL_US |
Spread Call vs Call / Buy U |
BullC_C_UL |
Butterfly Put, Long |
BflyPL |
Spread Call vs Call / Sell U |
BullC_C_US |
Butterfly Put, Short |
BflyPS |
Spread Call vs Spread Put |
BC_BP |
Butterfly, Futures |
Bfly |
Spread Call vs Spread Put / Buy U |
BC_BP_UL |
Calendar 2x1 Ratio Call |
Cal2x1C |
Spread Call vs Spread Put / Sell U |
BC_BP_US |
Calendar 2x1 Ratio Call / Buy U |
Cal2x1C_UL |
Spread Call vs sell Put |
BullC_P |
Calendar 2x1 Ratio Call / Sell U |
Cal2x1C_US |
Spread Call vs sell Put / Sell U |
BullC_P_US |
Calendar 2x1 Ratio Put |
Cal2x1P |
Spread Put / Buy U |
BearP_UL |
Calendar 2x1 Ratio Put / Buy U |
Cal2x1P_UL |
Spread Put vs Put |
BearP_P |
Calendar 2x1 Ratio Put / Sell U |
Cal2x1P_US |
Spread Put vs Put / Buy U |
BearP_P_UL |
Calendar Call |
CalC |
Spread Put vs Put / Sell U |
BearP_P_US |
Calendar Fly Call |
CalFlyC |
Spread Put vs sell Call |
BearP_C |
Calendar Fly Call / Buy U |
CalFlyC_UL |
Spread Put vs sell Call / Buy U |
BearP_C_UL |
Calendar Fly Call / Sell U |
CalFlyC_US |
Spread Swap Call |
SwapC |
Calendar Fly Put |
CalFlyP |
Spread Swap Call / Buy U |
SwapC_UL |
Calendar Fly Put / Buy U |
CalFlyP_UL |
Spread Swap Call / Sell U |
SwapC_US |
Calendar Fly Put / Sell U |
CalFlyP_US |
Spread Swap Put |
SwapP |
Calendar Put |
CalP |
Spread Swap Put / Buy U |
SwapP_UL |
Calendar Spread Call / Buy U |
CalC_UL |
Spread Swap Put / Sell U |
SwapP_US |
Calendar Spread Call / Sell U |
CalC_US |
Straddle / Buy U |
StradL_UL |
Calendar Spread Put / Buy U |
CalP_UL |
Straddle / Sell U |
StradL_US |
Calendar Spread Put / Sell U |
CalP_US |
Straddle Calendar Spread |
SCal |
Calendar Spread, Futures |
Cal |
Straddle Clnd Sprd / Buy U |
SCal_UL |
Christmas Tree Call, Long |
CTreeCL |
Straddle Clnd Sprd / Sell U |
SCal_US |
Christmas Tree Call, Short |
CTreeCS |
Straddle Fly |
StradFly |
Christmas Tree Put, Long |
CTreePL |
Straddle Fly / Buy U |
StradFly_UL |
Christmas Tree Put, Short |
CTreePS |
Straddle Fly / Sell U |
StradFly_US |
Clean Dark Spread |
CDark |
Straddle vs Call |
Strad_C |
Clean Spark Spread |
CSpark |
Straddle vs Call / Buy U |
Strad_C_UL |
Combo |
CmbS |
Straddle vs Call / Sell U |
Strad_C_US |
Combo / Buy U |
CmbS_UL |
Straddle vs Put |
Strad_P |
Condor Call |
CndrC |
Straddle vs Put / Buy U |
Strad_P_UL |
Condor Call / Buy U |
CndrC_UL |
Straddle vs Put / Sell U |
Strad_P_US |
Condor Call / Sell U |
CndrC_US |
Straddle vs Strangle |
SD_SG |
Condor Put |
CndrP |
Straddle vs Strangle / Buy U |
SD_SG_UL |
Condor Put / Buy U |
CndrP_UL |
Straddle vs Strangle / Sell U |
SD_SG_US |
Condor Put / Sell U |
CndrP_US |
Straddle, Long |
StradL |
Condor, Futures |
Condor |
Straddle, Short |
StradS |
Covered Call Write |
CovCW |
Strangle |
Strang |
Delta Neutral Call Ratio |
DNeutC |
Strangle / Buy U |
Strang_UL |
Diag Calendar Spread Call |
DCalC |
Strangle / Sell U |
Strang_US |
Diag Calendar Spread Put |
DCalP |
Strangle Spread |
StrSpr |
Diag Clnd Call Sprd / Buy U |
DCalC_UL |
Strangle Spread / Buy U |
StrSpr_UL |
Diag Clnd Call Sprd / Sell U |
DCalC_US |
Strangle Spread / Sell U |
StrSpr_US |
Diag Clnd Put Sprd / Buy U |
DCalP_UL |
Strangle, Long |
StrangL |
Diag Clnd Put Sprd / Sell U |
DCalP_US |
Strangle, Short |
StrangS |
Diag Straddle Clnd Spread |
DSCal |
Strip |
Strip |
Diag Strdl Clnd Sprd / Buy U |
DSCal_UL |
Synthetic Call, Long |
SynCallL |
Diag Strdl Clnd Sprd / Sell U |
DSCal_US |
Synthetic Call, Short |
SynCallS |
Dirty Dark Spread |
DDark |
Synthetic Offpeak Spread |
Offpick |
Dirty Spark Spread |
DSpark |
Synthetic Put, Long |
SynPutL |
Emission Spread |
ESpread |
Synthetic Put, Short |
SynPutS |
Fence, Long |
FenceL |
Synthetic Underlying Short |
SynUS |
Fence, Short |
FenceS |
Time Spread |
TSpread |
Guts |
Guts |
Volatility Trade, Call |
CallVT |
Guts / Buy U |
Guts_UL |
Volatility Trade, Put |
PutVT |
Guts / Sell U |
Guts_US |
|
|
Inter-commodity spread |
InterComm |
|
|
Iron Butterfly / Buy U |
IBflyS_UL |
|
|
Iron Butterfly / Sell U |
IBflyS_US |
|
|
Iron Butterfly Gut, Long |
IBGutL |
|
|
Iron Butterfly Gut, Short |
IBGutS |
|
|
Iron Butterfly, Long |
IBflyL |
|
|
Iron Butterfly, Short |
IBflyS |
|
|
|
|
|
|
Note that exchange strategy names may be different from CQG names.
UDS market data
UDS data can be viewed on:
• Monitors
• Strategy Analysis ((options)
•Trading Applications, including Spreadsheet Trader
Until an order for a spread is sent and accepted by an exchange for trading, the market data shown on the DOM ladder is synthetic.
If the UDS has been defined by someone else and the spread is trading, then the market data shown is actual, not synthetic.
For example:
You create a Ratio Call spread for EP in the Strategy Analysis window.
You click the Trade button to view the market for this spread on DOMTrader.
The spread does not exist, and so synthetic market data is displayed on the DOMTrader.
You place an order for this spread. CQG sends the request over our gateway to the exchange.
The exchange accepts the order and creates the spread.
The market data goes from synthetic to actual.