Musings

A random collection

Archive for the ‘exchanges’ Category

FIN: CME FIX/FAST

Configuration
Configuration XML file groups related products traded on the exchange. Market Data for related products is disseminated over a channel. Config file contains connections for each channel (a set of IP addresses) – historical replay(TCP), incremental(Multicast UDP), instrument replay(Multicast UDP), snapshot(Multicast UDP).

The syntax of a configuration file is:

configXML := element configuration(environmentAttr,updatedAttr, channel*)
  environmentAttr := attrib environment(Certification, Production, New Release Certification, AutoCert+, AutoCert+ NR)
  updatedAttr: = attrib updated(TIMESTAMP)

channel := element channel(channelIdAttr, labelAttr, products, connections)
  channelIdAttr := attrib id(NUM)
  labelAttr := attrib label(STRING)
  products := element products(product*)
  connections := element connections(connection)

product := element product(productCodeAttr, group)
  productCodeAttr := attrib code(STRING[2])
  groupCodeAttr := attrib code(STRING[2])
  subChanIdText := NUM
  group := element group(groupCodeAttr, subchan)
  subchan := element subchannel(subChanIdText)

connection := element connection(connIdAttr, type, protocol, ip?, host-ip+, port, feed)
  connIdAttr := attrib id(STRING)
  type := element type(feedtypeAttr, typeText)
    feedtypeAttr := attrib feed-type({H,I,N,S})
    typeText := {Historical Replay, Incremental, Instrument Replay, Snapshot}
  protocol := element protocol(protocolNameText)
    protocolNameText := {TCP/IP, UDP/IP}
  ip := element ip(addressText)
  host-ip := element host-ip(addressText)
    addressText := IPAddress
  port := element port(portNumText)
    portNum := NUM
  feed := element feed(feedText)
    feedText := {A,B}

Template

Written by curious

July 1, 2010 at 9:44 am

Posted in CME

Protected: TECH: QuickFAST

This content is password protected. To view it please enter your password below:

Written by curious

June 26, 2010 at 9:20 pm

Posted in exchanges

FIN: An Order

Attributes of an Order

  1. Instrument being traded (Future, Option)
  2. (Buy, Bid, Ask) Or (Sell, Offer)
  3. Order Type (Market, Limit, Market Limit, Market with Protection, Stop Limit, Stop with Protection)
  4. Qualifiers (Day, GTC, GTD, FAK, FOK)
  5. Quantity
  6. Display Quantity
  7. Minimum Quantity
  8. Price

Instrument

  1. Future/Option
  2. Underlying
  3. Strike
  4. Expiry Month, Year
    • F = January
    • G = February
    • H = March
    • J = April
    • K = May
    • M = June
    • N = July
    • Q = Aug
    • U = September
    • V = October
    • X = November
    • Z = December

Type of Orders

  1. Market Orders

    • Executed at whatever best price available in the market. It is possible that partial order is filled at one price and the remaining quantities are filled at another price.
  2. Limit Orders

    • Max purchase price (buyer)/min sale price (seller). A buy order will be executed at or below the limit price. Sell orders are executed at or above the limit price.
    • Partial order fills are possible. Any portion that gets matched is immediately executed.
    • Limit order remain on the book until: executed/canceled/expires.
  3. Market-Limit Orders

    • Starts executing at the best price in the market
    • If the order can only be filled partially, the remaining order becomes a “limit order” at that price.
  4. Market Orders with Protection

    • Filled within a pre-defined range of prices (protected range).
    • Protected range is current best price plus (or minus) “protection points” for a buy (or sell) order.
  5. Stop-limit Orders (Futures only)
  6. Stop Orders with Protection (Futures only)
  7. Cabinet Orders (Options only)
  8. Stop Spike Logic – prevent cascading stop orders from causing the market to trade outside of predefined values

Order Qualifiers

  1. Day [DEFAULT] – active only that trading day, automatically expire at the end of the day
  2. Good-Till-Canceled (GTC) – remain active until a) completely executed, b) canceled or c) when the instrument expires
  3. Good-Till-Date (GTD) – remain active until a) completely executed, b) canceled, c) when the instrument expires or d) expire at the specified date
  4. Fill-and-Kill (FAK) – Executed immediately against orders in the market (resting orders). If order is not filled completely, remaining balance is canceled. Can specify a minimum quantity, if not met then the order is canceled.
  5. Fill-or-Kill (FOK) – Fill immediately a) Completely or b) Nothing. Same as FAK (Min = Complete Order Qty)

Display Quantity/Maximum Show – control the amount that is shown to the market. May place an order of Quantity 1000/Display Quantity = 100, then only 1 lot of 100 is put in the market, when these 100 contracts are filled, next 100 will be released in the market. Minimum Quantity – entire order quantity is displayed in the market but will be executed immediately only if at least the minimum quantity can be filled. If the minimum quantity can not be filled, then the order is canceled immediately.

