Main Content


Estimate price movement due to order or trade



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.


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('','username','pwd');

miData = readtable('MI_Encrypted_Parameters.csv','delimiter', ...

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);

ans =


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


Stock symbol


Buy or sell side


Number of shares in the transaction


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


Stock price


Average daily volume




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


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


Percentage of volume rate shape


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


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.


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


[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