Everyone has to model slippage on their own based on historical execution data since it depends on account size, instruments traded, what time of each day you trade, etc so there's no good general model. Slippage is important because it can make alpha-generating strategies lose money. Modelling slippage is important because then you can optimize trade size and frequency to minimize transaction costs. We want everything to be measured as accurately as possible so optimization can be automated.
This note is naturally organized under the development of a few definitions.
Participation Rate: Percent of ADV.
If you transact 100,000 shares of GOOG in one day which trades an average of 3.3M shares per day, then your participation rate is 100,000/3,300,000 ~ 3.0\%.
Actually we can generalize percent of ADV to be over a time range other than a day. Participation rate is actually the percentage of volume your trading accounts for out of the average total volume that transacts in the stock over a given range of time. So if 500,000 shares of GOOG are traded every hour, and you buy in to a 100,000 position over the course of an hour, then your participation rate is 20\%. Higher participation rates increase slippage and vice-versa. 1\% could be considered a high participation rate (for GOOG this would be 3M*500*0.01=\$15M) although I'm just trying to give you a rough feel for how low a high participation can be.
Liquidity Impact: The money you lose when you're trying to buy and there aren't enough sellers so you have to bid more to access more supply of shares. The two key determinants here are SPREAD and DEPTH. Here's what they look like in terms of an order book.

Spread hits you with costs every time you trade, low depth eats into big orders. Higher participation rates generally cause higher liquidity. There are some simple but widely used strategies to decrease participation rate and reduce liquidity impact. Basically you spread your order out over time, and there are two simple patterns of spreading:

VWAP is better than TWAP. There are other execution strategies with creative names, like guerilla, sonar, etc which actually interact with the market during the day. Instead of trying to target liquidity based on historical average volumes, they ping the market to look for "icebergs" - large hidden orders, which the algo can extract liquidity from without any impact, until the iceberg is exhausted. These more sophisticated execution algorithms are generally classified as liquidity seeking, rather than passive.
In the news you'd hear that spreads are widening because of high volatility. We've covered how participation rate causes liquidity impact when the market depth is too shallow; now I'll explain briefly here how the market making business works to show why spreads widen and complete this part of the cost picture. A market maker is like a warehouse. That's their business model, warehousing inventory (sounds kind of boring huh?). Instead of selling to other traders, you sell to the market maker and then he sits around and waits for a buyer so you don't have to. He's worried that the price will go down before he finds another buyer so he charges you a spread. Now of course there are a bunch of market makers so just one can't set the spread, but competition drives them to more or less agree.
When volatility is high, the price has a tendency to move faster so the market makers charge higher spreads to hold the inventory until someone else comes. They are taking more of a risk. Market making is one of the most profitable trading strategies since some exchanges will actually give rebates (the opposite of commissions) for "liquidity providers", i.e. traders who use limit orders, like market makers do.
Now let's look at the other component of slippage,
Short Term Alpha Loss: You only attempt to trade into a position that is going to make money, so the longer you take to get in, the more of that profit has already been absorbed and you missed. Whereas we wanted to slow down execution to decrease liquidity impact, here we want to execute as fast as possible. This suggests an optimization problem. We'll return to that in a second.
Estimate short term alpha by asking the portfolio manager or trader where he expects the market to go over the next few hours after a buy/sell order is issued on average, or by statistically analysing a large sample of past executions and the path of prices before and after on average. Anytime we say statistical analysis we generally mean dealing with averages or frequencies instead of looking for trends or meaning in individual points.
Here we assume alpha is generated linearly from the time of the strategy issues a signal to the time when the alpha signal is totally exhausted. Like if you have a momentum strategy, it might signal at time T that supply and demand dynamics are indicating the market will rise over the next hour. After that hour the signal is exhausted. If it takes you 20 minutes to scale into the position while minimizing liquidity impact, then you only get to ride the momentum (alpha) from time T+20 to T+60, i.e. 40 minutes instead of 60 minutes. We assume that the alpha is generated linearly so the difference from T+20 to T+30 is the same as T+40 to T+50 etc. Finding alpha is hard enough, so in modelling the exact shape keep it simple.
Let's look at a diagram of how liquidity impact and alpha loss combine. Notice that going up in this chart means losing more money, and going right means looking at how the price impact evolves over time. Assume you start executing at the left side and as you execute more shares the liquidity impact increases until you're done and the price corrects itself. The longer you take, the more alpha loss you will suffer.

This is a very important diagram. It displays how you can estimate the liquidity impact even though it's confounded by the alpha loss. (We'll need estimates of these two components later) Basically we need to estimate alpha loss first and then liquidity impact second, after subtracting out the effect of alpha loss. For alpha loss, draw the line of best fit on the average of all the stocks that you got signals on but then didn't trade. This is like the dashed line in the picture. Then once you have this baseline, draw the line of best fit on all the stocks you did trade and subtract out the baseline. (similarly you could execute a lot of share with no signal to estimate the liquidity first, but it's cheaper the other way) Now you have each component.
This motivates another definition,
Execution Shortfall: liquidity impact + alpha loss.
Shortfall is the number we'll be trying to minimize by choosing a certain time to spread execution over.
Here's a diagram of where the minimizing point lies:

