Skip to main content
No. of 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)
Print the post Back To Top
No. of Recommendations: 2
I'm a little reluctant to post this (due to potential trade crowding on low volume screens) however (in the spirit of sharing) there is *potentially* one way to get better slippage (and so friction at least for moderate volume stocks) & that's through the use of 'market on close' transactions at a low transaction price broker (that offers this trade type of course). Using MOC transactions at IBKR my *maximum* 2018-2019 slippage for real-money transactions is 0.15% (rounded - a fast moving low volume VG-Horse transaction) & the average range is typically 0.01%-0.04% for both buys & sells including fees (the slippage is the fee generally - higher in percentage terms for low volume stocks). Excluding VG-Horse (a variant of the original with a minimum $750k daily dollar average) the other screens with much lower AT's the typical range drops to 0.01%-0.02% & the maximum slippage magnitude is -0.11% (that is in my favor - otherwise the next highest in magnitude is 0.03%).

Of course - if feasible - the use of this transaction type will generate higher 'fees' than say the annual fee at foliofn/FolioInvesting but lower slippage & friction overall. If one is nervous about the use of MOC's the 'limit on close' (LOC) transaction type is available - however the experience with MOC's has been so good that I've not felt the need to use the LOC transaction-type in 2019 at all. The biggest issue is of course potential trade crowding so YMMV depending upon the screens used. If there's interest I'd test with caution - at least initially.

Note: The non-VG-Horse transactions are for a moderately sized MI account using what are bespoke variations of typically 'unpopular' high daily dollar volume screens. Low-AT (circa 2-3 annual transactions) or Annual screens have been used since the use of MOC transaction has been in-place - with the exception of 10-day VG-Horse (a very high turnover screen) for one year. Lastly ... one may choose to eat the higher slippage/friction for ease-of-use for very high turnover screens (say by having an optimized process at FolioInvesting), but that'd be a business decision based on the overall process/results.
Print the post Back To Top
No. of Recommendations: 1
Lastly - as a result of the above experience I typically use a friction estimate of 0.1% for the screens I like to use. That is circa 4-5x worse than the total experience to date (average 0.025% friction including VG-horse for the MOC/LOC transaction type), but also lower than those presented in the original post. And - of course - many thanks to borisnand whose original posting on this lead to the slippage measurement that allowed the MOC testing.

Note: borisnand's numbers are more robust overall as they are measured across a much larger sample size - especially as the screens used in the real money measurement typically don't transact that often and are fairly large stocks overall (with the exception of the VG-Horse numbers perhaps). Total sample size of any numbers posted is circa 500+ transactions and so use any numbers/learnings I've posted with caution.
Print the post Back To Top
No. of Recommendations: 0
I've thought for years about trying this, but haven't.
One thing I've wondered about is how it works for those occasional thinly traded stocks that may not have any open order volume at close time.

