A Better Way to Trade Small Caps: The Power of Volume Volatility in Algorithm Design

Poldore Ben
October 05, 2015 Ben Polidore


The goal of this research was to study methods of altering the standard approach to VWAP such that it respects stock-specific volume volatility. The early returns are promising, and we think this concept can be applied to other algorithms where inappropriately tight constraints create excess cost. In this paper, we review the state of the art for volume forecasting and how these efforts are rewarded. We show the results of a random trial of orders that use a static tolerance around the target schedule vs. orders that use a tolerance that is set by the volume volatility of the stock. The results show less aggressive trading. We also argue that traders shouldn’t choose algorithms based on stock characteristics. Instead, algorithm choice should focus on the tradeoff between cost and timing risk.


Volume forecasts are an important input to institutional trading, and although forecasts are still improving, there is a perception that this is a settled science. The industry does a reasonable job at forecasting the “forecastable”: the level and shape of volume for most stocks. Methods as simple as a moving average (or median) do an acceptable job forecasting both the level and shape of volume throughout a trading day, but most firms (including ITG) have invested in more complex approaches to establish incrementally better fit. Intra-day, some level of blended extrapolation works well to forecast today’s volume given new information. So, we have these forecasts, and we use them! We have VWAP algorithms, look-aheads on Volume Participation algorithms, risk checks and more. Perhaps we use them too confidently? Isn’t there some uncertainty here that should be addressed in trading strategies, especially algorithms?

In this paper, we will review volume profiles and the science of forecasting them. We will discuss how little fit even a very sophisticated method can achieve out of sample and the implications of this challenge to trading performance. Our findings are surprising: we maintain that the “second moment”— the variability of the estimate — of the volume profile matters more to trading performance than the “first moment”— the estimate itself. Given this insight, we make recommendations for algorithm design that improve strategies — especially VWAP — which are dependent on volume profile forecasts.

The First Moment

Multi-day moving averages/medians create robust estimates of a volume profile for the most liquid stocks. The data gets sparse for illiquid stocks, but we can cluster similar stocks to improve robustness of the estimate. This is the approach ITG takes: use k-means clustering to find similar stocks and use the moving median of those clustered stocks to generate a volume profile. In our experience, this method works better than regression and other factor-based estimates of volume — instead of intuiting the factors that influence the volume profile, let the data speak for itself. Here are the results:

Figure 1 compares the mean squared error of a simple moving average with the k-mean clustering method on out of sample data. In the furthest right column, we tally the number of wins / losses for the k-means method. K-means clearly dominates a moving average approach to estimating the volume profile.

It’s intuitive that an improved volume profile estimate would improve performance of algorithms, in particular, VWAP. But performance defined how? One of the interesting findings in our research is that incremental improvements to volume profile estimates only improve (reduce) the variability of VWAP performance, not the average VWAP performance.

We measure this with ITG’s VWAP decomposition methodology in which we attribute VWAP performance to profile misfit, algorithm discretion (i.e., trading differently than profile) and price improvement. Over a large sample, profile misfit and discretion average out to near zero, which suggests VWAP performance is a spread capture and adverse selection game. Here are the results of our VWAP decomposition on our TWAP strategy1. This algorithm uses a very poor volume profile by design, and it doesn’t really matter:

Figure 2 shows the components of VWAP performance: 1) profile: the performance attributed to error in the profile estimate; 2) deviation: the performance attributed to algorithm discretion; 3) pricing: the performance attributed to short-term pricing vs. the market

With these results in mind, how do we improve average performance? Since discretion and profile misfit seem to average to zero on a large sample, it seems that we should use those levers to try to secure additional price improvement2, which should improve average performance. This gets a little confusing, so here it is graphically:

Figure 3 shows how changes in the profile estimate affect the performance of VWAP algorithms. It seems a bit unintuitive, but think of it in terms of a cost/risk tradeoff: lower risk in the expected outcome should cost more; taking higher risk against a benchmark should be rewarded with lower cost (or, higher risk leads to higher “returns” and the converse in a Markowitz sense).

The Second Moment

In trading, smooth processes are expensive processes. It’s fun to imagine the proud researcher, having reduced the error of his volume profile model by a few digits, configuring algorithms to trade even tighter to the model because, well, it’s better now… statistically. Economically? This researcher would benefit from Figure 3 above.