Type of contracts

  1. Futures – you pay nothing right now, but you are obligated to execute the trade on an underlying at the specified strike price, strike date
  2. (Outright) Options – you pay a premium and get a right to execute the trade if you choose to do so
  3. Option Spreads – a combination of multiple options. The spread legs and ratios of quantities are defined for an option spread..

Futures

(Outright) Options

Contract Name Syntax:

<Product Code> <Contract Month, Year> <Call or Put> <Strike Price>

Example: “GEH9 C9800” is “March 2009 Eurodollar Option 9800 Call”

Option Spreads

A spread is an instrument that consists of multiple futures or options contracts that are executed simultaneously when the spread is executed. On the other hand Outrights consist of a single future or option contract. Spread can be an “exchange recognized” spread type or a “user defined” spread. Various types of Option Spreads:

  1. Calendar (Horizontal (HO)/Diagonal (DG))
    • Call Horizontal (Buy 1 Call, Sell 1 Call at different expiries)
      • Sell 1xCall @ K1 Expiry T1
      • Buy 1xCall @ K1 Expiry T2
    • Put Horizontal
      • Sell 1xPut @ K1 Expiry T1
      • Buy 1xPut @ K1 Expiry T2
    • Call Diagonal (Different Strike, Different Expiry)
      • Buy 1xCall @ K1 Expiry T1
      • Sell 1xCall @ K2 Expiry T2
    • Put Diagonal
      • Buy 1xPut @ K1 Expiry T1
      • Sell 1xPut @ K2 Expiry T2
  2. Straddle (ST) (Buy 1 Call, Buy 1 Put at same strike, expiry)
    • Buy 1xCall @ K1 Expiry T1
    • Buy 1xPut @ K1 Expiry T1
  3. Strangle (SG) (Buy Call and Put for same Expiry but different Strikes)
    • Buy 1xCall @ K1 Expiry T1
    • Buy 1xPut @ K2 Expiry T1
  4. Vertical (VT)
    • Call
      • Buy 1xCall @ K1 Expiry T1
      • Sell 1xCall @K2 Expiry T1
    • Put
      • Buy 1xPut @ K1 Expiry T1
      • Sell 1xPut @ K2 Expiry T1
  5. Box (BX)
  6. Butterfly (BO)
  7. Conditional Curve (CC)
  8. Condor (CO)
  9. Double (DB)
  10. Horizontal Straddle (HS)
  11. Iron Condor (IC)
  12. Ratio 1×2 (12), 1×3 (13), 2×3 (23)
  13. Strip (SR)
  14. Risk Reversal (RR)
  15. Straddle Strips (SS)
  16. Xmas Tree (XT)
  17. 3-Way (3W)
  18. Iron Butterfly (IB)
  19. Jelly Roll (JR)
  20. Guts (GT)
  21. 3-way: Straddle v/Call (3C), Straddle v/Put (3P)

Future Spreads

FIX Messaging

Exchange/Market

Market States

  1. Market Enabled/Pre-Opening
  2. Pre-Opening/No-Cancel
  3. Continuous Trading
  4. Surveillance Intervention
  5. Maintenance Period

Market Makers

Order Types

  1. Mass Quote
  2. Quote Modify
  3. Quote Cancel
  4. Request for Quote
  5. Lead Market Maker Matching

FIX Messages

  1. Logon
  2. Heartbeat
  3. Test Request
  4. Resend Request
  5. Sequence Reset
  6. Logout
  7. Security Definition Request
  8. Security Definition Message
  9. New Order Single
  10. Execution Report(Confirmation/Ack)
  11. Execution Report(Fill Notice)
  12. Order Cancel/Replace Request (Modify)
  13. Order Cancel Request
  14. Order Cancel Reject
  15. Order Status Request
  16. Quote Request
  17. Quote Acknowledgment
  18. Quote Cancel
  19. Quote Cancel Acknowledgment

Message flows

Logon

Logon

Trader -> Exchange: Logon
note right of Exchange
    Good Logon Request
end note
Exchange -> Trader: Logon Confirmation
Exchange-> Trader: Test Reqeust
Trader -> Exchange: Heartbeat

Failed login

Trader -> Exchange: Logon
note right of Exchange
    Failed login
end note
Exchange -> Trader: Logout
destroy Exchange
A New Order

An Order

Trader -> Exchange: NewSingleOrder
Exchange -> Trader: ExecutionReport (Order Confirmation)
note over Exchange: a bit later
Exchange-> Trader: ExecutionReport(Partial Fill)
note over Trader: sometime later send a Modify
Trader -> Exchange: Order Cancel/Replace Request
Exchange -> Trader: ExecutionReport (Order Cancel/Replace Confirmation)
note over Exchange: a bit later
Exchange -> Trader: ExecutionReport (Fill)

CME Globex Platform

Runs markets for:

  1. CME
  2. CBOT
  3. NYMEX
  4. DME (Dubai)
  5. MGEX (Minneapolis Grain)
  6. KCBT (Kansas City Board of Trade)

Written by curious

April 14, 2010 at 3:03 pm

Posted in CME