I recently started using this site to easily run and monitor some quant programs that I developed using a custom front end and CompuStat data. The few things that I have noticed is that the data provided here is quite good as it removes some biases that many databases suffer from. The other thing I have noticed is that most people are using unrealistic slippage in their small-cap sims. I personally use 2% with a 4 week rebalance and that is still a bit on the aggressive side. With careful trading I can usually hit this bogey but it is not easy.
I think it depends a lot on what you are trading, but 2% seems very very high.
P123 calculates slippage both in-and-out.
I reckon with liquid shares you should get slippage down to around 0.2%, with small caps, then there may be a problem.
Price impact is the biggest problem of course, but there are way to get around this:
-Spread out your orders, don’t put it all in one go
-Use hidden orders - IB allows you to check a box saying that your order will not be shown on the order book. I actually find this greatly improves the execution of large orders - when you want to to execute a large order, if you actually put it in then you are transmitting your intentions to everyone else - not a good idea.
A good hybrid I have come up with is to put in a large hidden bid, somewhere between the current bid and ask. Then, to tempt people into trading with you, place a public bid for 100 shares at that price. It is great - others will hit your bid, but the hidden bid will be executed first. This way you can buy (or sell) large quantities of stock at a reasonable price without ever showing how much you intend to buy. Since I started trading like this I have found my slippage has been enourmously reduced.
Oliver - my brokerage firm doesn’t have sophisticated order types. Can you describe further what a hidden bid is? Also why would the hidden bid be traded first before the public?
Thank you
steve
Steve - understand that all of the above is only possible with a “direct access broker”, you trade directly with the exchange. I wouldn’t use anything else, but I think some retail brokers are more old-fashioned.
When you place an order, it goes onto the book. An order to buy (sell) becomes a bid (ask) entered onto the exchange. If your order is within the current bid/ask spread (provided it is at least one round lot), it becomes the new best bid (ask), and that is displayed to everyone with level 1 data access, along with the size. Level 2 data gives all the bids and asks at the different prices.
If you place a (small) order within the existing bid/ask spread, you may find someone willing to do a deal with you, effectively meet-in-the middle type thing.
However, if you place a large order (“large” depends on the stock), other traders will realise that someone is looking to buy (sell) a large position, and interpret that in a bullish (bearish) way. They may respond by increasing their asks (decreasing their bids), so they get more favourable prices. I really have seen this happen, go in, and try and play the spread, and whatch the market move away from you, specifically with no trading.
If you place a hidden order, then your bid/ask sits on the order book, but it isn’t visible. Since orders are executed in order of placing, if you place a hidden order before a visible order at the same price, then the hidden order will be executed first.
Imagine a stock, you want to buy 10 round lots, but only 1 round lot is offered and asked:
bid: 10.25 (1) ask: 10.75(1)
What do you do? Its a pretty wide spread, and if you take out the one lot at 10.75, who knows what the next one will be? You could try and play the spread, you put in an order for 10 at 10.50:
bid: 10.50 (10) ask: 10.75 (1)
But now it is obvious to everyone that the supply demand situation is lop-sided, and inevitably the following will happen:
bid: 10.50(10) ask: 11.00(1)
However, by placing a hidden order for 9 lots at 10.50 and one visible at 10.50 you see on the order book:
10.50 (1) ask 10.75 (1)
Now, hopefully a seller looking to liquidate a position will see the improved bid and think aha, opportunity to exit, so they will sell one round lot at 10.50. But your hidden order gets executed, and the bid/ask remains the same:
10.50 (1) ask 10.75 (1)
So he thinks, “oh good, there is still another bid at 10.50”, so he liquidates another lot. etc. etc. until your bids have been mopped up.
Of course, this rosy scenario relies on someone else looking to liquidate a large volume. But precisely for the reasons i mentioned above, people on the other side of the trade are likely to hide their intentions too. Sometimes, after I place an order like this, I find the following occurs:
10.50 (1) ask 10.55 (1)
Its a form of electronic negociation! But the thing is you only want to negaciate with a small number of lots (one or two) otherwise you are looking desperate. Amusingly, if you hid the ask at 10.55 as shown above, its very likely that there will be more than one round lot for sale. If you execute one lot at a time, you can probe how many there really are at 10.55
One caveat, sometimes it does work to put in a large order. This works on higher capitalisation stocks, you can entice someone else to come out of the woodwork, they are clearly relieved that someone else can potentially be on the other side of their (largish) trade. I think this is only in stocks where the specialists don’t dominate.
Andrew,
We have to deal with 3 types of slippage in our Sims.
The first type is the slippage between the Sim’s previous day’s closing price that is used for recommendations and the price that is used for trades. Assuming that you select ‘Next Open’ for your Sims this slippage is already included in the performance calculations.
The second type of slippage is the difference between the Sim’s trade price and the stock’s price when you place your order. There are many influences on this slippage such as market order vs. limit order, time of day, wait for a pull back, etc. I use a market order right after the market opens and the Bid/Ask price of the stock has narrowed.
The third type of slippage is the actual trade slippage, the difference between the stock’s price when you place the order and your execution price. This is a function of the number of shares that you are trying to trade and the average number of shares traded.
I have kept track of this third type of slippage for the first 3 years I was trading P123. I have found that it is not so much a function of the size of the stock’s MktCap as it is a function of the % of the average daily volume that you try to trade. If I trade less than 1% of the average daily volume then my slippage has averaged less than 0.2%. If I trade 5% of the average daily volume then my slippage has been about 0.8% by braking up my trade in 3 or 4 trades over about 30 minutes. If you try to trade more than 5% then you take what you get.
I add 0.5% slippage to my Sims to handle slippage type 2 and 3. My actual result over the last 3+ years is 0.43% trading mostly Micro Caps.
Denny
Andrew,
I been keeping data of the slippage from my actual trades for almost a year for more than 300 trades. I would say that the slippage depends on a few factors such as market cap, liquidity, and momentum factors in ranking system and buy/sell rules. Here is a short summary from my data base:
-
for micro/small caps, average slppage is 1.15% of Friday close and 0.58% of Monday open; most of my micro/small cap models have momentum related factors in both ranking and buy rules.
-
as for midcap models, average slippage is 0.28% of Friday close and 0.31% of Monday open; my real time midcap models run under universe(midcap) and obviously there is no liquidity issue.
I would think it is proper to run simulations using 1% slippage of "prevous close "or 0.5% of “next open” for small/micro caps and 0.5% slippage of “previous close” for models with mktcap>1000.
The hidden bid trick works on occassion but it is pretty easy to spot. I have been a professional money manager for over 15 years with the last 10 in hedge funds, so trust me I know all the tricks in the book.
The problem as another poster noted was that u have slippage from actual entry price, can not always get the open or the midpoint regardless of your trading prowess, and the slippage from price impact. The price impact is actually like Schrodeger’s Cat paradox. You are not going to be able to know this impact until that particular moment.
Lets look at an example: A buy issued for a name at 10 bucks on the open. Ok, so let’s say we can’t get the open because it only opened on 100 shares. Now the market is 10.03 to 10.05. 1000 by 1000 Again unless you are just trying to buy 100 shares you can not be assured a fill anywhere but 10.05. So if you wait and try to get the 10 or 10.03 it may go without you. Which brings up the paradox of always getting full fills on “bad” trades and partials or none on good trades. and yes that counts as slippage if you miss a trade because it just keeps movin as it may go right from 10.05 and never look back.
Without debating it to death, I find it impossible that anybody can trade a quant portfolio of small caps with anything less than a minimum of 1 to 2% slippage. If you can I need to talk to you about a job as a trader at my firm!
The hidden bid trick works on occassion but it is pretty easy to spot. I have been a professional money manager for over 15 years with the last 10 in hedge funds, so trust me I know all the tricks in the book.
Can you share some of those tricks? I’d be interested in hearing, especially if you have any strategies for getting good execution.
I notice that IB has some weird orders like “volume weighted average limit”, where it attempts to execute orders during the day below (above) and average price. I haven’t used it because I don’t really understand it.
The problem as another poster noted was that u have slippage from actual entry price, can not always get the open or the midpoint regardless of your trading prowess, and the slippage from price impact. The price impact is actually like Schrodeger’s Cat paradox. You are not going to be able to know this impact until that particular moment.
I know this one… I think going a step further it would be a good idea to have a more dynamic system that would respond at every tick to say whether you should buy or not. Saying “i am going into the market to buy X shares” is ok if you are trading in small amounts, but if you are trading a large portfolio, it should be “I want to buy X shares but I will only accept Y slippage”.
I find it impossible that anybody can trade a quant portfolio of small caps with anything less than a minimum of 1 to 2% slippage. If you can I need to talk to you about a job as a trader at my firm!
Can I have a job then? But seriously if you are talking about small caps being > 200m (less than is “nano”), then I reckon you should get under 1 or 2%, provided you are not attempting a rediculous trading volume.
I have noticed that with caps > 200m, it is usually possible to “create volume” to carry out your trading, there are often a bunch of orders waiting to be executed, so even if your position is reasonably large compare to the average daily trading volume, you can still get a reasonable execution.
In real time though I consider 1% unnacceptable, if it goes that far against me, I back off, let it cool down. Often if you try again later in the day you will find that your price impact has been undone.
I think good trading is about gentle trading, you have to gently mop up what the market has to give you. And patience, I think you pay for impatient trading.
It may also be possible to get “positive slippage”, if you wait for the stock to close down for the day, you do get favourable prices, but arguably this is just a more advanced trading system. Still, every percentage point is worth going for
Some of the tricks are not necessarily viewed favorably by the SEC. Not that I would use any of the following: but …one could but a large sell order on top of the market. One could sell small amounts of stock hitting the bid and pushing it down. One could flash competing orders off and on, this tends to make MM widen their spreads. Those are a few examples. Normally larger orders are worked at the VWAP, the volume weighted average price. That is a measure on how well a trader is executing a trade.
The non-display, and display only work to a small extent but they can also work against you. If I am a seller of 1000 shares of a stock and I see just a 100 bid (The buyer really wants 1,000 but has display only 100) I may decide not to trade that day. The assumption you are making by using non-display and display only is that the stock is biased long and you are trying not to make it look excessively bid. The truth is you are usually best served by putting your full bid out unless it is really outside the norm for the stock. Those tools were really designed to give individual traders a false sense of superiority. Most professional traders do not use those tools. Instead we will use a Liquidnet or a dark-pool to find liquidity.
The one point you did not adress is how you avoid missing a trade that immediately moves against your price limit. That is a biggie! I design my Sims where the 2% slippage still gives me 46% (theoretical) returns with a Sharpe of 1.75+ But still in real life the results are closer to 30%+. Too bad the capacity of that particular Sim is only about $500K Much above that and slippage gets real nasty.
I decided to check and see what my worse % fill slippage was for the trades I made over the last month (14 trades). It was a sale of InPlay Technologies, Inc. (NPLY), a 17 Mil MktCap company with a 3 month average volume of 273K shares. I held 3040 shares, or a little over 1% of the average volume.
On 07/30/07 the 3040 shares were automatically sold by my -40% trailing stop loss with Fidelity (the Port has a -30% stop loss) between 12:05:50 and 12:06:03, (13 seconds) in 9 separate trades:
12:05:50, 100 shares filled @ $2.10
12:05:51, 458 shares filled @ $2.10
12:05:51, 100 shares filed @ $2.11
12:06:00, 100 shares filed @ $2.10
12:06:01, 42 shares filled @ $2.10
12:06:02, 58 shares filled @ $2.10
12:06:02, 342 shares filed @ $2.09
12:06:03, 440 shares traded @ $2.09
12:06:03, 1400 shares filled @ $2.09
The average sell price was $2.093
The first 100 shares were sold at the then current ask price when the trade order was sent in. So ($2.093 / $2.10)-1 X 100 is equal to 0.333…% slippage. Therefore, I think that the 0.5% slippage is still a good value to use for my Sims.
I purchased NPLY on May 29 shortly after the open for an average price of $1.411, so although I lost over 40% from the high, I had a return of 48%. The price as of today’s close is $1.41. If I had kept it I would be back to zero gain. Chalk up 1 for stop losses!
Denny
Is there a mathermatical relationship that relates the Next Open or Close or Open Price to Bid and/or Ask?
For instance, as I write this (US market is closed), the last trade for PKOH was $27.92 and Yahoo lists Bid and Ask as $13.53 and $41.87. As has been discussed here, we can expect this rather large Bid/Ask will narrow significantly after the market opens, but since this is a microcap, it will not shrink to be $0.01 but even after the stock starts trading, it will have a rather large spread.
So, my question is, how do I relate the Next Open price to the Bid and Ask I have to deal with when buying and selling the shares to the Next Open of the P123 simulation. Depending upon whether a Buy or Sell rule is triggered, that Next Open price must represent either an Ask or Bid price, and yet we know those can be very different numbers.
Sot that can’t be right, eg. Next Open cannot represent either Bid or Ask Price. So then I wonder what Next Open does represent and/or how to relate it to Bid and Ask.
Based upon discussions here in Forum, I use 0.5% slippage …should I assume that represents 1/2 the difference value of Bid and Ask at Next Open?
I also not that the historical values of Bid and Ask seem not to be tracked by Yahoo Finance or other financial sites. And yet these seem to be rather important numbers to know.
I posted this question in this thread, since it seems to me to be related to slippage.
Thank you.
Kurt