# priceAppreciation

Estimate trading cost due to natural price movement

## Syntax

``alpha = priceAppreciation(k,trade)``

## Description

example

````alpha = priceAppreciation(k,trade)` returns the trading cost due to the natural price movement of a stock, or price appreciation. `priceAppreciation` uses the Kissell Research Group (KRG) transaction cost object `k` and trade data `trade`.```

## 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:

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

• Number of shares

• Average daily volume

• Percentage of volume

• Trade time in percentage of the day

• Volatility

• Stock price

• Alpha estimate

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

Estimate alpha using the Kissell Research Group transaction cost analysis object `k`. Display the first three alphas.

```alpha = priceAppreciation(k,TradeData); alpha(1:3)```
```ans = -9.49 8.47 0.93```

Alphas 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

`Size`

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

`Shares`

Number of shares

`ADV`

Average daily volume

`POV`

Percentage of volume

`TradeTime`

Trade time in percentage of the day

`Volatility`

Volatility

`Price`

Stock price

`Alpha_bp`

Alpha estimate in basis points

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

1. Percentage of volume

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, `priceAppreciation` uses the `Size` variable. Otherwise, `priceAppreciation` uses the variables `ADV` and `Shares` to determine the size.

Example: ```trade = table(0.01,9300,860000,0.17,0.40,0.27,29.68,3,'VariableNames',{'Size' 'Shares' 'ADV' 'POV' 'TradeTime' 'Volatility' 'Price' 'Alpha_bp'})```

Example: `trade = struct('Size',0.01,'Shares',9300,'ADV',860000,'POV',0.17,'TradeTime',0.40,'Volatility',0.27,'Price',29.68,'Alpha_bp',3)`

These examples do not represent real market data.

Data Types: `struct` | `table`

## Output Arguments

collapse all

Alpha, returned as a vector. The units of alpha, or the natural price movement of the stock, are basis points.

collapse all

### Price Appreciation

Price appreciation (PA) estimates the trading cost due to the natural price movement of a stock.

The natural price movement commonly refers to expected return, alpha, price trend, drift, or momentum. This movement represents how the stock moves in a market without any uncertainty. PA represents the trading cost due to the underlying trading strategy. For example, buying passively in a rising market or selling passively in a falling market causes the fund to incur higher costs due to market movement. Conversely, buying in a falling market or selling in a rising market causes the fund to incur lower costs due to transacting at the better prices. PA is based on the alpha estimate you specify in the trade data. Funds and managers heavily guard their alpha estimates and expected returns. These expectations are highly proprietary and valued. This function lets you input alpha estimates directly into the model running on your desktop that prevents information leakage.

The PA model is represented as a linear trend. The PA model is

`$\text{PA}=0.5\cdot Alpha_bp\cdot \left(\frac{Shares}{ADV}\right)\cdot \left(\frac{1-POV}{POV}\right).$`

Shares are the number of shares to trade. ADV is the average daily volume of a stock. POV is the percent of market volume, or participation fraction, for the order. Alpha_bp is the alpha estimate for the day in basis points. A positive value for the alpha estimate indicates adverse price movement for the order. A negative value for the alpha estimate indicates favorable price movement.

## 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. “TCA in the Investment Process: An Overview.” Journal of Index Investing. Vol. 2, Number 1, Summer 2011, pp. 60–64.

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

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

Introduced in R2016a