Main Content

marketImpact

Estimate price movement due to order or trade

Description

mi = marketImpact(k,trade) returns the market impact cost for stocks using the Kissell Research Group (KRG) transaction cost analysis object k and trade data trade.

example

Examples

collapse all

Retrieve the market impact data from the KRG FTP site. Connect to the FTP site using the ftp function with a user name and password. Navigate to the MI_Parameters folder and retrieve the market impact data in the MI_Encrypted_Parameters.csv file. miData contains the encrypted market impact date, code, and parameters.

f = ftp('ftp.kissellresearch.com','username','pwd');
mget(f,'MI_Encrypted_Parameters.csv');

miData = readtable('MI_Encrypted_Parameters.csv','delimiter', ...
    ',','ReadRowNames',false,'ReadVariableNames',true);

Create a Kissell Research Group transaction cost analysis object k.

k = krg(miData);

Load the example data from the file KRGExampleData.mat, which is included with the Datafeed Toolbox™.

load KRGExampleData

The variable TradeData appears in the MATLAB® workspace.

TradeData contains these variables:

  • Stock symbol

  • Side

  • Number of shares

  • Size

  • Stock price

  • Average daily volume

  • Volatility

  • Percentage of volume

For a description of the example data, see Kissell Research Group Data Sets.

Estimates market-impact cost mi for each stock using the Kissell Research Group transaction cost analysis object k. Display the first three market-impact costs.

mi = marketImpact(k,TradeData);

mi(1:3)
ans =

          0.51
         96.86
         10.72

Market-impact costs display in basis points.

Input Arguments

collapse all

Transaction cost analysis, specified as a KRG object created using krg.

Trade data that describes the stocks in the transaction, specified as a table or structure. trade must contain these variable or field names.

Variable or Field NameDescription

Symbol

Stock symbol

Side

Buy or sell side

Shares

Number of shares in the transaction

Size

Shares in the transaction, which is a percentage of average daily trading volume

Price

Stock price

ADV

Average daily volume

Volatility

Volatility

POV

Percentage of volume

The trading cost varies with the trade strategy. marketImpact determines the trade strategy using these variables in this order:

  1. Percentage of volume

  2. Trade time

  3. Trade schedule

To change the trade strategy from percentage of volume to trade time, remove the variable POV in the table and add the variable TradeTime with trade time data. To use the trade schedule strategy, remove the variable TradeTime and add the TradeSchedule and VolumeProfile variables.

If you specify size in the trade data, marketImpact uses the Size variable. Otherwise, marketImpact uses the variables ADV and Shares to determine the size.

For example, to create trade data as a table, enter:

trade = table({'XYZ'},{'Buy'},9300,0.06,29.68,860000,0.27,0.17,...
    'VariableNames',{'Symbol' 'Side' 'Shares' 'Size' 'Price' ...
    'ADV' 'Volatility' 'POV'})

To create trade data as a structure, enter:

trade.Symbol = {'XYZ'};
trade.Side = {'Buy'};
trade.Shares = 9300;
trade.Size = 0.06;
trade.Price = 29.68;
trade.ADV = 860000;
trade.Volatility = 0.27;
trade.POV = 0.17;

These examples do not represent real market data.

Data Types: struct | table

Output Arguments

collapse all

Market-impact cost, returned as a vector. The vector values correspond to the market-impact costs in basis points for each stock in trade.

More About

collapse all

Market Impact

Market impact (MI) estimates the price movement in a stock caused by a particular trade or order.

Market-impact cost always causes adverse price movement. Buy orders push the stock price higher and sell orders push the stock price lower. Market-impact cost occurs for two reasons: liquidity demands of the traders or investor and the information content of the order. The liquidity demand of a buy order requires the buyer to provide the market a premium to attract additional sells into the market. The liquidity demand of a sell order causes the seller to offer the stock at a discount to attract additional buys into the market. The information content of the trade typically signals to the market that the stock is under- or overvalued. Buy orders tend to signal to the market that the stock is undervalued thus causing an increase in price to correct for the mispricing. Sell orders tend to signal to the market that the stock is overvalued thus causing a decrease in price to correct for the mispricing. Market-impact cost depends on order size, volatility, company characteristics, and prevailing market conditions over the trading horizon such as liquidity and intraday trading patterns.

MI for an order that executes instantaneously is equal to the I-Star trading cost model (I-Star). For details about I-Star, see iStar. When MI equals I-Star, the trading costs are high and prices move adversely. Therefore, investors trade passively to reduce their cost. Thus, they slice the order and trade over time such as minutes, hours, or possibly days. marketImpact incorporates the trade strategy of the investors into the cost calculation.

The MI model is

MI=b1I*POVa4+(1b1)I*.

I* is I-Star. POV is the percentage of market volume, or participation fraction, of the order. a4 and b1 are the model parameters.

Model ParameterDescription

a4

Percentage of volume rate shape

b1

Percentage of temporary market impact. Temporary impact is dependent upon the trading strategy. Temporary impact occurs because of the liquidity demands of the investor.

1b1

Percentage of permanent market impact. Permanent impact is the unavoidable impact cost. The order does not control the permanent impact. Permanent impact occurs because of the information content of the trade.

Tips

  • For details about the formula and calculations, contact the Kissell Research Group.

References

[1] Kissell, Robert. “A Practical Framework for Transaction Cost Analysis.” Journal of Trading. Vol. 3, Number 2, Summer 2008, pp. 29–37.

[2] Kissell, Robert. “Algorithmic Trading Strategies.” Ph.D. Thesis. Fordham University, May 2006.

[3] Kissell, Robert. “Creating Dynamic Pre-Trade Models: Beyond the Black Box.” Journal of Trading. Vol. 6, Number 4, Fall 2011, pp. 8–15.

[4] Kissell, Robert. “TCA in the Investment Process: An Overview.” Journal of Index Investing. Vol. 2, Number 1, Summer 2011, pp. 60–64.

[5] Kissell, Robert. The Science of Algorithmic Trading and Portfolio Management. Cambridge, MA: Elsevier/Academic Press, 2013.

[6] Kissell, Robert, and Morton Glantz. Optimal Trading Strategies. New York, NY: AMACOM, Inc., 2003.

Version History

Introduced in R2016a