Main Content

iStar

Estimate instantaneous trading cost for order

Description

example

itc = iStar(k,trade) returns the instantaneous trading cost of an order using the Kissell Research Group (KRG) transaction cost analysis object k and trade data trade. To estimate the instantaneous trading cost, iStar uses the I-Star trading cost model.

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.

Estimate instantaneous trading cost itc for each stock using the Kissell Research Group transaction cost analysis object k. Display the first three instantaneous trading costs.

itc = iStar(k,TradeData);

itc(1:3)
ans =

         33.48
        317.58
         62.94

Instantaneous trading 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. iStar 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, iStar uses the Size variable. Otherwise, iStar 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

Instantaneous trading cost, returned as a vector. The vector values correspond to the instantaneous trading cost in basis points for each stock in trade.

More About

collapse all

I-Star Trading Cost Model

The I-Star trading cost model (I-Star) estimates the instantaneous cost of an order. If a market participant immediately releases the entire order to the market for execution, they incur this cost. This cost also refers to the market participant cost accounting for 100% of the market volume over the execution period.

The I-Star model is

I*=a1(SharesADV)a2σa3.

Shares are the number of shares to trade. ADV is the average daily volume of the stock. σ is the price volatility. a1, a2, and a3 are the model parameters.

Model ParameterDescription

a1

Price sensitivity to order flow

a2

Order size shape

a3

Volatility shape

The general I-Star model that includes stock-specific factors is

I*=a1(SharesADV)a2σa3Pricea5Xkak.

Price is the stock price. a5 is the price shape model parameter. Xk is the stock-specific factor such as market capitalization, beta, P/E ratio, and Debt/Equity ratio. This formulation can include multiple stock-specific factors. ak is the corresponding shape parameter for the stock-specific factor Xk.

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