Here is a chart of the distribution of Bank of America’s (BAC) volume profile outcomes:

Figure 4 Deciles of cumulative volume for BAC (approximate ADV: 80,000,000) demonstrate fairly wide deviation even for one of the most liquid stocks in the U.S.

This is a very liquid (smooth?) stock, and you can see the challenge in modeling a given day’s volume profile with any accuracy. Now, let’s look at an illiquid stock:

Figure 5 Deciles of cumulative volume for AAOI (approximate ADV: 325,000) demonstrate wide variation from any central tendency

It looks pretty messy! But it’s consistently messy, so you can forecast the expected error with robustness3. Once you have this estimate, you can use it in an algorithm.

In the below chart we show the amount of aggressive trading required to satisfy VWAP orders with different levels of volume volatility. In the sample, the algorithm was configured with the same constraint in all groups. We also plot our recommended constraint for the different volatility groups, which is the median difference of volume profiles from their expected value.

Figure 6 This chart plots deciles of stocks based on their median deviation from their average profile. It overlays the amount of aggressive trading realized using a 2% constraint on ahead/behind schedule. At the 50th percentile, you can see that median deviation is about 6% from the average profile and aggressive trading jumps to 10%. There is a clear correlation between aggressive trading and higher deviation from the average volume profile. As you can see, when a uniform threshold is used in a VWAP algorithm across stocks with varying levels of volume volatility, you have to make up the difference with aggressive trading. Another way to say that is you have to purchase the liquidity services of market makers.

Imagine a stylized stock that trades in units of 10,000 shares with a random delay between each execution. Now, imagine an algorithm trading VWAP with a very smooth volume profile with tight tolerances. It might look like this:

Figure 7 The above stylized VWAP order doesn’t allow the algorithm discretion to trade more or less than the targeted schedule for a given 30 minute bin (orange line). The realized volume (grey area) is not nearly as smooth as the target. The algorithm does achieve passive fills (green bars) when volume is available, but not enough to sustain it over dry spells where the difference is made up with aggressive trading (magenta bars).

You can see the problem: the algo doesn’t fill enough when volume is available and is too impatient when things are quiet. Each mistake, under trading and over trading, comes at a cost. In fact, multiple costs:

1. Spread
2. Information leakage5
3. Impact

Would any volume profile model improve the outcome for such an order? We argue that the only way to improve the performance outcome for such a stock is to increase the tolerances to achieve an outcome more like this stylized unconstrained order:

Figure 8 The above stylized VWAP order has no constraints except that the order must finish by end time. It uses the same realized market volume and target schedule as in Figure 7, but it is able to fulfill all of its liquidity needs with passive trading by trading more than scheduled when volume is available and less when volume isn’t available.

That said, widening tolerances increases the risk of adverse selection. Let’s try to better understand this tradeoff.

Adverse Selection

Since most algorithms are price takers, passive trading behavior leads to some degree of adverse selection. We find that adverse selection has a fairly flat curve for a given stock. That is, unlike a cost model which has logarithmic growth based on order size, an “adverse selection model” has almost no slope6. In general, this means that reducing impact dominates risk of an increase in adverse selection, but there is no general rule for trading! Liquid stocks have very low transaction costs and fairly high relative adverse selection risk. In other words, for very liquid stocks, it’s best to avoid deviating much from the volume profile because of the risk of adverse selection.

Figure 9 This chart shows the ratio of adverse selection to ITG’s ACE pre-trade cost estimate. Higher ratios represent a low payoff for discretionary trading. Larger orders or orders for less liquid stocks have lower ratios, which should encourage one to use discretionary trading on such orders.

As you can see, for illiquid stocks, the cost savings of reducing impact — in this case through trading more opportunistically — dominate increased adverse selection costs. The picture is not so clear for liquid stocks.

Luckily, volume patterns align with the adverse selection / cost tradeoff. That is, liquid stocks have much lower volume volatility, so it’s not necessary or prudent to use too much discretion on liquid stocks. For illiquid stocks, it makes sense to use more discretion due to increased volume volatility and higher expected cost relative to adverse selection.

Performance: Must You Trade Right This Second?

