Slippage and low liquidity stocks

Recently, I have been working on a strategy that trades stocks with low dollar turnover. The initial performance was attractive and I was liking the strategy. But there were two issues that I needed to deal with in the backtesting. How much slippage to add to these stocks. The strategy enters and exits on the open and while looking over the trade list, I noticed some trades entered at the low of the day and exited at the high of the day. From my trading, I knew this would not be a realistic price. Should these cases get extra slippage? What follows is how I try to account for these issues.

The Strategy

The rules of this strategy will not be shared here but will be shared on The Crew, my private trading group, in the next few months. The strategy is a mean reversion strategy scanning for a sharp sell-off. Then exits on the bounce.

Test range: 1/1/2007 to 12/31/2007

Original Results

For my testing, I normally use $.01/share for slippage and commission.  I will be adding the additional slippage to these results.

We will be focusing on CAR and MDD as we add slippage. The “# Entry” column is the number of trades entered at the open and that was the low of the day. The “# Exit” column is the number of trades the exited at the open and that was the high of the day. You can see these make up 11% of the trades.

Adding Percent Slippage

In my trading experience, when entering at the open and it also is the low of the day, either I only get a few shares at that price and then the rest of the order at a higher price. Or I get them all at a higher price. I do keep track in my trading the entry and exit prices of my trades and compare them to the backtested results. This allows me to see how much slippage I am getting. But I do not keep track of when they happen at the low or high of the day.

From my trade results on lower dollar-volume stocks, I typically see slippage around .1%. But these are even smaller than I typically trade so I would expect larger slippage.

For the following test, I added two types of slippage. One for if the stock did not enter/exit at the extreme of the day. Then a potentially higher amount if the stock did enter/exit at the extreme of the day.

The top row is the original strategy without the extra slippage. Let’s look at row 4 which has a CAR of 23.49. In this run we use

  • .1% slippage when the open does not equal the low of the day on entry
  • .1% slippage when the open does not equal the high of the day on exit
  • .3% slippage when the open equals the low of the day on entry
  • .3% slippage when the open equals the high of the day on exit

As expected, the CAR comes down but not as much as I was expecting. And the MDD stays about the same.

Looking at the worst case I tested of .3%/.5% slippage, you can see how bad the strategy can get. The problem is we don’t know how much to expect.

What is interesting is that the entry/exit at the extreme really doesn’t have much impact on the results. Look at the .1%/.1% row with a CAR of 23.86. Now let’s look at the .1%/.5% row with a CAR of 23.11. Not much change even though we have a slippage of a half percent which is huge.

Spreadsheet

Fill in the form below to get the spreadsheet with lots of additional information. See the results of all variations from the optimization run. This includes top drawdowns, trade statistics and more.

Final Thoughts

Before I would fully commit to this strategy, I would trade at a small size until I had done about 10-20 trades. I would keep very close track of the slippage on both normal opens and opens at the extreme of the day. From there I could start to get feel for how much slippage is realistic for our backtesting. Even if it looked good then, I would keep close tabs on it when trading full size.

Depending on the slippage, the strategy can quickly go from an acceptable CAR to not.

 

Backtesting platform used: AmiBroker. Data provider: Norgate Data (referral link)

Good quant trading,

Fill in for free spreadsheet:

spreadsheeticon

 

Click Here to Leave a Comment Below

Bitfool - October 28, 2020 Reply

Hi Cesar,
I ran into this exact problem a year ago, with exactly the same setup, a mean reversion strategy that looked for a sharp selloff, bought at the next open, sold at the following open (1 day hold). It backtested wonderfully well, especially with small caps, especially during market turbulence. The bulk of the gains were on a relatively few trades. You couldn’t find the flaw by studying the equity curves or adding uniform slippage. The slippage wasn’t bad, but what absolutely made the backtests great (and the live paper trading die miserably) was an unachievable low price at the open.
In small caps, sometimes the open price is abnormally low compared to the rest of the day’s trading. And it’s usually one trade, right at the open that causes this, with all the other trading taking place significantly higher. And by “all the trading” I mean from the second trade on. I say this after losing money and paying extra for tick data to figure out why I lost money; you can’t tell this from daily data, and even 5 minute data only hints at the issue. What I found is that some fool gets frightened by the previous day’s price drop and decides to bail from that symbol… and before the opening bell puts in a Market Order to sell his stake. At the open, there was such thin volume on this small cap that the Market Order was sold to somebody sitting with a buy order at several percent below the previous close. That one lone trade, maybe for as little as 40 or 50 shares, sets this anomalous low for the day… all the other trading takes place at more reasonable valuations, and the stock rebounds (reverts toward the mean) as expected.
It doesn’t happen often in any given stock, but it happens often enough to make a simple MR strategy with a buy at the next open plan look really good on paper, especially on daily OHLC data. But in real trading you can’t get that low price, and the strategy suffers to the point of failure. My strategy made about 12% on paper in three months, and lost about 8% in real life before I unravelled the mystery. Buying at the open strategies, especially in small caps, are very difficult to backtest properly.
Paul

    Cesar Alvarez - October 29, 2020 Reply

    Thank you for all this great info. It is good to know that the open price is only for a few shares and one is not likely to get them. If you do not mind sharing what kind of daily dollar volume filter did you have? In my testing for this post, I used a 21-day MA of $5 million.

Giles Archer - October 29, 2020 Reply

Hi Cesar,

Would you use a simple Market On Open order to execute a strategy such as this one, or would you use something more complicated? TWAP for example?

Thanks in advance,

Giles

    Cesar Alvarez - October 29, 2020 Reply

    Using InteractiveBrokers, I would actually try a marker order, TWAP (first 15-30 minutes of day) and Adaptive-Patient to be able to compare the difference in fill and from the Opening price.

    Another thing try is raising the minimum daily dollar-volume and see how the results change.

Carl - October 29, 2020 Reply

Should start adding .2% on buy and sell for the upcoming financial transaction tax (FTT). This will drive trading to focus on systems with high average gain per trade.

Leave a Reply: