New slippage option in Simulations: "Variable"

Marco,

Did you make a change in the Variable Slippage values in the last few hours? I ran the first Sim below (private) right after you posted the info about the addition of the variable slippage. I was checking a few changes a few hours later and I got significant reductions when I suspected that the changes would be minor. I re–ran the first Sim with no changes and I got a significant reduction. See the second Sim. Can you explain what was changed?

http://www.portfolio123.com/port_summary.jsp?portid=1046614

http://www.portfolio123.com/port_summary.jsp?portid=1046766

Denny :sunglasses:

Just double check that when you go from portfolio to sim… it defaults price back to the open. You probably have it set correctly but just something to double check when going from portfolio back to sim.

Kurtis,

They are both Sims and they both use average of hi and low.

Denny :sunglasses:

Macro:

Your third step goes a long way to addressing the issue of larger slippage for lower priced stocks compared to higher priced ones with the same ADT.

I think the issue of larger slippage for lower priced stocks (esp. under $3) is not just the minimum 1 cent spread. However, this pattern of increased spread for low price stocks is nicely covered by the current formula for step 3 which actually doubles the effect of a 1 cent spread. That 1 cent spread is only paid on a round trip (buy followed by an immediate sell or vice versa). For a one way trade (either a buy or a sell) the slippage from the spread is 1/2 of the spread. But as I’ve said this doubling of the effect of the minimum spread is a good thing since this will cover the tendency for the spreads to be larger for low priced stocks.

In brief, I very much like (0.01/price) being added to the variable slippage formula.

Brian

Marco:

I think Denny has actual data on slippage. Why not model from reality instead of a guess ?

Bill

Deleted - Duplicate Post

Deleted - Duplicate Post

Denny the first release was missing some changes, sorry.

I think the current implementation is a much needed improvement. There were so many suggestions I had to decide quickly for r2g. It’s doing 10 day avg $ traded instead of 60, but I think it’s ok because it will also do it on the sell (if you still make money with a 5%+ hit, then it’s a winner even if illiquid)

The variable slippage doesn’t work for optimization yet… The optimizer switches back to fixed slippage.

Steve

Strader - Denny and others have their own techniques for entering positions. For example, Denny often waits til a certain time of day when the bid/ask spread is minimum before placing an order. Some people use limit orders, etc. You can’t model from one person’s stats.

Steve

Marco,

It does seem to me that a 10 day average is a better estimate of the volume at the time of the buy or sell than a 60 day average would be. If people want to add additional liquidity rules hoping that the volume will be more stable when they sell, they still can do it.

Regards,

Jim

Marco,

Does the Variable option ignore the value a user has entered for slippage? I would prefer that the variable amount would add to the slippage value that I have entered.

Rick

Jim,

Yes, the 10 day average is a better average of the likely amount available on the day of the buy. But that is not my concern. Many stocks, especially ones that are recommended from systems that rank recent volume higher, have very high volume in the few weeks just before the recommendation. Using that volume as a reference for an acceptable buy amount would be very misleading for trying to sell that dollar amount at the much lower but more normal average amount for that stock.

The reason I use the 60 day average for the buy amount is it averages down the high recent volume to a value that will improve the probability of being able to sell when the volume is back to normal.

Denny :sunglasses:

I found this paper.

http://quant-fin-lab.com/Short_term_reversal_and_trading_friction.pdf

Page 11:

“To cope with this issue, we asked one of world’s largest stock brokers, Nomura, if they could provide us with transaction cost estimates for stocks that are constituents of the S&P1500 index over our sample period 1990 through 2009.”

It goes on to describe the method. The results are in Table 2 on page 37.

There are some obvious issues. It is limited to the S&P 1500 index, which is considerably smaller than the P123 universe and doesn’t include the less liquid stocks. They assume large trades, $1 million per trade, which is likely unrealistic for most P123 members, which I think will tend to make the trading friction too high. They do not include commissions, which would make the trading friction higher. Etc.

I used this screen to get the median AvgDailyTot(10) by decile.

Universe: S&P 1500
Between(FRank(“AvgDailyTot(10)”), 90, 100)
ShowVar(@MV, FMedian(“AvgDailyTot(10)”, #All, #Previous))

I combined that with the Nomura trading cost for each decile and lined it up with the P123 variable model. The results are attached.

The results would seem to indicate that the Nomura estimates for trading costs are higher than the P123 ones for lower liquidity stocks and lower for high liquidity stocks.

On the other hand, if one really was doing $1 million trades, using a PctAvgDailyTot(10) < 10 rule would limit trading costs to about 0.2% by the Nomura data.

Al


Al,

Now that is VERY interesting. trades less than $1Mil will have lower slippage. But without the data the amount is only guess work. It would be wonderful is we could find a study that covered the amounts less than $1.4Mil that this study covered.

Denny :sunglasses:

The slippage will also depend upon the position size. I don’t see that being factored into the variable slippage algorithm.

Taking the numbers that Al provided I’ve come up with a formula for variable slippage that more or less conforms to both the Nomura trading cost and P123’s slippage calculator but is much smoother and simpler. The percentage slippage is 25 divided by the square root of the ten-day average daily total measured in thousands. So if the ADT is 44K, the slippage is 3.77%; if the ADT is 100K, slippage is 2.5%; if the ADT is 5000K, slippage is 0.35%; if the ADT is 321,000K, slippage is 0.04%. And if the ADT is as low as 10K, slippage is 7.91%. This seems like a very reasonable measure of transaction costs, and it avoids the huge jump in slippage that the current variable slippage formula applies when the ADT drops from 55K to 45K.

I think you should be using a minimum daily total, not an average daily total.

I realize 10 days is probably short enough for it not to matter in the vast majority of cases. I always avoid ADT because I’ve seen too many cases where a stock has an extremely high volume for a few days and then goes back to trading a very small amount, even days with no trading at all.

In any case, if there’s only a small difference between MDT and ADT, you haven’t lost anything. But if there is a large difference, you may gain a lot by not stepping on a liquidity land mine.

So Randy is touching on an important broader point. At those small volumes market impact becomes important.

At an ADT of 45K, $10,000 will be more than 20% of ADT. There will be a difference if you trade $10,000 compared to $1,000.

My question would be should I trade just $5,000 for that stock? Less? Maybe if that is my best port I should trade $20,000. In other words: What is my market impact? What is the optimal amount to trade based on the market impact?

Many of us need equations where the amount we trade is in the numerator. Yuval is correct that the square root is often used.

Most calculation take the form Constant * Daily volatility of the stock * Square Root(Amount You are Trading/ADT). Often with some function of BID/ASK spread added (which is not in the P123 data). The point here is that the amount you trade is in the numerator.

With any luck, at some point we will all be asking how much of my increasing money can I dedicate to my best port (or the lowest volume stock in that port)?

Personally, I am far from having an answer to this question–yet it is one of the most important questions.

If you have a link to such a calculation, I’d love to see it. It seems extremely useful. How, for example, do you calculate the daily volatility? What’s the constant?

By the way, though actual slippage for simulations should be calculated on the basis of a 10-day ADT (or MDT–thanks for the suggestion, Randy), when buying a stock that I’m intending to hold for a while, I don’t look at anything less than a 90-day figure so that I know that I’ll be able to sell it without too much trouble.

I only use limit orders so that I don’t usually pay the full bid-ask spread, but the partial fills, with their daily commissions, kill me.