Maximum trade size?

How much can you trade in a day with reasonable slippage?

I have been using 1% of median volume (defined as the median daily volume over the past three months, i.e. 63 bars) as my cap for regular limit orders and 10% for VWAP orders. When I try to trade more than 1% using limit orders, they tend to get filled in multiple chunks, at least on IB, which indicates that it’s overwhelming the market.

Does anyone have a better way to estimate maximum order size?

I think it depends. I am by no means an expert, but I wouldn’t assume limit orders being broken up means it’s overwhelming the market. I find IB’s “midpoint” order to be very good, and I have seen my order execute in “chunks” even when being only a couple hundred shares in hugely liquid issues.

I am curious as to what your experience has been with being 10% of volume using VWAP?

Thanks.

Let me clarify.

When placing an order in middle of the trading day, I like to put in a lowish price that I expect to get filled at. So, if I see that a stock is trading in a range, I will place a limit order somewhere in the lower half of the range. But I found that often part of the order got filled, and then the price rebounded and remained above my limit for the rest of the day. That has been a tell that the other traders were using my limit order as a bottom limit. Which indicated to me that my order affected the price.

As for trading VWAP, 10% is considered reasonable. I didn’t do proper studies.

Hi Chaim,

I tried to translate what I do into something that would be helpful. Not easy and what I do may not be relevant for you.

But you trade a lot of SP500 stocks? High volumes of SP500 stocks because you manage a fair amount of money? I might be wrong about that.

This is data from Charles Schwab and should give you some idea of what kind of volume you can trade (at Schwab or Fidelity over a short period) without extending beyond the BID/ASK spread for the SP500.

This may not be helpful either but it represents a lot of data and it is probably pretty accurate.

Jim


I regularly trade more than 100% of the median daily dollar volume of a stock. Right now, for instance, I have 4800 shares of QEPC, which trades only about 350 shares a day and has a huge bid-ask spread to boot. Of course, I didn’t buy those shares all at once, but, for example, I bought 1400 shares on April 5. In fact, 1,501 shares were traded that day–most of them to me. The stock opened at $25.28 ($0.13 below the previous close) and closed at $25.23; its high that day was $25.45, and the average price I paid per share was around $25.40. So, yeah, I had to pay some slippage, maybe $0.20 per share.

If you’re willing to watch the prices through the day and place your orders in small chunks using limit orders you can get away with stuff like this. Here’s my estimation of my transaction costs, based on a comparison of my fills to the previous day’s close. Let S be the median bid-ask spread over the last few weeks as a percentage of the stock’s price. Let A be the amount you plan to buy. And let D be the median daily dollar volume. Then your one-way slippage cost will be approximately 1.8 * S^1.5 + 0.0053 * (A/D)^0.25. So, for example, let’s say you want to trade $200,000 in HBP, which has a median spread of 0.94% of price and a median daily dollar volume of $193,000. That would cost you 1.8 * 0.0094^1.5 + 0.0053 * 1.036^0.25 = 0.7%. I would guess that using some smart algos with IB would give you similar transaction costs–I can’t imagine that my clumsy time-intensive trading is more efficient than theirs.

Yuval, why do you use the median daily volume as opposed to the average? I tend to find 5 to 10x better results by going with the average over any period, although im primarily working with 1500$ volumes with similarly small position sizes

For one thing, I don’t want to trade stocks that have a daily dollar volume of 0 on most days and $200,000 on a few. For another, I want to make sure the volume is there when I want to sell, so I want to avoid stocks that have, for example, a median daily dollar volume of $1,000 but an average daily dollar volume of $10,000 because $100,000 was traded on two days.

I also don’t know what you mean by having 5X to 10X better results trading stocks with low average daily dollar volume as opposed to low median daily dollar volume. Could you expand on that a little?

I just ran a quick test on my main large money strategy which showed 7x~ better with the average used, but for example when testing these (its just for demonstrative purposes)

Over the counter stocks, Rebalanced weekly at next average of high and low, Slippage at 0
Close(0)>0.001 and Close(0) < 0.025 // prices between 0.001 and 0.025
100*( (Close(0)-Close(20) ) / Close(20)) < 0 and 100*( (Close(0)-Close(20) ) / Close(20)) > -75 // Price has fallen between 0% and 75% over the past 20 days

By using:
AvgDailyTot(30)>1000 and AvgDailyTot(30)<15000 //
You’ll get a return indicated at 881%

With Median:
MedianDailyTot(30)>1000 and MedianDailyTot(30)<15000 //

It’s 319%

For my small money strategy it’s a difference of 11,800% to 292% rebalanced weekly at next average high and low - So I assumed it would be overwhelmingly the case for every other strategy.

