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.

Tonight, I was playing with Trading Blox, Using the standard Donchian system, that ship with Trading Blox, I was testing different strategy of portfolio and Money management.

Then I decide to play around with the minimum slippage$ I expect that if I would trade this system for 100nd of contracts on stop order, I would get some slippage. Well slippage can really kill your system.

I was just wondering, could this be one of the main reason, why we often hear that there is a big difference between the result of testing a system , and trading the same system.

This is one of the reasons that we included the stepping feature for just about everything in Trading Blox, so you can see how sensitive your results are to slippage, commissions, account size, etc.

It is also one of the reasons that we let you specify various algorithms for slippage assumptions because these can have large effect on performance.

The Donchian system trades quite a bit and slippage can certainly hurt systems like this considerably; while systems like the Dual Moving average system with very long averages are hardly affected by slippage and commission assumptions at all since it trades very infrequently by comparison.

This is one of the major reasons why professionals have an easier time. They can generally get much better fills, at least in pit traded markets, and they have much lower commissions.

Forum Mgmnt wrote:This is one of the major reasons why professionals have an easier time. They can generally get much better fills, at least in pit traded markets, and they have much lower commissions.

Forum Mgmnt wrote:while systems like the Dual Moving average system with very long averages are hardly affected by slippage and commission assumptions at all since it trades very infrequently by comparison.

But don't such systems still trade at every contract rollover? Is there an allowance for slippage at that point?

Forum Mgmnt wrote:while systems like the Dual Moving average system with very long averages are hardly affected by slippage and commission assumptions at all since it trades very infrequently by comparison.

But don't such systems still trade at every contract rollover? Is there an allowance for slippage at that point?

Yes, you select whether to charge commission and slippage and how much, on rolls. The roll date is determined by the actual data month changing so its accurate.

Forum Mgmnt wrote:while systems like the Dual Moving average system with very long averages are hardly affected by slippage and commission assumptions at all since it trades very infrequently by comparison.

But don't such systems still trade at every contract rollover? Is there an allowance for slippage at that point?

Yes, you select whether to charge commission and slippage and how much, on rolls. The roll date is determined by the actual data month changing so its accurate.

I just like the quote within quote feature. But seriously, why wouldn't you select the same commission and slippage on each side of the roll transaction that you select on the buy and sell of the system? After all, if I hold a long position in CL for 18 months, it's not one trade - it's many trades. Assuming you're trading the near contract, holding a position for 18 months is 36 trades! One to open the position, two for each rollover (sell one and buy another), and one to exit and take profits ... right? So do long MA systems really trade less frequently?

