Computing Skid

Discussions about the testing and simulation of mechanical trading systems using historical data and other methods. Trading Blox Customers should post Trading Blox specific questions in the Customer Support forum.
Sir G
Moderator
Posts: 243
Joined: Wed Apr 16, 2003 12:21 am
Location: Salt Lake City, Utah

Computing Skid

MODERATOR: PORTION REMOVED FROM ORIGINAL POST WHICH REMAINS IN OTHER TOPIC

BTW, Skids & Commish will factor into these numbers. My question is… What / how does one handle these numbers?

I believe they should be a reflection of the days volatility. As I’m updating my testing engine, the way I am going about this is to historically compute my Real Time skids as a % of ATR of the day of election. Then in my historical tests I can apply this % or any derivative of it and compute a skid that is based upon that day’s market action. This seems like the fairest way of doing it.

For example, if I have found my stop orders have resulted in a skid on average of 5% of that days ATR. My engine will compute the skids for each stop order elected as a skid of ATR * .05. So it follows:

If Atr= \$400 then Skid= \$20
If Atr= \$4,000 then Skid =\$200

Any suggestions/comments to finding a fair computation of skids?

Forum Mgmnt
Roundtable Knight
Posts: 1842
Joined: Tue Apr 15, 2003 11:02 am
Contact:

How we test skids

Sir G.,

Volatility is the best way to compute skid that I know of.

We compute skids at g.c., as does VeriTrader™, using a percentage of the price movement between the desired entry point and the maximum daily excursion of the market in question for the day of entry.

As we get a better and better set of historical data in "Time and Sales" format, we'll use the volume and actual trades at and after the entry price first gets hit to determine skid, but that's a while off.

Basically, if we have an entry price of 100, and the high is 110, we will enter the fill price as 101 for a skid of 1.0.

This is essentially using the volatility of the day of entry as the basis for skid.

This seems to work fairly well and has been reasonably predictive when we compare historical tests against our actual trades using the same system.

- Forum Mgmnt

Chuck B
Roundtable Knight
Posts: 480
Joined: Thu Apr 17, 2003 6:34 am
Sir G,

My problem with attempting to model skid is that if you look at a frequency distribution of real world results it presents bigger tails than trading returns It is such a massively peaked distribution all centered on zero with a looooong tail out to the right (where x-axis is skid amount, y-axis is number of trades).

My experience is that the vast majority of my skids are between 0 and 1 tick out to a few ticks...then nothing except the outliers some of which can be huge. Hence, trying to come up with an average value is a challenge. It turns into more of an art like all of this stuff.

With 7 years of in market data on a portfolio of 16 markets, I have some average values that I use by market in testing. The funny thing is that even with some huge slips (like in BP in summer of 1999) thrown in, I was still too conservative with my initial testing assumptions -- which is good.

At this point, a lot of my trading is done electronically (Eurex, LIFFE, Globex and ACE) so skids there are a whole new avenue of work. Here it also depends on the exchange engine as they all handle stops and/or stop-limits in different ways.

Mark Johnson
Roundtable Knight
Posts: 122
Joined: Thu Apr 17, 2003 9:49 am

Compting skid

I've always liked the method used by Technical Tools (may they rest in peace). Their data management software contained a couple of built-in trading systems, with a unique way of letting the user specify slippage ("skid") for backtesting: as a percentage.

For a moment consider long trades. Zero percent slippage means: fill the order at exactly the desired price. If the trade is to buy at 69.50 on a stop order, zero percent slippage would fill the order at 69.50. 100% slippage means: fill the order at the worst possible price of the day. For a buy, the worst possible price of the day is the High of the day, so 100% slippage would fill the order at the day's high. Telling the Tech Tools software to use 40% slippage means, fill buy orders at a price that's 40% of the way from the desired price, to the high of the day.

Short trades are handled analagously: 100% slippage on a short trade means fill the sell order at the Low price of the day, 15% slippage means fill the sell order at a price that's 15% of the way from the desired price to the Low of the day.

This approach automatically incorporates volatility, which previous writers have praised. Better yet, it incorporates only the volatility of the day you're getting the fill, rather than some shmeared-out average volatility. It also prevents you from getting an impossible fill; suppose your order is to buy, stop-close-only. If the market closes at its high, an approach that added N ticks for slippage would be giving you an impossible fill. Whereas the percentage method would (correctly) fill the order at the high of the day, i.e., no slippage at all.

I've found a way to program this percentage method into Trading Recipes, but I haven't figured out how to do it in Tradestation without writing a DLL. Anyone have an idea?

Sir G
Moderator
Posts: 243
Joined: Wed Apr 16, 2003 12:21 am
Location: Salt Lake City, Utah

Thanks

Forum Mgmnt, Chuck B & Mark- thanks a bunch.

In my quest to define skid, I overlooked the obvious point that my way will produce unreal execution points. Many thanks for pointing that out.

Chuck B, I agree about the distribution of the real time skids, but maybe the best our simulated world can do is the excursion after execution as explained here. It would produce a distribution relative to real time events. I know I will now be spending some time blueprinting the logic for inclusion in my testing engine. I look forward to comparing my Real Time distributions to these simulated ones.