Mark
Print the post Back To Top
No. of Recommendations: 0
One thing I've wondered about is how it works for those occasional thinly traded stocks that may not have any open order volume at close time.
My understanding - which may be incorrect - is that the MOC transaction is with/via the market maker. The orders need to be entered prior to around a 1/4 to 1/2 hour ( https://www.investopedia.com/terms/m/marketonclose.asp ) before the close of day & the market maker manages the trade. Which probably accounts for some of the (poorer) slippage experienced with the VG-Horse variant.

I'd be careful with very low volume stocks, but that's an issue generally.
Print the post Back To Top
No. of Recommendations: 0
My understanding - which may be incorrect - is that the MOC transaction is with/via the market maker.

Is there such a person as a market-maker anymore? Or is this function now done by computers? A market maker was required to buy if no one else wanted to, and to sell if no one else wanted to. There were probably limits as to how far from the last traded price the market-maker could buy or sell (and I do not know them). The market maker normally made a profit in the long term, but could face disaster too. Is that still true of computers?
Print the post Back To Top
No. of Recommendations: 8
platykurtic,

How are you defining slippage? If you are defining it as your trade price versus the closing price, then of course your "slippage" on MOC trades is going to be tiny (and I don't know why it wouldn't always be zero). With MOC orders, you aren't eliminating your trade's price impact, you're simply hiding it from yourself. When you submit a MOC order to buy a thinly traded stock, the closing price will be higher than it would have been had you not placed the order, and that difference is your true slippage. Unfortunately there's no way to know what that slippage is.

If you're defining slippage in terms of your trade price versus the last trade price as of your order entry time, then that would be a more meaningful approximation of slippage, if averaged over a large enough number of trades. However, it would be a lot more work and require good tick data. This obviously isn't how you're defining your slippage, because your maximum for the year by this definition would be orders of magnitude larger than what you've quoted.

Robbie Geary
Print the post Back To Top
No. of Recommendations: 3
Getting into a thinly traded stock is one thing.

It's the getting _out_ that seems to me to be the greater problem.

After a few such problems, I stopped trying to invest in low volume stocks.
Print the post Back To Top
No. of Recommendations: 0
If you are staying in the market and engaged in mechanical trading you also have to figure in your cost of missing a trade; if you are buying enough stocks and the strategy is good you are better off forgetting limit orders that risk missing a trade.

As far as liquidity, I don't have links handy but last I looked anything that involves you buying more than 1% of average daily trading volume is too large a price impact, and anything that trades less than $100,000 will have too large a transaction cost to justify inclusion and should be excluded from backtested strategies up front.

And friction on larger stocks is rarely going to be .4% any longer.
Print the post Back To Top
No. of Recommendations: 7
As far as liquidity, I don't have links handy but last I looked anything that involves you buying more than 1% of average daily trading volume is too large a price impact, and anything that trades less than $100,000 will have too large a transaction cost to justify inclusion and should be excluded from backtested strategies up front.

For my liquidity checks, I look for MINIMUM daily trading volume over a period, not AVERAGE over a period.

I've seen too many cases (especially while investigating some of the AAII screen candidates) where a lightly traded stock candidate picks up a lot of volume over a week or two, even though there are days within the month before and the month after where there are actually no shares traded.

I don't really see much value for AVERAGE trading volume.
Print the post Back To Top
No. of Recommendations: 2
How are you defining slippage? If you are defining it as your trade price versus the closing price, then of course your "slippage" on MOC trades is going to be tiny (and I don't know why it wouldn't always be zero). With MOC orders, you aren't eliminating your trade's price impact, you're simply hiding it from yourself. When you submit a MOC order to buy a thinly traded stock, the closing price will be higher than it would have been had you not placed the order, and that difference is your true slippage. Unfortunately there's no way to know what that slippage is.
I agree - hence all the proviso's etc. in the two posts setting out the MOC (or LOC) option. More-or-less slippage is being calculated as 'price paid including fees' vs. 'what the screen uses/calculates' (Price on close). If that's minimized then (moving forward) what the GTR1 (or similar) calculate as performance of that transactions round trip will closely approximate the real world experience. It also appears to be a similar definition to the OP.

Excessive volume put through at the close will shift the closing price. But I'd argue that if one is placing significant volumes through thinly traded stocks then perhaps it's the screen/account size combo that's the issue - not the trading near/at the close per-se.

But of course you know that. If a screen's out-performance is high enough then perhaps it's worth the hassle of attempting to transact thinly traded stock. But that's a huge *if*. One can get a pretty nice (almost) 12% CAGR by transacting RSP/SPY with the BCC with no liquidity concerns for almost any account size (or by utilizing futures).
Print the post Back To Top
No. of Recommendations: 0
Probably not much help, but the Fidelity screener Volume (90 Day Avg) distribution is as follows

ETP Type                              2158  
ETFs

Leveraged / Inverse 1966
Not Leveraged or Inverse Stock Screener

Volume (90 Day Avg) 1862 Volume (90 Day Avg) 6157

Very High 377 out of 450 Very High 1073
(169.11K and above) (1.13M and above)

High 387 out of 439 High 1059
(33.60K — 169.11K) (392.97K — 1.13M)

Medium 401 out of 441 Medium 1064
(9.91K — 33.60K) (150.47K — 392.97K)

Low 387 out of 441 Low 1105
(2.26K — 9.91K) (35.51K — 150.47K)

Very Low 340 out of 426 Very Low
(0 — 2.26K) (0 — 35.51K) 1255

Market Median: 18.74K Market Median: 225.18K


GD_
Print the post Back To Top
No. of Recommendations: 2
I think I lose about 1% a year to slippage. Mostly the bid/ask spread during the day. Moving to MOC orders might save me some of that 1%. I would still want to compare my actual trade prices to some reference. Maybe compare my MOC trades to the opening price and the next day's opening price.
Print the post Back To Top
No. of Recommendations: 0
I think I lose about 1% a year to slippage. Mostly the bid/ask spread during the day. Moving to MOC orders might save me some of that 1%. I would still want to compare my actual trade prices to some reference. Maybe compare my MOC trades to the opening price and the next day's opening price.

if you are trading every 21 days and have 50% turnover in a screen, then you have 0.15% slippage on a trade. For a $10 stock, that is 1.5c between the bid and the ask and ignoring fees and commissions. Pretty good fills.



Craig
Print the post Back To Top
No. of Recommendations: 0
I think I lose about 1% a year to slippage. Mostly the bid/ask spread during the day. Moving to MOC orders might save me some of that 1%.

I think that's an illusion.

I would still want to compare my actual trade prices to some reference.

You could try to compare your MOC price to the last trade price a moment before the market closed.

Elan
Print the post Back To Top
No. of Recommendations: 0
"I think I lose about 1% a year to slippage. Mostly the bid/ask spread during the day. Moving to MOC orders might save me some of that 1%."

Elan: I think that's an illusion.


I agree with Elan here.

Just because the bid/ask spread collapses at the close doesn't mean that you saved any money. If you buy at MOC your fill is more likely to be at the just-before-this-moment ask and not at the midpoint of the just-before-this-moment ask and just-before-this-moment bid.

Just because you don't see the spread doesn't mean it disappeared.
There's no way of knowing.

MOC just guarantees that your price will be the same as the published close price of that date. Convenient for backtests, but that's all.
Print the post Back To Top
No. of Recommendations: 1
I agree with Elan here.

That's got to be a sign of something. :-)

-R
Print the post Back To Top
No. of Recommendations: 9
If you're defining slippage in terms of your trade price versus the last trade price as of your order entry time, then that would be a more meaningful approximation of slippage, if averaged over a large enough number of trade

I tracked this for about six months when I was first running a very short hold MI screen in my fund using MOC orders exclusively.
Three day holds, very hugh turnover.
The time of the snapshot was not absolutely consistent, but the results were pretty steady.
The average was almost exactly no price difference, for stock of average (not minimum) daily dollar volume over $400k.
We were prepared to buy up to 2.5% of ADV, up to 4% depending.
There was a steady trickle of outliers, but as many were pleasant surprises as bad ones.
My conclusion was that, for this liquidity threshold, it was very reliable provided the portfolio is diversified enough that one bum execution is not material.
For that matter, the divergences from expected price were smaller than for the hand done trades with limits.

I would not call the result bullet proof, but it was a good experience.
At least a small real world study is usually better than no study, a guess, or an anecdote.

Jim
Print the post Back To Top
No. of Recommendations: 1
I think I lose about 1% a year to slippage. Mostly the bid/ask spread during the day.

One of the system designers on P123 had claimed a negative slippage when actually trading several of his methods, because he often placed limit orders AFTER the open.

When it comes right down to it, the most basic definition of slippage/friction is really just the ability to trade at the opening price.
Print the post Back To Top
No. of Recommendations: 3
I think I lose about 1% a year to slippage. Mostly the bid/ask spread during the day. Moving to MOC orders might save me some of that 1%.

I think that's an illusion.

Frankly this has been an interesting thread, and (from the perspective of this MI practitioner) it could not have almost gone better. The idea has been shared (and so sharing back to the community as my current screens, process etc. have been built off ideas shared here by others), provide some experience & the numerical outcome & am unlikely to receive much future competition. But - here's why I think MOC transactions, for moderate to high volume stocks - may work.

Think through a typical transaction day. My experience is that there may be from 2-10 say transactions (for example). To transact 2-10 transactions at similar or better to the market closing price one would need to (and isn't the average market direction slightly upwards?) ...

a) Be extremely good at consistently predicting daily market movement trends per stock and use that ability to transact throughout the day at better than the close price. I tried this for a number years, and while others may succeed at this, it was a failure for me (I could pull some numbers out of the archive with a little work, but frankly I'm not interested in doing so - the result was poor). It required frequent or constant work sitting in front of the computer - which wasn't always possible at the time. Perhaps someone has great experience with one or more computerized transaction engines, or some other method of producing great results and if so I'd love to hear it (even in broad terms).

b) Use FolioInvesting or similar to conduct the trading within other windows. Not possible for me (outside the US) however the reported experience of others is that it's workable with slippage (against the closing price) in-line with the OP.

c) Transact at close to closing time. Tried that. Transacting up to 10 stocks - some of which may be relatively low volume - in the 5-10 minute window prior to close resulted in an all up 0.19% slippage vs. the close price. Not bad, however the maximum range of the various trades was -2.95% to +2.35% with a standard deviation of 0.54% (all numbers from 2016 MI transactions although that year was pretty typical as eyeballed against prior years summary data). The experience was pretty stressful as following and executing almost any number of trades in that small window was hectic. If a stock was moving quickly, to get a good execution was tricky as the Bid-Ask spread was frequently wider, or limits wouldn't fill which meant transactions the next day (more work with potentially better or worse prices though). And at times the stock would run away in either direction (even in the final 10 minutes) & the eventual fill was poor (vs. the original trade day's close), however at times it was better (and so the average wasn't *that* bad - see earlier in c)).

Leaving ... d) MOC transactions. Numbers across two-three years (2017, 2018 & 2019) are in the post far above, however the measured average slippage vs. the close price is 7x lower than in c) with less effort & stress. Maximum slippage vs. the close was *less* than c)'s average as would be expected. For my screens & as a process the result & experience has been far better than a)-c) above.