nodoodahs wrote:[ After all, if I hold a long position in CL for 18 months, it's not one trade - it's many trades. Assuming you're trading the near contract, holding a position for 18 months is 36 trades! One to open the position, two for each rollover (sell one and buy another), and one to exit and take profits ... right? So do long MA systems really trade less frequently?

You could have a shorter term system entering and exiting several times in a longer trend. Where the LT system would ride the whole time hopefully. Its a question of the trade efficiency of your systems as to which method may be superior for reaching your goals. Additionally, rolling every month in the energies is just one choice.

RedRock wrote:You could have a shorter term system entering and exiting several times in a longer trend. Where the LT system would ride the whole time hopefully. Its a question of the trade efficiency of your systems as to which method may be superior for reaching your goals. Additionally, rolling every month in the energies is just one choice.

If you have a LT system, you need to either trade a rather forward contract with possibly less liquidity, and account for your slippage and commissions appropriately, or trade the most liquid contracts and account for your slippage and commissions appropriately. But regardless, if you're in the trade for a long time, you're gonna have to roll contracts â€“ there is probably not such an animal as "ride the whole time" unless the contract is very forward and the whole time isn't too awfully long, and that has its own risks â€“ so it's not appropriate to have comm/slip only on entry/exit.

Just an opinion â€¦ but it seems to me that LT systems might "trade" a bit more often than we assume they do.

We have provisions for accounting for contract rolls in Trading Blox. You can even get this to match your rolling algorithm if you include the contract month as is possible with CSI data.

I should mention that slippage on rolls are generally much, much lower than normal entries and exits, at least from my experience. This is why we have provision for entering a different number in Trading Blox than for normal entries and exits.

I would also suggest that anyone who trades every month in the energies as a long-term trend follower is not being very smart. You could easily roll from December 2006 into March 2007 for example.

Question: sometimes it happens that using same strategy on continious backadjusted there's a signal (to buy or sell) that is different from standard contract(for example SH07). What signal should be taken into consideration?

Interesting. The CL data I downloaded from here had the contracts back-adjusted and rolling every month. So to accurately test a LT system, I would need different linked and adjusted data than what was provided, or need to jerry-rig my slippage points.

Any idea why slippage is less on rolling than on entry and exit? Not disbelieving but curious - is it because your have a target price on entry where on rollover you're just trying to swap?

So, then, LT systems still "trade" more than just on entry and exit. It's just not as big an issue as I initially thought, because slippage is less (wonder why) and you don't trade out every month.

But it's still an issue. Holding a position for 18 months isn't 36 trades like I thought, but one entry, one exit, and maybe 5 or 6 rolls, totalling 12 or 14 trades, 12 or 14 commissions, and slippage of different amounts.

In my case.
Rollover:I pick up the phone I buy and I sell. Slippage = 0; The price I am filled at is the price in my data and the price I use to roll with.

Orders: I place them a long way in advance. The most slippage I have ever had was one point. I have also had positive slippage, I don't know how that happened, so it is moot for me. The closer you get to the market the more you have to pay, as c.f. said.

If a market is netting 10 to 20 thousand per year per contract then four rollovers and thus in my case $56 in brokerage is irrelavant.

For those who trade a large portfolio of markets, an eye-opening exercise is to make a table showing what % of the total commission and slippage dollars, came from each market. One easy way to do this is to temporarily change your position sizing so that you're calculating #contracts from a fixed account size like $1 million or $10 million, and simulate the trading system plus the portfolio.

You MAY find that the "small, low volatility" markets (like Canola, LIBOR, Fed Funds, Banker's Acceptances, Oats, Short Sterling, Eurodollars, etc) are responsible for the great bulk of your total slippage and commissions. Why? Because your position sizing probably attempts to equalize risk across different markets, and since these "small" contracts are low risk, each position in them has a much larger number of contracts. You pay the same commission to trade one Eurodollar contract as one Ten Year Notes contract, but you trade lots lots more Eurodollars than TenYears. Voila, total Eurodollars costs greatly exceed total TenYear costs.

Slippage is more complicated. If you simulate slippage to be a fixed number of dollars per contract (as some books advise: $100 per contract to account for commissions+slippage), then the same results for commissions also apply to slippage: since you pay the same slippage to trade one ED as one TY, and since you trade lots lots more ED's than TY's, total slippage costs of ED will be dramatically greater than total slippage costs of TY.

But if you simulate slippage to be proportional to volatility (as Blox does, since Blox slippage is ~ ~ proportional to Range, and Range is one way to measure volatility), then the total slippage costs of all markets will be about the same. ED will have small slippage per contract (measured in dollars), times large numbers of contracts. TY will have large slippage $ per contract, times small numbers of contracts. The total for ED will be ~ ~ about the same as the total for TY.

It's a fun little exercise to see where your commission dollars and slippage dollars actually go. It may factor into your decisionmaking when choosing a portfolio. Or it may force you to confront questions such as "Why do I care how much the brokers make; shouldn't I focus on the profits that I make, and completely disregard how little or how much someone else makes?"

A simulator like Blox makes it especially easy to perform studies like this, since you have global parameters that individually control commissions, entry/exit slippage, and rollover slippage. You can do a run with all costs set to zero except commissions. You can do another run with all costs set to zero except entry/exit slippage. You can do another run with all costs set to zero except rollover slippage. The tool allows enormous flexibility for wild experimentation.

I'm not trying to comment on how big an issue comm/slip is per se, I am trying to comment on comm/slip being more of an issue for LT systems then I initially assumed based on entry/exit only.

Let's say you caught CL at its back-adjusted low of around 35 in Feb '02. Then you got out around a back-adjusted 80 in mid-2006. You gained 45 points at what, $1000 a big point. $45,000 per contract and without pyramiding, holding each contract for four years. There's $11K net per.

Granted, $56 in four rollovers isn't much compared to $11,000. I assume that's $7 per contract? But the key thought I had, and pardon the hell out of me if y'all don't think it's profound, is that you should be testing the system for one entry, one exit, and 16 rollovers on that trade, instead of testing the system for one entry and one exit on that trade. So your drag on the $45K is (1 + 1 + 16*2) * 7 = 34 * 7 =$238 and not $14. Commissions are much more of a factor in LT trading than I would assume, if I didn't charge slippage and commission on the rolls.

So in your example, if I backtest charging commission only on entry and exit, I reduce the profits by 0.03% on that trade. Big deal. However, if backtest charging commission on every roll, and roll that position four times a year, I reduce the profits by 0.5% on that trade.

you should be testing the system for one entry, one exit, and 16 rollovers on that trade, instead of testing the system for one entry and one exit on that trade.

Yes, exactly. Trading Blox (and some other programs) allow you to test in this way. In fact, as Sluggo points out, you can even test more complex scenarios than simply charging a fixed amount for entries, exits and rollovers.

Here is an attempt to answer your question about why entry/exit slippage and commission might be different from rollover slippage and commissions:

Assumption 1 - Slippage is generally greater when trading in the direction of current market momentum.

Assumption 2 - A "trend following" system, almost by definition, trades in the direction of current momentum.

Assumption 3 - Rollover trades are typically triggered on a fixed date or by a shift in volume or open interest. Momentum is not a factor. The rollover is as likely to trade against current market momentum than with it.

If we can swallow these 3 assumptions, then it follows that we might not be surprised to see greater slippage on entry and exit trades than we do on rollover trades.

There is another factor as well. In many pit traded markets spread trades (which is what a rollover is) have their own little area around the pit where they only trade spreads. Often, executing a rollover as a spread is more efficient than executing each leg outright. Same goes for commissions. It is not unheard of to have a different (lower) commission structure for spread trades.

Bill,
My point exactly. The brokerage you calculated is correct. If you think that 1/2% of your profit is substantial then you should consider that the interest on your profit will pay for that cost multiple times over. It is the slippage that comes from your trading strategy that kills your system rather than rolling contracts. I was primarily commenting on the initial post about slippage.
Blair

I think Jake is spot on here - rollover slippage is a different animal to entry/exit slippage. You can make the case that for reasonable markets the rollover slippage (relative to the back-adjusted contract used in testing) is less than the bid-offer in the spot contract added to the bid-offer in the next contract. As mentioned, for major markets like US bonds the rollover slippage is actually much less than the spot market bid-offer.

In any case the roll slippage is a function of TICKS rather than RANGE. It would be useful to be able to specify rollover slippage in ticks in the global parameters menu rather than in units of ATR. Ideally you would be able to specify a field in the futures dictionary for rollover slippage in ticks for each instrument. Is this possible c.f./Tim?

Many markets trade inter-month spreads at a smaller tick increment than the outright, so rolling can be very tight. For example in US T-bonds: "the minimum price fluctuations shall be in multiples of one-fourth of one-thirty-second point for inter-month spreads.

Get that Taleb guy on the phone, STAT! I just had a +25 standard deviation event occur: Positive (that is, profitable to me) slippage of 416 ticks, per contract, in Crude Oil. $4160 extra profit, to me, per contract. Honest.

On Friday one of my systems placed a stop order with my broker to sell August 08 crude at "the blue line", 125.09. The market traded there but my order was not filled. In theory (and in Blox), my order WAS filled. So today I placed a market order to "fix up the discrepancy", selling DRT. I got filled at 129.25 (!!) which is 4.16 handles, four hundred and sixteen ticks, better than my stop price. Positive slippage: woo hoo.

One of these days the same thing will probably happen, again on a Friday, except this time the market will zoom against me all weekend long and I'll get filled on Monday with MINUS four hundred and sixteen ticks of slippage. OK. But meanwhile, I'm keeping the extra money from this happy little fill.