@Fat Tails, on oil, I have switched to the new contract when the volume moves to the new contract, which is often a day or two prior to the official rollover date--but I can't remember how this works with merging. If I recall, I had an issue where it didn't back-adjust until the actual rollover date. But I think that the offset value is not calculated until the rollover date, so there will be a gap if I change the rollover date manually ... with this in mind, the whole point is, what should I do to get the data merged and back-adjusted if I roll over before the official rollover date?
EDIT: Also, with Kinetick or IQFeed real-time feeds, if I'm doing the method of merging back-adjusted non-continuous contracts, does it matter whether I specify that the feed is to "use back-adjusted data" in the account connection options? I'd like to also be able to look at the continuous contract I suppose, but I don't plan on using it much. I noticed that if I tell it to use back-adjusted data that the continuous contract (##-##) becomes almost identical to the merged, back-adjusted current month contract. But will this setting affect anything other than the continuous contract?
There is no official rollover date for oil. The default rollover date shown by NinjaTrader is not an official rollover date.
Not, if you have entered the rollover date correctly.
The offset is calculated by NinjaTrader from daily data as the difference between the closing (settlement) prices of the old and new front month contract on the day prior to rollover date.If you change the rollover date under instrument settings, you should also make sure to delete the offset, if it has already been entered or calculated. NinjaTrader will then calculate the offset correctly.
The merge-backajdusted contract is generated from different contract months by using the offsets and there will be no gaps at the start of the rollover day session.
Continuous contracts cannot be merged. The only type of contract that can be merged are single month contracts. If you want to use backadjusted data, this has nothing to do with account connection. NinjaTrader always loads the single month contracts from Kinetick. If you have selected 'MergeBackAdjusted' under Tools -> Options -> Data, NinjaTrader will display mergebackadjusted contracts for all instruments with MergePolicy 'UseGlobalSettings'. The merge policy selected under instrument settings overrides the global merge policy selected under Tools -> Options -> Data.
Continuous contracts are built from single months contracts as mergebackadjusted contracts are. There main differences are:
-> Continuous contract: It is built from several single months contracts by gradually increasing the weight of the new front month contract. This is done by Kinetick, so NinjaTrader just downloads the data and the data is displayed as it is. There are many different ways to build continuous contracts, for more details you need to contact your data provider. Continous contracts will show approixately correct price levels over longer periods, but the size of the swings is distorted and they cannot be used for backtesting. The merge policy has will have no impact on continuous contracts, as there is nothing to merge.
-> MergeBackAdjusted contract: This is built from several single month contracts as well by switching contracts on selected rollover dates and by applying offsets to compensate the gaps between the old and new front month contracts. NinjaTrader downloads the single month contract and builds the mergebackajdusted contract from that data. The mergebackadjusted contract is the correct contract to use for backtesting, as the applied offset reflects your gain/loss, when rolling a position into the new front month contract.
The following user says Thank You to Fat Tails for this post:
This finally makes more sense to me--a big "duh" I'm sure, but the offsets are used only for back-adjusting data when merging contracts. Makes perfect sense. Let me be sure I get the procedure though, with the following scenario:
So if it's Tuesday the 20th of the month at 5:30pm ET, and the next month contract has almost the same volume, and I decide I want to roll over to the new contract beginning with the opening of the globex session at 6pm, then I would set the rollover date in the new month contract to the 21st, and be sure there is no offset, as NT will calculate it. Of course, I need to make sure the daily bar for the current day has updated to the correct settlement price. Does that sound about right?
Based on your explanation it seems that people could have slightly different charts based back-adjusted, merged contracts, if the rollover date was one or two days off. Not much of course, but just a bit. Is that correct?
NT has a setting under the account connections for IQFeed and Kinetick called "Use back adjusted data." If this is checked, then the continuous (##-##) contract is displayed as almost identical to a back-adjusted merged single-month contract. However, if it is not checked, the contract is displayed as-is and the contracts differ as you explain in post #3 in this thread. I don't know if NT is doing the back-adjusting, or if it's a server-side setting with IQFeed, but the continuous contract is displayed quite differently depending on this option, which is set in the account connection and apparently has nothing to do with the global merge policy.
That is the expiry date. Some contracts, in particular index and currency futures have official rollover dates, when they should be rolled. These are different from the expiry date. Some exmaples here:
From the limited testing I just did, it seems to only affect the continuous contract. With this option checked, a single month contract displays as expected, with sparse activity many months back, so it does not look adjusted at all.
The following user says Thank You to josh for this post:
I just noticed in the first PDF document you reference above this text:
Yet the globex session for the equity products, to my knowledge, begins at 5pm CT / 6pm ET: E-mini Dow ($5)
What is the deal here, anyone know?
Finally this: I had to change the rollover date in NinjaTrader for YM (and I suspect ES, NQ, and so on) to 6/10/2011, though the default in NT was 6/9/2011. It seems NT says that the "rollover date" is the first day of the new contract, whereas the CME's definition of rollover date (as mentioned in the same document referenced above) is the last day of the old contract.
When the rollover date was 6/9 in NT, the data on 6/9 was coming from the new contract, whereas it should have been from the old contract. When I switched it to 6/10, then the 6/9 data correctly displayed data from the old contract, and the 6/10 showed the data from the new contract.
Your knowledge can be improved. The Globex session for equity products starts at 3:30 PM Central Time. Only exception is Sunday evening, when the Globex session starts at 5:00 PM Central Time. You can check the contract specifications here:
No you do not need to change the rollover date. The correct rollover date for index futures is June 9, 2010 (Thursday). And no, on rollover date the volume has already shifted to the new contract, so you definitely want to display the new contract on rollover date. The best point to roll is at the end of the session prior to rollover date or at the beginning - or prior to the beginning - of the RTH session on rollover date.
NinjaTrader requires that you enter the correct rollover date, which is June 9 to calculate the correct offsets. The offset is calculated as the difference from the closing prices of the new and old front month contracts. NinjaTrader uses daily data to calculate the offsets, in case you use Kinetick EOD the offset is calculated from the settlement prices.
If you have a look at the CME website you will find the following data for Wednesday, June 8 (day prior to rollover day)
settlement YM 06-11 -> 12030
settlement YM 09-11 -> 11962
For the merge-backadjusted contract you would therefore want to apply a negative offset of 68 points to the old front month contract - just to move that DataSeries down at the level of YM 09-11 - , which closes the gap.
If you select the correct rollover day (you need to delete your false offset to allow for automatic recalculation), NinjaTrader will display an Offset of -68 for YM.
The following user says Thank You to Fat Tails for this post:
Thanks for the info-- I was confusing the CL globex start time of 5:00pm central with the equity indexes.
Thanks, I have that information, yet here is my problem in understanding. The attached screen shot shows my contract with the rollover date set to 6/9, the "correct" date. The volume is only 39K, as it's with the 06-11 contract. However, on that day, Thursday, the 09-11 contract had much more volume. It seems that from the standpoint of a volume analysis, the new contract is receiving more volume on Thursday, and hence it is really the "new contract." Are you saying that that doesn't matter at all for YM/ES/etc.?
Yes, volume only shifted to the new contract on Friday. Now, rollover date means that investors shift their positions from the old front month to the new front month contract. At what stage you want to shift your contract depends on different criteria.
-> Liquidity: liquidity is still better for the old contract on rollover day, so as a day trader you might prefer the old contract
-> Data consistency: The question is whether you get different offsets and thus different indicator results, if you do not roll on Thursday but on Friday. Let us have a look at the offsets calculated from the settlement prices of Wednesday and Thursday
ES: -5.50 for rollover on Thursday, -5.50 for rollover on Friday
YM: -68 for rollover on Thursday, -69 for rollover on Friday
NQ: -3.75 for rollover on Thursday, -3.50 for rollover on Friday
TF: -3.60 for rollover on Thursday, -3.30 for rollover on Friday
The difference is not really big. In the end it depends on what the others are using.
The following 3 users say Thank You to Fat Tails for this post:
I want to trade the contract with the greatest volume. I use this RolloverVolume indicator to identify which contract had the greatest volume for the day before. I have it on one of my charts, and around roll over dates, I check in the morning before I start trading to see which contract I should be trading for that day.