A couple of notes: Slippage is price paid / received including all fees vs. final closing price for the screen. Lag included. Screen minimum volume/account sizing is greater in d) and gets smaller as one moves from c) to a). At minimum the stocks transacted in c) & d) have >$750k daily dollar average, but can have far larger transaction volumes (and so lowish bid-ask spreads). Transaction entry timing is inconsistent because of 'life' and so d) represents for me an easy way to get a 'very close to market close' price (that the backtester uses) with minimal effort. Lastly ... if one reads the fine print a MOC order is not necessarily strictly the close price - there is some limited flex in the pricing. It also frequently occurs at say around 4:04pm after the final price is known and quoted average number include fees.

And so is d) an illusion? Possibly but the experience shown is that it an easy-to-live-with illusion or an illusion that measurement has shown to be effective. Will it work for you? Dunno - it could depend on the screens - the best advice I could give is to test it on your highest volume stocks / screens first & rigorously measure the outcome if you are interested. Is it the best way to transact? I'm not sure, but it has been the best experience for me so far, and if there are other ways to consistently provide better slippage vs. the close I'd love to hear it.

(Ironically ... in the interests of transparency ... I don't use MOC trades always. Sometimes/rarely it's 'clear' that transacting earlier in the day will result in a better fill and so I do so. So total slippage vs. the close for my MI account in 2017, 2018 & YTD 2019 is *negative* in real dollar terms. Does this weaken the argument - yes - but the negative result is built on low average slippage with a few large differences in my favor. Essentially a few great a)-type transactions more than cover the annual fees using MOC d)-type transactions almost always. I ensure the results are always measured either way.)
Print the post Back To Top
No. of Recommendations: 0
What would be the expectation using MOO orders? Any great differences to MOC?
Print the post Back To Top
No. of Recommendations: 4
platykurtic:
A couple of notes: Slippage is price paid / received including all fees vs. final closing price for the screen. Lag included.

