Daily Liquidity

Just a brief, informal survey question here … For those of you who factor in daily liquidity, what assumption do you make about the % of daily liquidity you can personally trade in a position without materially affecting performance vis-a-vis your models here? Less than 5%? More?

Welcome your thoughts.

Thx, Ed

The boys over at RenTec laughed at me when I asked them the same question. They then politely explained to me the Heisenberg Uncertainty Principle.

I used to work at a hedge fund and I knew for certain we were getting creamed on our market orders, but couldn’t prove it because if we were changing the price, there’s would be no way to know unless we could observe two otherwise identical realities. Long story short, I convinced the PM to let me play with some algo order types, and behold how our performance on a market neutral portfolio improved significantly.

Bottom line is that you can trade much more size in less liquid stocks if you don’t use market orders. I always liked iceberg types executed throughout the day. IB has plenty of algos to choose from.

Thanks Primus.

With all due respect to the guys at RenTec - and they are scary smart - that response of theirs is borderline ridiculous. To dismiss your question so flippantly suggests they miss the fundamental point - the fact that we can’t know an alternate reality that we never entered doesn’t alter an irrefutable fact: that scale is the enemy of investment performance and that becoming an active participant in low-mid liquidity strategies will, all else being equal, move the price at the margin and therefore affect performance. I sure wish I had a chance to take a swing at that big fat pitch they threw … would have loved to ask, if your question was off the mark, why is it that they keep returning capital in their Medallion Fund???

With that said, I continue to welcome feedback from others here.

duplicate post …

I include a buy constraint such that I am not buying more than 2% of average daily volume. I am not sure what the right number is, but 5% sounds too high to me. I use Folio, so I don’t have access to algos, but will probably switch to IB once P123 allows for auto rebalancing.

My old PM had a soft rule as to not be more than 2.5% of the average volume of what was typical within 15 minutes of the open or close.

Wow. Not 2.5% of the entire day, but just of 15 the busiest 15 minutes. About 1/5 of my trades are for 5% or more of the daily volume so I’d be a wild man in the eyes of that PM.

For part of 2013 I kept a record of slippage for about 335 trades. Most of the trades were in 10k-20k range with a few being as small as 5k and some winners had trade exits at 30k. On average my trades were 3.1% of the daily volume. But 65 trades (about 1/5 of my trades) were for more than 5% of the daily volume. This includes 17 trades for more than 10% of the daily volume and 8 trades for more than 20%. I didn’t plan to buy a high percentage of the daily volume, but when selling, I had no choice even if the volume had dried up.

What did I learn?

.1. For individual trades, results were all over the map.

…1a… I think there is a lot of truth to the guys who cited the Heisenberg Uncertainty Principle. You can never predict what your order will do to the price.

…1b… For example, one of the trades for 20% of the volume for a stock did not move the price a penny. That happened in June 2013 when I placed an order to trade $18,000 of DAVE which ended up trading $98,000 for the day. And 4 of the 17 trades for at least 10% of the daily volume didn’t move the price a penny. For nearly 1/4 of the time, trading over 10% of the volume had no effect on price!

…1c… On the other hand, there were times when my trade appeared to move the price significantly even though the order was for much less than 1% of the daily volume. For example, an order for $14,000 of JMBA apparently moved the price 1.5% (ouch) even though that $14,000 order represented less than 1 percent of the day’s trading volume. Similarly when trading LLEN I ended up seeing the price move by 1.6% (Ouch again) even though my $17,000 trade was less than 1 percent of the trading volume.

…1d… Needless to say, I’ve learned my lesson – always use limit orders – even if the trade will be less than 1% of the day’s trading volume.

.2. The second thing I learned is that paying attention to the Bid Ask spread is FAR MORE IMPORTANT than moving the prices – at least for my size of trades. In addition to how much my trades moved the prices, I kept a record of the average bid-ask spreads just before and after the trades.

…2a… The bid ask spread, on average for the 335 trades, contributed 0.21% of slippage per trade, but the movement of prices contributed, on average, just 0.09% of slippage. So over 2/3rds of the slippage for the trades was due to the bid-ask spread.

…2b… What about the 17 trades that were over 10% of the daily volume? These trades moved the price by 0.23% on average but the slippage due to the bid-ask spread was 0.40%. Here again, the bid-ask spread accounted for nearly 2/3 of the total slippage of 0.63%.

