Roll timing and order generation with CSI

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.
Post Reply
RedRock
Roundtable Knight
Roundtable Knight
Posts: 944
Joined: Fri Jan 30, 2004 3:54 pm
Location: Arizona

Roll timing and order generation with CSI

Post by RedRock »

Say my roll date is fixed at 03-13-08 for the hogsters market. On 03-12-08 CSI pops up a box informing me that my contract will roll tomorrow. However, the data is output with the current contract tonight. Tomorrow, the 13th, a large move occurs which would have triggered an order in the new month, but which failed to do so for the old month, in which orders were placed. On the night of the 13th, csi has indeed rolled to the new month, and TB shows me a position based on having entered the new month, but for which no orders had been generated. I'm trying to see a solution (other than trying to get in after the fact), but am a bit perplexed at the moment.
sluggo
Roundtable Knight
Roundtable Knight
Posts: 2987
Joined: Fri Jun 11, 2004 2:50 pm

Post by sluggo »

Maybe this is economically insignificant for super long term trading, where one day early or late on an entry or exit won't make much difference at all.

Maybe it is also insignificant for super short term trading, where you can simply skip the trade entirely, confident that another new trade is coming along very soon.

So, if this phenomenon is ever non-negligible at all, perhaps it's only significant for intermediate term trading. (?)

If there are (for example) 6 entries and 6 exits per year, and if there are 5 rollover days per year, and if there are 252 market days per year, and if trade days follow a uniform random distribution, then the probability that one of those rollover days will coincide with one of those 12 entry-or-exit days, is (approximately)

1 - (240/252)^5

which is about 22%. There is a 22% probability that in some given market, sometime this year an entry signal or an exit signal will be executed on a rollover day. You could examine some backtest results and count up the number of times that an entry or exit actually did occur on a rollover day, to see whether 22% of market-years contained an entry or exit trade that coincided with a rollover day.

Solution? One possibility is BFMI, Brute Force and Massive Ignorance. You could have two copies of CSI Unfair Advantage, one set to roll on the close of the 12th and the other set to roll on the close of the 13th. Run Blox on both. Now on the evening of the 13th you'll have the set of signals for the old contract AND the set of signals for the new contract. You can use some mechanical algorithm (or subjective human judgement) to decide how to deploy both sets of signals in the marketplace.
alp
Roundtable Knight
Roundtable Knight
Posts: 309
Joined: Mon Aug 27, 2007 8:09 pm

Post by alp »

sluggo wrote:Solution? One possibility is BFMI, Brute Force and Massive Ignorance. You could have two copies of CSI Unfair Advantage, one set to roll on the close of the 12th and the other set to roll on the close of the 13th. Run Blox on both. Now on the evening of the 13th you'll have the set of signals for the old contract AND the set of signals for the new contract. You can use some mechanical algorithm (or subjective human judgement) to decide how to deploy both sets of signals in the marketplace.
I am not familiar with CSI. However if the trader has the freedom to set the roll date, then he could also defer the roll date when there is the possibility of coincidence.
LeapFrog
Roundtable Knight
Roundtable Knight
Posts: 695
Joined: Mon May 17, 2004 4:18 pm
Location: Boston, MA

Re: Roll timing and order generation with CSI

Post by LeapFrog »

RedRock wrote:Say my roll date is fixed at 03-13-08 for the hogsters market. On 03-12-08 CSI pops up a box informing me that my contract will roll tomorrow. However, the data is output with the current contract tonight. Tomorrow, the 13th, a large move occurs which would have triggered an order in the new month, but which failed to do so for the old month, in which orders were placed. On the night of the 13th, csi has indeed rolled to the new month, and TB shows me a position based on having entered the new month, but for which no orders had been generated. I'm trying to see a solution (other than trying to get in after the fact), but am a bit perplexed at the moment.
Is that really how it works with CSI? Don't have this problem with Pinnacle Data exactly. First off, I sure know way in advance my roll schedule for the products I trade - I'm sure you do to. If Pinnacle rolls tomorrow, that means tonight's data update will be with tomorrow's rolled products, meaning, I know tonight all my new rolled orders for tomorrow's market. Existing positions that get rolled or exited can then be dealt with - and now with the joy of electronic markets, can be rolled any old time we feel like it. And I find the wee hours of the night quite convenient for gaining a little edge on a roll. Rolls happen.
RedRock
Roundtable Knight
Roundtable Knight
Posts: 944
Joined: Fri Jan 30, 2004 3:54 pm
Location: Arizona