IMO, this is an invalid definition of slippage. I recognize that there are many valid ways of estimating it, but if there is one rule that should be absolute, it's that the benchmark prices should be taken from before you entered your trades, not after. Otherwise, your benchmark prices are biased in your favor because they reflect the impact of your trades.

While your MOC order remains "dormant", in a sense, until the market closes, it is not invisible during that time (at least not to the market makers). Once the MOC order submission deadline passes, the market makers know your supply or demand are guaranteed, it is taken into account during the NYSE Closing Auction/NASDAQ Closing Cross (which is why the submission deadlines exist). While your trade gets reported after the close, it actually impacted the close--more so than a regular trade placed minutes before the close.

If it's too much trouble to take a real-time snapshot of all the stocks you're about to trade right before you trade them, then I'd suggest using the previous day's closing prices as your benchmark. Deviations from those prices will be huge, but on average, this will at least provide an unbiased estimate of your total implementation shortfall, which after all, is the only "friction" we really care about. Of course this would be a measurement of friction versus the zero-lag GTR1 backtests, not the one-day lag backtests that you are probably using. But once you have a good estimate of your friction versus the previous day's close, then you can start running zero-lag backtests with the unbiased friction value applied.

As it is now, your own trading of screens at one-day lag is impacting the forward tests of the screens at one-day lag in a manner that wasn't present in the backtest, so strictly speaking, those backtests are no longer relevant anyway. By definition, you can't impact the zero-lag forward tests, so the zero-lag forward tests remain consistent with the zero-lag backtests.

