Conversation
QNDX lists a single annual June contract instead of a quarterly roll, so it uses a June expiration cycle in the same way SDA uses December.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The QNDX part of #9622. I did the other three tickers in #9692 and left this one out because the issue said the expiry model needed a decision first.
Adds the ticker constant, a June expiration cycle, the expiry function, the symbol properties row and the market hours entry.
QNDX doesn't roll quarterly like NQ. There is one contract and it expires the 2nd Friday of June 2027, so I treated it as a yearly June contract, the same way
SP500AnnualDividendIndexusesFutureExpirationCycles.December. Worth checking though: CME only lists that one contract, so "every June" is my reading and not something the specs actually say. If it rolls to another month I'll change it.Market hours are a copy of
Future-cme-NQ, which already matches the hours CME lists for QNDX. That is why the json diff is big, the entry carries all the old holidays with it.Related Issue
Closes #9622
Motivation and Context
AddFuture("QNDX")can't find the ticker today, so you can't trade it live or get live IB data even though IB lists the product. No backtest data for it yet, as the issue mentions.Requires Documentation Change
No.
How Has This Been Tested?
Added
SpotQuotedNasdaq100RollsForwardToListedContractMonth. It asks for June 2027 and for July 2026 to check the roll forward, and both give 11 Jun 2027 at 4:00 p.m. ET, which is the last trade date on CME's calendar.FuturesExpiryFunctionsTests207/207,MarketHoursDatabaseTests111/111,SymbolPropertiesDatabaseTests42/42 andSymbolRepresentationTests102/102 pass.FuturesExpiryFunctions_AllFutures_ShouldHaveExpiryFunctioncovers the new constant too.Types of changes
Checklist:
bug-<issue#>-<description>orfeature-<issue#>-<description>