Notice that here the x-axis gives different choices of the time you might take to execute, whereas in the previous chart it showed what happened after you chose a certain time and then started to execute. These two curves were estimated in the previous step (but now we say alpha loss is kind of curved because we're looking over a longer time range). To find the minimum in Excel or Matlab, add up the two curves and choose the minimum of this sum-curve. For example with numbers along two curves x=(10,9,8,6,5,4,2,1,1) y=(1,2,3,4,5,6,7,8,9) to minimize x+y=(10+1,9+2,8+3,6+4,5+5,4+6,2+7,1+8,1+9) =(11,11,11,10,10,10,9,9,10) we could pick either the 3rd or 2nd to last, which correspond to, say, execution times of T=8 or T=9.
This is what you need to optimize duration of execution. It should be clear that these issues are more important for a large investor than a small one. Also this is a framework that can help to analyse your strategies execution, but of course it's not 1-size fits all. For example if you trade around very sudden events then the alpha profile might not be linear. And if you trade in micro caps then liquidity impact could be extremely hard (useless) to model.
One final thing to mention, this model is also useful to get a grasp on the capacity of a strategy. Capacity is the amount of money you can manage following a certain strategy before the transaction costs wipe out the alpha. Transaction costs rise when you're managing and moving more money. Look at how much transaction costs would have to rise to make there be no optimal execution time. In other words it's best never to trade. Based on your transaction cost model, see what this rise corresponds to in terms of number of shares traded and back out the portfolio value that would produce that many orders. There's your capacity. Here's that in a simple diagram:

Please leave comments or suggestions.
16 comments:
Great Article with deep insights!
excellent article! Glad to see you posting again
What I found quite interesting in the past was how popular liquidity seeking algorithms such as Dagger, Guerilla or Sonar are detecting icebergs. The reason being that apart from lifting the icebergs for your own execution, one can sort-of front-run them. Turned out it's quite easy: http://www.uni-graz.at/socialpolitik/papers/Frey.pdf
The immediate replenishment with a new peak size after a transaction provides the market with a signal that the price level is likely to contain hidden liquidity. We construct an iceberg detection algorithm that uses the order book dynamics to make predictions of whether or not the bid or the ask side has an iceberg order. For a typical stock, the detection algorithm correctly detects approximately 70% of the books with iceberg orders and when the algorithm generates an iceberg signal it is correct for approximately 90% of the books. These results suggest that marginal liquidity providers can, on average, respond to iceberg orders by changing their order submission strategies.
There is also a 1 hour presentation on this using Matlab, which was featured on their (Mathworks') last quantitative finance virtual conference and can be downloaded in their archive.
great post!
do you have additional reference document/link??
Any formula to calculate minimal participation rate at which institutional investor can enjoy privileges of retail investors like no slippage etc...?
as an example if an instrument has a daily volume of 1000k then how many % of contracts of daily volume can be traded without any slippages?
m,
Look for George Sofianos at GSET. For example, here's some of his writing: http://gset.gs.com/gset/education/thought.asp
Thanks Chintan.
Either look at the order book and see how much volume is available at the best bid/ask or empirically measure it from past executions.
Thanks a lot for those references Nik.
Exactly which webinar is it you're referring to? Is it here? http://www.mathworks.com/computational-finance/demos.html?show=recorded
Regards,
Max
http://events.unisfair.com/index.jsp?eid=455&seid=32&code=finvirtual
dont know if you can log in, if you dont have a account specifically for this.
Best
-Nik
Thanks again Nik, I registered. This is really useful
Regards,
Max
Max,
Solid post.
I was actually doing a bit of work on this just a few weeks ago.
The effect your order has on the market is something fascinating because I don't know of any software that can simulate this.
Maybe yourself or one of your readers can enlighten me?
Backtesting and simulation, as far as I'm aware, assumes that your order would not affect the price, and that everything takes place as if your order wasn't present.
So to determine approximate scalability of systems, I have estimated that if you are buying anymore than >5% of the volume then you will move the price.
This estimation is not based on anything from than market observation.
eg. if you were trading a system based on 1-minute bars, and you have flexibility to scale into your position at anytime throughout that bar, if the average bar liquiditiy is $1million, then maximum position size is $50k.
Max, do you think this is a reasonable assumption, and what has your research shown in this regard?
And thanks for those links Max and Nik, I'll be taking a look at them over the weekend.
Nizar.
Nizar,
I haven't settled on heuristics such as the one you suggest. Perhaps others have useful opinions on that.
There are many services and software packages to estimate transaction costs but they are primarily targeted toward institutional investors. For example prime brokers all provide transaction cost analysis (TCA) and so do some companies like ITG: http://www.itg.com/offerings/measurement-analytics/itg-post-trade-analytics/
Regards,
Max
Hi, this is a nice post.
On a similar vein, you might find my book 'Algorithmic Trading and DMA' - website www.algo-dma.com interesting,
cheers
b
It looks interesting Barry.
Post a Comment