Using the median difference7 from the expected profile (a measure of volume volatility) as the tolerance for our VWAP algorithm instead of a fixed tolerance has reduced cost and increased passivity for stocks with higher volume volatility. In the below chart, we demonstrate this through a random trial of statically constrained (control group) orders and orders constrained by the median difference (experimental group). The results are promising:

Figure 10 shows the proportion of aggressive executions required to fill VWAP orders in various groups. The blue box and whisker represents the control group which used a fixed constraint of 2% vs. the schedule. The magenta diamonds represent the realized average for the experimental group that used median deviation from profile as the discretionary constraint. The results are broken out by algorithm (VWAP and TWAP) and by the median deviation for stocks. Those stocks that have low median deviations (i.e. median deviations smaller than 3% as group A) from the expected profile don’t show much of a performance improvement because the current fixed 2% was close enough to the modeled value, but those stocks with a median deviation of greater than 3% (group B) show a material reduction in the proportion of aggressive fills required to fill an order.

This small change to our VWAP algorithm is representative of a general source of cost for institutions: many algorithms are configured to trade very tightly to smoothly modeled inputs like volume profiles or risk optimizing schedules. We see this blithe assumption of smoothness as the primary revenue source for a segment of market makers. This isn’t always bad: market makers spread out risk from a wide cross section of market participants when they’re at their most useful. But if your trading patterns allow you to internalize (economically, not the dark pool kind!) this risk, you can internalize a share of the profits earned by market makers as well.


When people talk about “small cap algorithms”, what they’re really talking about is algorithms that handle volume volatility properly. We don’t like the idea of traders choosing algorithms based on stock characteristics; in a perfect world, algorithm choice should be solely about the tradeoff between impact and timing risk. Unfortunately, VWAP is usually very expensive for small cap stocks because it trades a profile that is not representative of any single day of a small cap stock’s life. The goal of this research was to study methods of altering the standard approach to VWAP such that it respects stock-specific volume volatility. The early returns are promising, and this concept can be applied to other algorithms where inappropriately tight constraints create excess cost.

1Time Weighted Average Price. This algorithm uses a “flat” trading schedule to ensure nearly equal trading in each time period from start to end. Since volume profiles are almost universally curved with a bias toward the morning and afternoon in the U.S., this is a bad estimate of volume. Of course, TWAP algorithms are not trying to fit the volume, but this suits the purpose of our experiment by giving us a large sample of orders with a schedule that didn’t fit the volume to see how this affects performance. 2When we say price improvement, we really mean your price vs. the market over a short period of time. This could also be read as spread capture, but adverse selection is important as well as you will see later, so we wanted to use a more general term in price improvement here.3We used the stock specific distributions since there was plenty of data available, but we did construct a regression to get a feel for the correlations of various fundamental factors with volume volatility. Volume volatility is positively correlated with spread and negatively correlated with volume, which is intuitive.4What we mean by constraint is the amount of discretion the VWAP algorithm was able to use to trade faster or slower than the target schedule to secure passive fills. This is explained in greater detail in Figures 7 and 8.5Information leakage is the risk that the market will detect institutional liquidity demand in a name and move away from that order ahead of its execution. The difference between information leakage and impact is a matter of timing. Information leakage happens before much of the order is executed and impact happens as the order trades. They are difficult to untie, but information leakage is considered “worse” than impact because it is not a tradeoff between fulfilled demand and higher prices; it is someone trading ahead of your order. In our opinion, the best way to create information leakage is to pay the spread to market makers in a consistent, predictable manner, which is the behavior you see in Figure 7.6This might not be an entirely fair way to describe the true economic cost of adverse selection since AS is measured at the execution level and implementation shortfall is measured at the parent order level. The sum of adverse selection should directly affect implementation shortfall, but trying to come up with the precise cumulative cost of all of the executions in an order is beyond the scope of this research paper. For this reason, we only represent adverse selection and implementation shortfall as a ratio rather than some kind of economic equilibrium.7We used the median difference from the expected value instead of something like standard deviation because the population of volume profile outcomes is not normally distributed. If you use a standard deviation, you end up with very large, impractical values.

  • Ben Polidore

    Managing Director, Head of Algorithmic Trading