Skip to content

Add Spot-Quoted Nasdaq-100 (QNDX) futures - #9800

Open
0xpinara wants to merge 1 commit into
QuantConnect:masterfrom
0xpinara:feature-9622-qndx-spot-quoted-nasdaq-100
Open

0xpinara wants to merge 1 commit into
QuantConnect:masterfrom
0xpinara:feature-9622-qndx-spot-quoted-nasdaq-100

Conversation

@0xpinara

Copy link
Copy Markdown
Contributor

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 SP500AnnualDividendIndex uses FutureExpirationCycles.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.

FuturesExpiryFunctionsTests 207/207, MarketHoursDatabaseTests 111/111, SymbolPropertiesDatabaseTests 42/42 and SymbolRepresentationTests 102/102 pass. FuturesExpiryFunctions_AllFutures_ShouldHaveExpiryFunction covers the new constant too.

Types of changes

  • New feature (non-breaking change which adds functionality)

Checklist:

  • My code follows the code style of this project.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
  • My branch follows the naming convention bug-<issue#>-<description> or feature-<issue#>-<description>

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add CME 1-Ounce Gold (1OZ), Spot-Quoted Nasdaq-100 (QNDX), and Micro Ultra 10-Year Treasury Note (MWN) futures

1 participant