…2c… I think it is important to observe that those 17 trades had worse than average spreads (0.40% vs 0.23%) AND worse than average price impact (0.21% vs 0.09%). The two problems appeared to go together. Since the two problems often go hand in hand, I find a large bid-ask spread to be a caution sign, not only for itself, but also for the potential of moving prices.

Well, that’s my two cents of contribution to the discussion.

Oh, there are a couple methodological bias built into the above results. I was not doing an academic study so I did not attempt to remove biases arising from my trading method. For example, if I planned to buy 20k I usually start with a limit price at or below the ask price. If it filled below the ask, I’d record this as “negative” price movement. In order words, my trade did not move the price at all, but rather it “improved” the price. Including such price improvements will of course lower the average numbers for the price impact of large orders. Furthermore, if the limit order did not completely fill at or below the ask, I’d gradually increase the limit until it was as much as 1% above what the starting ask price was. But I would not go more than 1% above what the ask was when I first placed the order. As a result sometimes I’d only buy 1/2 or even 1/4 of my desired position. A by product of this method is that the price impact of larger trades will be underestimated to some degree compared to how much my trade would have moved the prices if I’d allowed the limit buy price to go above 1%. This bias only affected buying since when I was selling I’d keep on accepting lower prices even if the price was being pushed down more than 1% below the starting offer.


Depends how much you trade, liquidity bands of the stocks you are trading, volatility in the market at the time you trade, how you trade and how long you hold.

If you are holding positions 90 days or more, many top professional firms claim to trade 100% to 150% of the 100 day average daily total volume using VWAP type algo’s and get in and out (sometimes over days) with slippage under .25%. At least this is what they tell me. I know people with 5 day average holds (and $500MM port’s) who also claim they can trade 100% of ADT100 with modified VWAP. So, these are the upper bounds for the best traders with short holds.

For me, I generally stay under 1-2% of ADT100. I also trade more liquid stocks I can usually get filled on within 30 minutes. Although some (maybe 15%) of my trades still take a day or two to fill. But, you can definitely trade more if you take the time and work with algo’s.

There is an issue of the ability to exit positions in severe market distress if you go a lot higher on lower liquidity stocks, however. Things can be fine until they aren’t. In that period, can be very painful to watch your port. be down huge. A bigger rule, would likely be to limit positions to 2% or less of the portfolio, and to make sure the systems can really withstand much higher slippage - just in case.

You also really have to understand the signal decay factor of the system you are trading. If you are trading a very short holding period system with very hi signal decay (i.e. trading 2 hours late, or 1 day late makes a huge difference in performance), you want to be trading much less of the stock and getting filled much faster.

Without hard statistical evidence I find that this is just one personality type arguing against another. However, I have a couple of points I would like to make. DISCLAIMER: I make no claim on being an expert on the mechanics of trading.

b Market On Open (MOO)[/b]: you should be able to achieve a price between the bid and ask price, assuming there is sufficient volume. The actual price you get will be based on total demand versus total supply. PROs: (1) Guaranteed to buy or sell the stock; (2) No spread premium. (3) No market makers earning their “lunch” off the buyer and seller. CONs: (1) Potentially high variability of price on individual trades.

b Limit Order[/b]: This allows for a “controlled” price at the risk of missing trades (some would argue the best trades). PROs: (1) Eliminates randomness of price on individual trades. CONs: (1) Premium vs. risk … the tighter the limit, the higher the risk that the trade will not be executed. (2) Slippage versus manual labour cost… Trades must be monitored throughout the day and orders adjusted as required. What is the cost of your time to do so? And does any advantage in slippage pay for your “labour cost”.

b VWAP[/b]: How is slippage calculated for VWAP? Slippage needs to be calculated from a fixed point in time. I think it is logical that this point in time be the earliest opportunity to buy or sell shares i.e. the next open price. However, I never see slippage quoted in this context for VWAP. Usually slippage is calculated based on average daily price. When comparing to MOO, are apples and oranges being compared? PROs: (1) Will receive an average price over a time period thus less price randomness. (2) Orders are split into small chunks making fills easier CONs: (1) Still no guarantee that orders will be filled. (2) Bid/ask premium will be paid? (3) Market makers earning their “lunch” off the buyer and seller for low volume trades.

