Author: borisnand
Subject: friction estimate
Date: 11/16/2019
Recommendations: 13


Friction in a backtest that uses closing prices is an adjustment between the actual closing price and the simulated backtest trade price. Friction is the round-trip trading cost. For example: sell stockA, buy stockB, both stocks close at $20 on the trade date, with 2% friction. Backtest sell price for stockA is $19.80. Backtest buy price for stockB is $20.20.

I did a friction estimate about 3 years ago at https://boards.fool.com/friction-estimate-32353417.aspx
Using 0.4% friction in backtests when using a dollar volume > 1,000,000 still looks good.
These trades were all done on folio using window trades.

I compared my trade execution price to the average of the opening and closing prices. Slippage using opening prices is highly correlated with slippage using closing prices. The correlation is 0.96 with my trade data. The conclusion using either is that lower dollar volume stocks have higher friction.

Slippage from 3 years ago:

dv10_from to Count Slippage Friction
0 250,000 70 0.71% 1.59%
250,000 500,000 89 0.46% 1.08%
500,000 1,000,000 333 0.40% 0.93%
1,000,000 2,500,000 721 0.23% 0.58%
2,500,000 max 2715 0.06% 0.23%
total 3928 0.14% 0.40%

Updated Slippage looks about the same:

dv10_from to Count Slippage Friction
0 250,000 126 0.65% 1.39%
250,000 500,000 312 0.51% 1.11%
500,000 1,000,000 1762 0.31% 0.73%
1,000,000 2,500,000 4138 0.16% 0.42%
2,500,000 max 17622 0.01% 0.12%
total 23960 0.07% 0.24%

dv10 is dollar volume averaged over 10 days
Count is number of my trades
Price is my trade execution price
Slippage is the average slippage for buys and sales
slippage for buys is (Price minus average(open,close)) / Price
slippage for sales is (average(open,close) minus Price) / Price
Friction = 2 x Slippage + 0.1%

Broken down in a slightly different way:
dv10_from to Count Slippage Friction
0 500,000 438 0.55% 1.19%
500,000 1,000,000 1762 0.31% 0.73%
1,000,000 2,000,000 2984 0.17% 0.44%
2,000,000 4,000,000 3576 0.13% 0.36%
4,000,000 8,000,000 3154 0.02% 0.14%
8,000,000 16,000,000 2961 0.04% 0.18%
16,000,000 max 9085 -0.04% 0.03%
total 23960 0.07% 0.24%

The total listed above weights all trades the same. Some trades are small rebalancing, and some are large new positions. Weighing my trades by trade size (dollars) produces an average Slippage of 0.12%. Slightly higher but close to the 0.07% total above.

Most of my trades were less than 0.01% of the daily volume. Breakdown of slippage by percent of daily volume shows that friction increases with percent of daily volume:

pctVolume_from to Count Slippage
0.00% 0.01% 18133 0.07%
0.01% 0.02% 1787 0.15%
0.02% 0.04% 1609 0.21%
0.04% 0.08% 1119 0.32%
0.08% 0.10% 289 0.34%
0.10% 0.13% 285 0.14%
0.13% 0.25% 425 0.34%
0.25% 0.50% 173 0.21%
0.50% max 140 0.68%

pctVolume is (my trade dollar amount / ticker dollar volume that day)