For example:
No OTC - Reballanced Weekly at next Open - 0.25% Slippage
AvgDailyTot(200)>20000
Frank(“MedianDailyTot(30)”,#industry,#asc)>(100-(1))
Over the past 5 years does 24.74%

Against
AvgDailyTot(200)>20000
Frank(“AvgDailyTot(30)”,#industry,#asc)>(100-(1))
Which does 33.51%

The difference seems to be consistent ignoring the exceptional performance of the past year - 3.4% for median and about 9.x% for avgdailytot.
These are just light tests, I dont have access to 20 years of data but it might be a good idea to backtest your strategies with avgdailytot(x)> instead and see if the results are different! I’ve also found putting volume caps on some strategies seems to help the results quite a bit. It seems, to me at least to be an easy way to find markets that are likely to be inefficient and volatile relative to high volume markets. Some strategies will not work at 1,000,000$+ per day but work better than nearly everything between 10,000$ per day and 100,000$.

Seems like 2 different things are being discussed here.

  1. What factors help me understand whether a stock will have enough liquidity to be able to trade it?

  2. Are there some liquidity factors related to stock performance?

Liquidity issues aside why would a stock that has a mean trading volume greater than the median trading volume perform well?

A distribution with a mean greater than the median will be skewed. Saying the mean and median are different is just a way of saying the distribution is skewed. One possible example of this would be a stock that has recent news that has resulted in a recent increase in trading volumes.

James is including more low-trading-volume stocks with right skew in his model when he uses mean volume rather than median volume as the lower cutoff. He is also excluding some stocks with left skew.

And actually, James uses ADT here. So he may be selecting stocks that have a recent increase in trading volume and/or a recent increase in price.

James would not be the first person to notice that recent increase in price and volume suggest that a stock may do well.

I would argue Chaikin Money Flow (use over where Marc Gerstein works) captures this idea in a different metric. And it could mean there is news that is not yet fully incorporated into the price.

Using skew is certainly not a new idea. Many at P123 have praised the quality of this paper where skew-of-returns was found to be a significant factor: [url=https://www.portfolio123.com/mvnforum/viewthread_thread,12805#!#77604]https://www.portfolio123.com/mvnforum/viewthread_thread,12805#!#77604[/url]

Still, a stock may not be tradable even if it will do well. Probably good points worth considering by both Yuval and James.

Jim

James -

Thanks, now I understand what you’re saying. But have you actually tried trading these tiny stocks?

Here’s the thing. If trading was cheap for ALL stocks I wouldn’t set a minimum liquidity limit at all. I’d just trade all the tiniest stocks I could find. I wouldn’t need to worry about average or median. The reason for a minimum liquidity limit is not to improve returns. It’s to prevent me from trading stocks that are really really expensive to trade. I have no doubt that by changing or eliminating my minimum liquidity levels I could improve my backtests. But considering my experience with trading tiny stocks, doing so would be a mistake.

I use liquidity not only to limit what stocks I buy but to help determine how much of them to buy. Two stocks with equal rank but with major differences in liquidity will get very different allocations in my portfolio. And I find median measures are far more stable for that purpose than average ones.

  • Yuval

So, keep in mind my portfolio size is literally 17,000USD - but yea I only speculate in shares between 250 & 5000$ in the past 20 days on average. Some of them go inactive and in general I have to set out 4 orders for every one that fills, but the strategy gave me 100% for January. After January, I went on to gravitate to higher volume stocks because I thought the partial fills weren’t worth the fees, which I believe was a mistake for my speculative strat.

It could be worth the money to double your average fee’s and get an extra few percent on the backtested return side, I really don’t know anything about trading positions succesfully in large scale volumes and am really only guessing for lower volumes. I would imagine that if your strategy calls for weekly or biweekly reballancing, it would make sense to buy your small stocks over the course of a few days, basically just reballancing on different days so you dont flood the market with buying or selling.

Also, I noticed that higher volume and an increase in price actually predicts worse speculative returns, so it’s a mistake according to backtesting to buy (as a general example):
AvgDailyTot(20) > (1 + (5/100) ) * SMA(50) // Volume is 5% above 50 day SMA
Close(0) > (1 + (5/100) ) * SMA(50) // price is 5% above 50 day SMA
AvgDailyTot(200)>20000
No OTC, 0.% Slippage, Reballanced weekly at open does 11%.

But, for example buying the inverse has done 23% in the past 5 years.
Close(0) < (1 + (5/100) ) * SMA(50) // price is 5% below 50 day SMA

These results are subject to quite a high increase in the past year or so. It would be worth knowing how the above have done in the past 20 years but they form the basis for my current speculative theory!

I think the reason median does worse than average is because average allows you to look at stocks with lower volumes and the median will in general force you to buy higher volumes, so on the whole I think you’re probably right about the stability of median over average, but it might cause you to be in general buying positions in a market that are occasionally more liquid than you need them to be :slight_smile:

There’s a reason my portfolio is only 17,000$ though, so take that with quite a bit of salt!

James

PS my typical position sizes are 250-700usd I pay 10$ per trade and it was 97% after fees for January. 130% prior to fees, so it was absolutely worth it for me to pay the fees on the impartial fills that I thought were hurting my returns. I went to 1,000$ positions around mid february to avoid the fees and actually have been going flat while my backtests have been doing much better than I. I suspect it’s because all my fills would only be in the very active stocks, which have also been flat since February.

Hi James,

I think this is probably right or is probably the largest cause for what you are finding. But I thought I would test my hypothesis for my own interest.

I wanted to test skew in a controlled study that does not select stocks based on liquidity but rather based on skew alone. I ran 2 screens with different rules and the all fundamental universe:

Rule (screen) 1: AvgDailyTot(20) > MedianDailyTot(20)

Annualized Return: 151.79%

Rule (screen) 2: AvgDailyTot(20) < MedianDailyTot(20)

Annualized return: 4.58%

Comments:

  1. Skew (and the type of skew) can make somewhat of a difference with this universe.

  2. People will want to check this out with a more appropriate universe for their models.

James, thank you for your post and comments. I think I learned something here that I would not have explored without your post. I look forward to testing this with universes more suited to my trading.

FWIW.

Best,

Jim

EDIT I trade a very liquid universe to the point that I usually just place market orders. But Rule 1 in my universe even helped my models. Note, even though it helped I will not be using this rule in my models. Too many rules that help just a little on a backtest = overfitting. Again, FWIW depending on a lot of different things for each member and their model.

I no longer recommend moving the market with your trades. It may work very well at first. But when others catch on to the factors that you are using and trade the same stocks, you will get burned.

Here is the math. 1% on the buy and 1% on the sell adds up to 2%. If your holding period is three months, deduct 8% a year. This means that your trading system would have to beat the market by 8% a year just to break even with the benchmark, and this does not even include commissions. How many models will beat the benchmark by 8% a year? Very very few.

But it gets worse. Once your factors get discovered and get crowded, those factors make 0 in excess of the market. Before slippage.

But it gets even worse. Initially, when factors first get widely discovered, people start with small exposure to them. When they see them working, they ramp up exposure. Typically, many investors ramp up exposure at the same time, which tends to cause even more slippage. This shows up in the beginning as reduced returns. Then, when there is some market volatility, investors tend to dump these underperforming systems first which causes price crashes.

I got burned in such a system. Once. Now I no longer trade with high slippage.

I certainly don’t recommend high slippage for the public because it amplifies factor crashes.

Me too! Thanks so much Jim, I learnt a bunch too!

These are very good points, Chaim. I should have added a caveat to my post along these lines.

I don’t do this often. QEPC is a true rarity in my portfolio. My calculation of its slippage is more than double that of any other stock I own, and close to 20X the average slippage of my holdings. I just talked about it because I wanted to say that you can, if you’re careful, trade more than 100% of the median daily dollar volume of a stock, and I wanted to give an admittedly extreme example.

Chaim,

Your question encouraged me to look at this text again: The Science of Algorithmic Trading and Portfolio Management: Applications Using Advanced Statistics, Optimization, and Machine Learning Techniques

Below is their THEORETICAL calculation for VWAP. With this statement about their theory later in the text: “We observed a very strong and accurate fit for order size up to about 15% ADV and for sizes of 20% to 30% it appears that we are overestimating the actual cost.”

The units are basis points.

Hope this helps some.

Jim


Thanks! Are the numbers in basis points?

P.S. what did you think of this book overall?

Hi Chaim,

Yes. Basis points.

I thought the book was good but to be honest there is not much that I am actively using now. I have a maximum amount I want to place per trade (with my universe) that I developed with the help of the book. I would have to review it to be sure about what could be useful for you.

I thought there were some interesting ideas and probably a few additional useful ideas in the book. I found it worth the price.

Jim

How is it possible to trade 50% of ADV using 5% POV (percentage of volume)? Doesn’t that mean that your limit is 5% of volume? Is it spread out over a couple of weeks?

Chaim,

That is a great question. And of course, I have no interest in defending the authors. Maybe they made a mistake. But they seem pretty good and the book is, in part, to advertise their consulting service (if I remember correctly) so a major mistake would be a little bit of a surprise.

It does look like, at least some of the study, was done on higher volume days where the volume for that day was higher than the AVERAGE daily volume. Maybe even intentionally? I get this from here:

“We filtered data points from the control group identical to filtered data points derived from the market data cost section. We filtered days with volume greater than 3 times ADV and days with price movement greater than 4 times the stock’s daily volatility. We conducted the filtering process because it is highly likely that on days with these types of volumes and/or price movement it was more likely to be due to market or stock specific new information rather than excessive buying or selling pressure.”

Chaim, let me look at this a little closer over the weekend and see if I can answer this a little better—perhaps why they did this, for example. See if there are any better or supplementary tables too.

Thanks for the question.

Jim