I view MOO as the best option. But then again my personality type is that of a free wheeler, not a controller.


Tom, great points, and yes the maximum advisable % of daily liquidity will be driven by the holding period.


Great points that I agree with fully. I cannot take away from anything you have said but would add:

  1. For me, MOO has a commission but a window trade has none.

  2. MOO requires that I hold some cash and not be fully invested. The alternatives are to hold cash or to sell at the open and then soon after the open buy at market.

  3. Slippage for MOO can never be measured as this is a true alternative universe quantum problem as Primus’ friends would say. Well, I guess you could compare your fill price/open price to yesterday’s close.

That having been said, when I am holding cash and making large trades where the commission has little impact compared to the slippage, I will be making MOO trades too

@Ed, I would love to address your original question but I might buy just 0.3% of average daily volume with one trade and perhaps accumulate 3% of average daily volume over 5 days for those stocks in the bottom 20% of liquidity. In other words, I don’t know.

Jim -

I’m not sure about window trades, but presumably you are restricted to a certain broker such as Foliofn or perhaps IB. In any case, $7 flat fee for commissions is fairly common, even for me in Canada (when I trade frequently). I view $7 as pretty insignificant and I personally wouldn’t go changing brokers to achieve something lower. In any case, if you aren’t paying commissions, rest assured you are paying in some other less transparent fashion :slight_smile:

As for being “fully invested”, it isn’t an issue if you have a margin account. If you have a tax-protected account and you end up in negative balance territory then you would have to sell a small amount of a stock to bring it back into line. This has happened to me in the past. If you rectify the problem the same day then no one will complain. I have let a negative balance slip a few days (not paying attention) and I got a slap on the wrist from the broker but nothing else.



With Folio the commission would be only $3 (there is also a $300 per year fee). For a $3,000 dollar trade that is 0.1%. My mean “slippage” compared to the open price is 0.19% +/- 0.15% (90% confidence interval). Obviously, there is the question of whether this is really true slippage or movement of the stock price between the time of the open and the window trade. I suspect much of this is movement of the stock price and argues for using MOO at some point.

So maybe. There is still holding cash and that black box quantum thing that makes me unsure what my slippage would have otherwise been for a MOO trade. I do have a SEP-IRA and they just cancel any orders that would give me a negative cash balance.

Also, it is nice that I do not have any problems with “unsettled” funds.

As for hidden cost to me or benefits to Folio, I have often wondered if they do not use some of my trades to “provide liquidity.” Good point.

My favorite algo at IB is the accumulate/distribute algo using GTC (Good until cancelled) Parameters are very flexible. If you choose to execute over multiple days, the algo will be ready to go on the next day but you must re-transmit the order to continue it.

I test the market impact of my trades by doing A/B testing with different types of orders. I then compare the average slippage from prior close for the A and the B groups.

This testing has saved me a lot of money.

1 Like

And what order types work best for you? Thanks!


This is really cool! And it is the best way to do it in many situations. For example, it would be ideal if you were to enter both type of trades the same day and compare them. There are many other time where this is ideal Again, very nice!!! And you cannot go wrong doing it this way.

Another way to do this is with Thompson sampling. Here you make just one trade each day, randomly at first and enter whether the trade was better than, say the close yesterday (success) or not (failure). Count it as success or failure in a spreadsheet and also update the code after each trade.

The next time the program tells you which trade to make. It may be fairly random at the start but it soon zeros in on the best trading method. I promise you it works and is near optimal if you define the success and failures in a way that suits you (that is meaningful for determining success or failure for you).

Its benefit is that it minimizes the number of trades you make with the inferior strategy and it could be easier for some.

Again, what you are doing is great and I am not suggesting changing anything. Just expanding on your excellent post.

You would then have to update in the success and failure of each strategy for this program to work.

Again, what you are doing is great and I am not suggesting changing anything. Just expanding on your excellent post.

Program without proper indents:

strategy1_successes = 3
strategy1_failures = 2
strategy2_successes = 3
strategy2_failures = 2
import numpy as np
a1=strategy1_successes +1
b1=strategy1_failures + 1
a2=strategy2_successes + 1
b2=strategy2_failures + 1
trade_strategy1 = np.random.beta(a1, b1)
trade_strategy2 = np.random.beta(a2, b2)
if trade_strategy1 > trade_strategy2: