Introduction

As all investors know, actual trading can have market impact costs. To better assess the effect of putting on a trade and its cost to you, the Developer Platform has implemented a Market Impact model based on the work by Waelbroeck and Gomes.

After reading this article, you will be able to:

  1. Run a simulated set of trades and retrieve the market impact cost
  2. Add an optimization constraint based on maximum market impact cost
  3. Understand how Omega Point computes the impact of trades, where market impact costs are modeled based on our implementation of Waelbroeck and Gomes’ Market Response

1. Market Impact Simulation

The  query.model.simulation.marketImpact  node is used with a “delta position set” that runs these deltas as trades across a market impact model.

Query

{
  model(id:"modelID"){
    simulation(
      positionSet: {}
    ){
      marketImpact(
        # Trades input
        positionSetDelta:{
          date:"2019-06-30"
            equities:[
            {id:{ticker:"FB" mic:"XNAS"} economicExposure:-98000}
            {id:{ticker:"MSFT" mic:"XNAS"} economicExposure:-65071.86}
            {id:{ticker:"SPY" mic:"ARCX"} economicExposure:270325.28}
          ]
        }
        # Requests cost in terms of the model's base currency*
        scaleFormat:DEFAULT
      ){
        # Outputs the aggregate, total cost of all trades
        cost
        contributors{
          id
          # Individual security cost, i.e. its contribution to total cost
          cost
        }
      }
    }
  }
}

*The above query specifies to request the cost in the model’s base currency, but this request can be configured to instead return the cost as a percent of GMV, percent of modeled GMV, or a percent of reference equity.

2. Optimizing with Market Impact

The query.model.optimization(constraints.maxMarketImpactCost).marketImpact constraint & node superpowers optimizations in a way that both returns information on the cost of trades suggested by the optimizer, as well as, provides a new constraint type that can set the maximum market impact cost.

Query

{
  model (id: "modelID") {
    optimization(
      ...
      constraints:{
        maxMarketImpactCost: 150000
      }
    ){
      marketImpact(
        scaleFormat: DEFAULT
      ){
        cost
        contributors{
          id
          cost
        }
      }
      positionsDelta{
        ...
      }
    }
  }
}

3. Modeling Market Impact -- Methodology

The Market Impact model is based on Waelbroeck and Gomes’ article, Is Market Impact a Measure of the Information Value of Trades?, and expands on other sigma-root-liquidity models.

Omega Point's model employs the following methodology:

Where impact(Q) is the affect on a particular security's price and is a unitless number. This value is used to calculate the trade contributor_cost, which is the value returned by the developer platform under marketImpact.contributors.cost, where

contributor_cost = impact(Q) X Q

This security cost can be described as a percent of reference equity by changing the marketImpact input

scaleFormat: DEFAULT

to any of the following inputs:

PERCENT_GMV, PERCENT_MODELED_GMV, PERCENT_EQUITY_GMV, PERCENT_EQUITY_MODELED_GMV


Finally, the total market impact cost is simply

cost = ∑contributor_cost

The optimization constraint, maxMarketImpactCost, constrains the optimizer based on the total (aggregate) cost of all trades.

Did this answer your question?