If you're interested in re-doing your friction estimates using previous-day closing prices, send me a list of the point-in-time ticker symbols that you traded (many of which will no longer exist) and I can probably get you the required data without much trouble. I also have same-day 15:30 and 15:45 closing prices handy on all stocks (back to 1990) as well.

It may well be that MOC orders produce less implementation shortfall than manually and frantically chasing thinly-trade stocks in the last fifteen minutes of the trading session, but your experiments provide no support for that conclusion because the same-day closing prices you've been using as your benchmarks have been contaminated by your own trades (whether you used MOC orders or not).

Robbie Geary
Print the post Back To Top
No. of Recommendations: 2
Slippage is price paid / received including all fees vs. final closing price for the screen. Lag included.
...
IMO, this is an invalid definition of slippage. I recognize that there are many valid ways of estimating it,
but if there is one rule that should be absolute, it's that the benchmark prices should be taken from before you entered your trades, not after.


Slippage is a slippery thing.

The thread caused me to ponder even more, and I concluded that for me the most useful definition is
the difference between what price you pay and what price you thought you'd pay when you decided to buy the stock.
I like value screens, which frequently include things like earnings yields.
Sort orders can therefore be critically dependent on the stock price at planning time, so that's the slippage that matters.
Sometimes you end up buying a stock at a price that is not only somewhat worse than what you figured on,
but at a price that would have made it not a valid pick in the first place.

So, yes, any measure of slippage should be based on the price snapshot before you trade.
But for me, I use as baseline the price snapshot that was used in my screening (not long before trading, for me), not a price snapshot after picks are settled and just before trading begins.
That is the gap that I tracked when I did my study mentioned earlier in the thread.
In general MOC orders seemed fine for me, for stocks with enough volume.
Not the volume appropriate to my position size, but enough that there were (I hoped) almost certainly multiple participants in the closing auction to keep the process "fair".

Jim
Print the post Back To Top
No. of Recommendations: 1
Mungo: for me the most useful definition is
the difference between what price you pay and what price you thought you'd pay when you decided to buy the stock.


For one running MI screens slippage is the difference between the previous day’s closing price which all
the screens factors used in their evaluation process and the price you pay the next trading day.

Running a simple RS100 weekly screen hold 10 on GTR1
Trade on next day opening price assuming 0.25% slippage CAGR 38.59%
Trade on next day closing price assuming 0.25% slippage CAGR 26.85%

Similar VGHorse Results:
Trade on next day opening price assuming 0.25% slippage CAGR 12.37%
Trade on next day closing price assuming 0.25% slippage CAGR 11.70%

Trade at the opening or as close as possible to the new information presented by the screen.

RAM
Print the post Back To Top
No. of Recommendations: 1
...slippage is the difference between the previous day’s closing price which all the screens factors used in their evaluation process ...

Beware of overgeneralizations.
Perhaps that's true for how your work, but many of my screens don't use that assumption for the backtest, nor are they traded that way.

For many types of screens the delay doesn't matter a whit.
For others, it's a big deal.
There is no good reason to try to achieve a precise full trading day of lag purely to make sure reality matches your backtest, when there is no need for a full day of lag in either instance.

For me, the only slippage that matters is the average gap between the actual trade price and the price I thought I could trade at when I decided on the trade.

Jim
Print the post Back To Top
No. of Recommendations: 2
...For me, the only slippage that matters is the average gap between the actual trade price and the price I thought I could trade at when I decided on the trade.

My measure is related: the slippage that matters to me is the gap between the actual CAGR for a given period and the back-tested CAGR for the same period. This would include the difference in the prices above, as well as any fees.

Over the last eight years, that's been ~1% per year in one account and ~6% per year in another. That's using monthly trading, thus boiling down to 0.08% and 0.49% per month, respectively.

-Jim
Print the post Back To Top
No. of Recommendations: 1
...My measure is related: the slippage that matters to me is the gap between the actual CAGR for a given period and the back-tested CAGR for the same period. This would include the difference in the prices above, as well as any fees.

Hmm. I guess this might more accurately be termed "tracking error". Nonetheless, that's really what I care about.

-Jim
Print the post Back To Top