Slippage monitoring !!!!

Hi,

I want to tell you how I monitor slippage, and am interested in how you do it.

I always have two identical portfolios. One that I trade live with TRADE called liveport and a second identical portfolio I use for slippage monitoring called slipport.

The slipport has an identical trading system, but with slippage fixed 0%. I also rebalance the slipport, but I do not trade it. If you rebalance a portfolio on P123, then the PREVIOUS CLOSE Price is being used by default.
There is no market impact on the PREVIOUS CLOSE Price of course, because I have not placed an order yesterday :slight_smile:

So the slipport has 0% slippage on PREVIOUS CLOSE Price. This is my benchmark.
Now I can monitor my portfolio slippage by comparing the liveport with the slipport.

There is only one caveat.
Because I get different fill prices on the liveport then on the slipport of course, the cash in both ports is different after each rebalance.
This is the reason, why on the following rebalance, then number of shares in the buy transactions of the slipport and the liveport differ.
After a few rebalances this adds up substantially and the error would keep growing with each rebalance… up to the point, where even different stocks are being selected.

To avoid this. I adjust the cash after each rebalance with a manual cash transactions.
And I also adjust the number of shares for each transaction, so that exactly the same number of shares are bought in the liveport and the slipport.

Now the liveport and the slipport have exactly the same buy and sell transactions of the same stock and the same number of shares on the same rebalance date.
The only difference between the liveport and the slipport is the slippage!

Does anyone do the same?
Of course it would be great if P123 would do this automatically.
Then I would not have the hastle of running two identical ports and continuously adjusting the number of shares for each transaction and the cash amount.

I filed following feature request.
It would same me a lot of work.
https://www.portfolio123.com/feature_request.jsp?view=my&cat=-1&featureReqID=1378

Tobias,

That sounds like a good method and I would keep doing that.

Rhetorically (or share if you want) does that work for you?

I have done something that should even work a little better. I window-trade and I compare my fill price to the opening and I have done this for a long time.

There is a lot of noise for me even comparing to the open. Comparing to the previous close should, I think, have even more noise. It takes a lot of trades to get anything that would be considered significant on a t-test or have a small standard error. And I have been fooled in the past even when it looks like something was significant.

What does work: in the mornings I like to aggregate all of of my holding on Yahoo (which included the rebalance for the stocks I will be buying during the day). I take a screenshot just before any market orders and take the price at the time of the screenshot for comparison to the market order. Or I just get the close trade at 10:59AM from Yahoo charts for window trades (just before window trades that start at 11:00).

You can come to accurate answers on slippage after about 150 to 200 trades

The image is of descriptive statistics from Excel with the 95% confident interval for a series of 172 trades: with the mean cut off since you do not care about slippage for my universe (just yours). The units are percent slippage.

I have data on thousands of open vs window trades and I am not sure I can tell you much from that data—much less than from the series of 172 trades in the image. That does not stop me from collecting more data. And I would recommend continuing what you are doing whatever else you might do.

Don’t know if that helps much.

-Jim


95% confidnece interval slippage.png

Slippage can make or break high turnover/low liquidity portfolios.

There is no need for a second portfolio. A simple comparison between the recorded fill prices and the previous close (and/or open) would do the trick.

Tobias,

What an excellent idea!

I think another solution could be for P123 to add a data point into the TRADE ports of daily VWAP (but also option of prev close, open and current close).
Then P123 compares the buy and sell orders against each data point.

This may have been discussed before, but which IB algos are you finding the most success with? Or are you trading them manually with limit orders and such?

If P123 added Daily VWAP to the price history, simulations could be priced with it.
Then in live ports, it would be possible to show “Slippage V.S. VWAP” as another portfolio metric.

BTW for my small cap port I use VWAP orders and get about 10 BP of slippage.

Yes it would be great if Portfolio123 would add additional data points to each transaction( previous close, next open, …)
Then everybody could do their own slippage calculation how ever they prefer.

A way to get previous close information for a port’s transactions into a spreadsheet is to use Portfolio(“port with trade data”) = true in a sim’s buy rules and use sell rule: Portfolio(“port with trade data”) = False.

Set the sim to previous close and run the sim. With a little manipulation of the number of holding etc you should be able to get the sim to buy and sell all of the ports historical holdings on the correct dates and download the prices for previous close into a spreadsheet by downloading the transactions.

It is relatively easy to match up the transaction prices for the live port and the previous close prices for the sim in Excel but it does take a little manipulation—deleting dividend and cash transactions etc. You can also name the sell rule to be put into the note to help with some of the sorting of the sell transactions in Excel.

This seems to be superior to methods such as XLQ spreadsheet downloads (using Yahoo! or Google) as P123 always handles the splits, adjustments for dividends etc the same.

-Jim

I only use vwap algos to trade, so my orders are broken into small lots and spread over the course of the day.

I check average fill prices vs decision price (previous close), open of day, close of day, vwap of day, and H/L midpoint of day. I consider wvap of day to be the most reasonable, but they’re all valid benchmarks in their own right. Generally speaking I do worse against previous close and best against close of the trading day. I also do much worse on marketable trades than unmarketable (liquidity taking vs adding), so to the extent possible I try to add liquidity with all orders.

With the algos available today I think its possible to achieve <4bp slippage (with commissions) even when trading large % of low-liquidity stocks ADV. When trading a small % of ADV slippage is barely even a consideration.

What is the commission of VWAP orders? I seem to recall seeing that is was about the same as getting the IB trading desk to manually do it. How much is that? What about cost of VWAP liquidity adding vs. taking? The % vol algo was of prime interest to me but now that you’ve highlighted the VWAP algo I am interested hearing more about how it might compare to the % volume algo. Liquidity adding % volume is good and fills are often a credit, but depending on the stock you get few fills or only fills at the very end of the day.

The % vol algo will fill as quickly as possible within the volume constraint, while the vwap “best efforts” algo will fill proportionally with expected volume through the specified period while not exceeding the volume constraint. They’re very similar alogs. % vol is faster and vwap is more predictable.

Commissions are just the normal tiered .0035/share and decreasing with higher volume. When adding liquidity IB credits you a portion of exchange rebates, if one exists at the time. So its possible (although not that common) to get a net credit on a trade. But even without a rebate I get better average prices when not crossing the spread.

Partial execution is always an issue when you impose a volume constraint and are trying to trade a high % of adv, but I guess that’s true for all order types.