Mark, I don't think anything less then a dll will work with TS. Unless you have it print the numbers to a file and reprocess it outside of TS. That is the way I usually work around TS.

Speaking of Technical Tools, I recently came across a lavender diskette of Quote Butler, do you think I'm entitled to an upgrade to Quote Butler 2003?

Sir G

Sir G
Moderator
Posts: 243
Joined: Wed Apr 16, 2003 12:21 am
Location: Salt Lake City, Utah

Skids

Hi Again-

I love the excursion idea, but how would/could/should one want to calculate skids for MOO & MOC orders? The excursion logic wouldn't apply in realtime.

Also, what are the thoughts about introducing incremental "skids" based upon position size.

Such as:

#Contracts >0 and <=50 then %Skid =10%
#Contracts >50 and <=100 then %Skid=12.5%
And so on.

Something along these lines. Is this needed/preferable to a static %?

Forum Mgmnt, you wrote in regards to skids:
"As we get a better and better set of historical data in "Time and Sales" format, we'll use the volume and actual trades at and after the entry price first gets hit to determine skid, but that's a while off."

Can you provide a few more details to the logic you hope to use.

Sir G

Chuck B
Roundtable Knight
Posts: 480
Joined: Thu Apr 17, 2003 6:34 am
Sir G,

The MOO and MOC orders do present a problem, particularly with pit markets for MOC. I have seen times when there is substantial size on the bid and offer in the e-mini SP at the close and of course the market stops trading at that level. Then, 15 minutes later when the pit "settlement price" is distributed it is well outside that value. This behavior does not happen on real electronic markets like the Eurex and LIFFE. When they stop trading, a settlement price is generated...the last trade which is of course a balance of buy and sell orders at the instant the market closes. My point is that for all of the old donkey US exchange "pits", the methods these characters use to generate a "settlement" price is different, so that's another variable in this equation.

The other issue which crops up in my mind is that this is perfectly a case of the observer changing the observed. My 50 or 100 lot order may, depending on the market and size at time order is hit, substantially affect what the market would have done in the skid area I am trying to analyze. Hence we should put a factor of safety on the estimate to account for this effect.

Perhaps for MOO type orders (which is a valid order for both pit and electronic markets), one could take the range of the first "x" seconds of trading and assume that the fill for the position was in the worst extreme of this range? (at least as a starting point). The opening on the Eurex products is a bit different than say the LIFFE...the way the matching engines begin trading is handled differently which is one reason why sometimes the Dax, Bund, EuroStoxx50, etc., sometimes don't start trading until 5 or 10 minutes after the opening time. So again we enter into the exchange dependent nature of this stuff.

Now in the pit exchanges, a number of them (most all the NY pits I believe) use that opening rotation where they "open" a given month, finish all those opening orders, stop trading that month, then proceed to the rest. At some point 10 minutes later or so, trading is actually resumed on all months. I've always thought of this as the coffee pit traders road to wealth (as if they didn't create enough of them at every step of the way already). So here's another variable to consider in MOO modeling -- the "open" means different things in different products at different exchanges.

I don't think I've told you anything you didn't already know...just bringing up some thoughts to ponder.

Here's my biggest "pondering thought": how to model skid on electronic markets if your order is caught in one of those whoossh order book runs. This is the "biggie" in my opinion. Of course again we are hit with the different exchange engines handling things differently (i.e. you can't place a pure stop on Globex, only stop-limit orders, whereas on the Eurex you can't place a stop-limit order, only pure stops). Of course some of the front-ends have local order management that run orders for you like having a stop-limit order for Eurex that is held locally (with all the attendant problems of not having the order in the engine ahead of time!). Now add in that each exchange has different procedures for busting orders for "extreme" runs. Their procedures are different and their definition of extreme runs is different. Ahhh!!!

I think the effort to model expected skid is an excellent idea, so thanks for bringing that subject to the forum! I hope I haven't derailed the thought process here by allowing my engineering background to pile on issue after issue with no proposed solution (yet) .

Chuck B

Sir G
Moderator
Posts: 243
Joined: Wed Apr 16, 2003 12:21 am
Location: Salt Lake City, Utah
Then, 15 minutes later when the pit "settlement price" is distributed it is well outside that value.
This brings up a good point and one the I will start another thread on... let's see if we can draw some conclusions about that, there.
The other issue which crops up in my mind is that this is perfectly a case of the observer changing the observed. My 50 or 100 lot order may, depending on the market and size at time order is hit, substantially affect what the market would have done in the skid area I am trying to analyze. Hence we should put a factor of safety on the estimate to account for this effect.
Agreed.
Perhaps for MOO type orders (which is a valid order for both pit and electronic markets), one could take the range of the first "x" seconds of trading and assume that the fill for the position was in the worst extreme of this range? (at least as a starting point).
My first thoughts were to reply that this would be too costly on the "management" side of the testing engine. My translation of your thoughts were to run the system on 1 min bars. Well, if someone runs his systems now on 5min, the adjustment to 1min would increase the run time of the system by a theoretical factor of 5. But, when one has the benefit of coding up a platform on his/her own, maybe it is reasonable to put into place the ability for the engine to access and apply the first 1min bar of the session and the last 1 min bar of the session for use as a "quasi" opening range & closing range.