Re: Roll timing and order generation with CSI

Post by RedRock »

LeapFrog wrote:
RedRock wrote:Say my roll date is fixed at 03-13-08 for the hogsters market. On 03-12-08 CSI pops up a box informing me that my contract will roll tomorrow. However, the data is output with the current contract tonight. Tomorrow, the 13th, a large move occurs which would have triggered an order in the new month, but which failed to do so for the old month, in which orders were placed. On the night of the 13th, csi has indeed rolled to the new month, and TB shows me a position based on having entered the new month, but for which no orders had been generated. I'm trying to see a solution (other than trying to get in after the fact), but am a bit perplexed at the moment.
Is that really how it works with CSI?
Yes. Unless I'm missing some elementary setting.

Question also sent to CSI.... Holding my breath....

Sluggo, yours is a mathematical way of expressing "be philosophical about it". We all know taking a loss is nothing. Its easy. Missing a runaway profit however... Has me still sitting at my desk at 8 pm on a Friday Night.

If there is truly no way to set this up. Otherwise, Ill have to, As Sluggo suggested, in effect run two versions of the same market. One for my real roll day, and the other 1 day prior to have the proper contracts data in "advance". It would of course open up a whole new can of worms for study. :lol: New position vs protecting preexisting risk.

Ok, time for the weekend. cheers
AFJ Garner
Roundtable Knight
Roundtable Knight
Posts: 2071
Joined: Fri Apr 25, 2003 3:33 pm
Location: London
Contact:

Post by AFJ Garner »

It's also a lot of fun if you decide, for whatever reason, to change the basis on which you roll one, some or all of your contracts. Positions can appear and disappear all over the place. Discretion combined with massive ignorance and a devil may care attitude was the route I eventually chose over worry!
Roger Rines
Roundtable Knight
Roundtable Knight
Posts: 2038
Joined: Wed Oct 06, 2004 10:52 am
Location: San Marcos, CA

Post by Roger Rines »

Hi Redrock,
I've only had what you explained happen in the physical markets and found that with watching the spread, volume and open interest changes in each market this can be avoided by changing the roll timing for that date period. It gets avoided because spread, volume and or Open Interest usually show the shift in market sentiment as a an early warning sign giving the trader ample time to make the switch to where the money is going.

Years ago I was caught by the issue you mentioned, along with my need to have the software always reflect reality, are just some of the reasons we do our rolls manually. Our manual process keeps us from having to fiddle with the rigid simple over controlling back-adjusting processes data vendors provide.
RedRock
Roundtable Knight
Roundtable Knight
Posts: 944
Joined: Fri Jan 30, 2004 3:54 pm
Location: Arizona

Post by RedRock »

alp wrote: I am not familiar with CSI. However if the trader has the freedom to set the roll date, then he could also defer the roll date when there is the possibility of coincidence.
Good point Alp,

I did try this the following day after it was clear I wasn't going to get a decent entry. I tried jockeying the roll around this way and that, trouble is, by that point, all the combinations would have already entered.

AFJ,
A bit of the Devil may care seems necessary. Ive had similar things in the past and half the time I'm able to get in reasonably well. This one rose up and bit me in the tail out of clear calm water... Just made me feel like. Well, ya know when you feel like you're doing something stupid...again... and you say to yourself.."never again". Well thats where my head was. Even though I followed my orders to the letter, the sub system, caused the issue...

Which brings up Rogers points...
I do understand now why controlling your own roll process had become so important to you. If one does not have the underlying data totally in view, the unlikely, becomes possible.

I think for me this will have to evolve into what will ultimately "work" and let me be at peace with the process. On a grand scale, I envision a wall of screens displaying the spread, roll statistics, and system positions for each system. On the more feasible shorter term, Ill just have make next contract position status available, night before my roll date. And especially so in markets which trade dis similarly between expirations.

Thanks to all~!
rr
sluggo
Roundtable Knight
Roundtable Knight
Posts: 2987
Joined: Fri Jun 11, 2004 2:50 pm

Post by sluggo »

It may or may not be obvious, that there is only a problem if your system trades using stop orders or limit orders. If your system trades using market orders, this problem disappears.

Examples of market order systems include the Blox presupplied Bollinger Band Breakout and ATR Channel Breakout. Also the presupplied Dual- and Triple Moving Average systems, if you select "Use Stops = False". Same for the ADX system.
Post Reply