Skip to content

Domain distillation

tpierrain edited this page Oct 9, 2014 · 8 revisions

The perfect place to keep an eye on what we learned during our SOR journey.


Our SOR will handle Stocks.

Types of SOR

  • We distinguish two kind of Smart Order Routing system:

  • Legacy SOR: receives orders to be executed as inputs (from human Traders, Order Management Systems, Hedging Systems), and splits them into several limit orders on various execution venues to ensure their best execution (via order execution strategies)

  • Modern/Adaptive SOR: receives investment intentions (e.g. I want to sell all my apple stocks, but only if the price is above ...) as inputs, and translates them into orders that will be then executed through the best possible execution strategies. A Modern/Adaptive SOR must also provides audit trail for every execution in order to prove best execution if requested by the financial regulators (see. the MIFID directive).

  • Somehow, a SOR is like a broker (giving the illusion of a single execution venue to the investor(s), whatever the number of used execution venues.

Various concepts that we must not confused

  1. Investor's intentions / objectives
  2. Execution constraints
  3. Order Execution modalities (e.g. Immediate or Cancel-IOC, Fill or Kill-FOK)
  4. Orders triggering conditions
  5. Execution strategy algorithms. E.g.
  • WAP: Weighted Average Price
  • T-WAP: execute one million every 5 minutes (cuz I want to execute 1M during the next 2 hours)
  • V-WAP: volume waited

On the investor-side (e.g. OMS, Hedge, ...)

We have

  • T/P (Take Profit) order
  • Stop Loss order
  • OCO (One Cancels the Other Order) : A combination of T/P order and a Stop loss order (but only one will be executed)
  • Entry order: A combination of an 'Entry' (limit) order and an OCO order. The OCO order will be executed only if the 'Entry' order is executed.
  • Entry Loop: An Entry Order which triggers the same Entry order when the previous has been executed

About Risk

Important: the SOR must follow the risk related constraints chosen by the investor (that must be asked by the broker). e.g. Will you only accept full or partial execution?


On the market-side

The various Markets aren't identical in their service offering, APIs, ... For now, Markets will be limited to:

  • Various Order types

  • Market orders (Immediate Or Cancel-IOC, Fill Or Kill-FOK)

  • Limit Orders (indicating the price), with various modalities such as Immediate Or Cancel-IOC, or - Good 'till Cancel-GTC

  • Variable Rounding rules for prices and quantities

  • Different Market opening hours

  • Other subtle differences in order lifecycle management (TBD)

A Limit Order is usually defined by:

  • A quantity
  • A price
  • The Instrument
  • The modalities (Running, ImmediateOrCancel?)

Important for SOR: the investor-side lifecycle must be different from the market-side lifecycles (retry and Co).

Orders Execution Strategies

The simplest ones:

  1. Simple Strategy: Targets one market only to execute related order(s)

  2. Sweep Strategy: Targets multiple markets to execute related order(s)