Here also is the opportunity to apply the % excursion, but not to the move that followed, but to the 1 min activity.

Sounds like "A" solution.

Ummmmm... any thoughts?
Here's my biggest "pondering thought": how to model skid on electronic markets if your order is caught in one of those whoossh order book runs. This is the "biggie" in my opinion.
I think that boils down to a few issues, if you use daily data... well forget it, it is lost in the OHLC.. but there it will be captured with the excursion model as proposed above from & MJ....... But if you're using say 5min intraday data would the forum suggest using the excursion based upon the "entryprice hit" and the extreme of next bar? This would give us a window excursion of >5min and <10min. This I would assume would bring the focus to the trading environment that your order is competing in.

Let's bounce that around a little.
I think the effort to model expected skid is an excellent idea, so thanks for bringing that subject to the forum! I hope I haven't derailed the thought process here by allowing my engineering background to pile on issue after issue with no proposed solution (yet) .
That is the thing, there are so many fine threads that need to be weaved, and each of those threads take attention and focus to figure them out. you know... a chain is only as strong as its weakest link.

Thanks all for the interaction, let's keep it going.

Sir G

Sir G
Moderator
Posts: 243
Joined: Wed Apr 16, 2003 12:21 am
Location: Salt Lake City, Utah
With the info I have gained here,I’ve been trying to figure out the fairest way I can compute skids. The finest compression of the data that I will be using is 1min. For MOO & MOC I will use % favorable excursion on the first and last 1min bar in the session. This is the best that I think I can do to replicate the open/close ranges.

Now, as far as stop orders (which I will treat as market orders called directly to the floor, or a click on the electronic exchanges) what might be the fairest way to compute the skid? MJ suggested a % of max favorable excursion for the day. This is a great solution when using daily data… but what about tests based in intraday data? As 1min data is available it can be placed under a finer microscope… should that option be employed?

Should I base things on:

The max excursion of the entrybar + the next 1min bar?

This would treat a fill as a price that falls somewhere within the next 61 to 120 seconds.

Chuck B. this might account for the “whoose” in the orderbooks that you have brought up. It might also be fair and realistic for the good old pit markets. Again, I’m basing these orders as being placed with direct floor access for the pits. FYI, in the "better" markets, fills would be reported in about 3-5 seconds after the clerk acknowledges the order.

Now, what about trading size? When you run these tests and as position size grows, is it fair to treat a 20 lot like a 200 lot? This is why I have asked about using an incremental scale on the skids. Near as I can tell, two ways can accomplish this, simply increase the % of the excursion and/or increase the excursion period, say from entrybar + next bar to Entrybar + next 3 bars. If you keep the % the same, when there is demand, the skid will still increase as we are giving the excursion a chance to increase as other orders might come in during that time and compete with ours.

Chuck B wrote:
The other issue which crops up in my mind is that this is perfectly a case of the observer changing the observed. My 50 or 100 lot order may, depending on the market and size at time order is hit, substantially affect what the market would have done in the skid area I am trying to analyze. Hence we should put a factor of safety on the estimate to account for this effect.
The idea of elongating the excursion period might also tap into the above thought. Let's say we have a buy order and the computer assumes we would have found enough selling to fill our paper. But regardless to what our computers say, in real life the markets are busy performing price discovery. Is it significant if 2 minutes after our simulated fill the market moves rapidly to the upside? Yes, I believe it to be as the ratio of Buyers:Sellers is now tilted to the buyers. Meaning we have run out of paper willing to sell at the lower price. Maybe by elongating the look period that will allow us to give the market room to move, which might represent realtime better..?? Especially when the size of the orders get large.

Also, Each market and the size you can move is different, which begs to open discussions on looking at Volume within the trading day and consider setting skids via a relation to that... but how deep should one go to strike the balance of fairness?

I'm up for any crazy thought on this subject, so feel free!

Kiwi
Roundtable Knight
Posts: 513
Joined: Wed Apr 16, 2003 1:18 am
Location: Nowhere near
Just by way of experience ... the next one minute bar is not good enough in the New York markets.

These guys still operate on a not-held basis (excused by Sept 11) and you can get a stop hit in minute 1, better prices traded in minutes 2 and 3, a fast market in minute 4 and your fill in minute 5.

It seems hard to believe but this happened to me in Coffee and despite complaints there was nothing I could do. So for thinly traded or possibly crookedly traded markets I think you need to go beyond 1 minute.

For JY SF CU TY US SP etc you should be fine at 1min.

TK
Roundtable Knight
Posts: 167
Joined: Tue Apr 15, 2003 5:45 pm

Slippage Estimates per Market

I've found an interesting article on slippage with round turn slippage estimates for individual markets:

http://www.attaincapital.com/alternativ ... un2005.htm