Futures and Future Options file-based universes#8480
Merged
jhonabreul merged 81 commits intoQuantConnect:masterfrom Mar 25, 2025
Merged
Futures and Future Options file-based universes#8480jhonabreul merged 81 commits intoQuantConnect:masterfrom
jhonabreul merged 81 commits intoQuantConnect:masterfrom
Conversation
aba9f13 to
d00ff8e
Compare
Martin-Molinero
approved these changes
Jan 21, 2025
a0377ce to
0a6763e
Compare
0a6763e to
4c8933b
Compare
00c01b5 to
196b1d4
Compare
Martin-Molinero
approved these changes
Mar 19, 2025
Also refactor future chain provider to use the new FutureUniverse instead of zip file names
Also, remove IDerivativeSecurity interface from Future
05728c0 to
f4f7c1c
Compare
Martin-Molinero
approved these changes
Mar 25, 2025
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
FutureUniversetype to handle Futures selection.QCAlgorithm.FuturesChainandQCAlgorithm.FuturesChainsAPI following AddQCAlgorithm.OptionChain()method to fetch option chains #8316,QCAlgorithm'sOptionChain()api refactor #8334, and Universe data frames normalization #8385Algorithms with changed stats:
The way now futures and fops selection happens just changed the times at which orders are being placed.
Also, data points count is reduced the same way as with #8212 and history data points is increased in some algorithms due to history requests being made for getting futures and future options chains.
GC map file added data:
Needed for
FutureOptionMultipleContractsInDifferentContractMonthsWithSameUnderlyingFutureRegressionAlgorithmsince there was no mapping data for the algorithm's date range. Now it is needed in order for theSubscriptionDataReaderto be able to get a tradable date and readFutureUniversefiles.Benchmarks
Single Future, selecting all contracts and adding options for each contract:
This benchmark tests selection only, since options are loaded but not selected, so no market data is loaded for options:
The algorithm only runs for 6 months and is stopped using
Quit()Master: ~21s (on average)
Branch: ~2.15s
This next benchmark is the same as the one above, but uses 6 futures instead on a single one. The algorithm only runs for 2 months and is stopped using
Quit()Master: ~44.2s
Branch: ~3.16s
Related Issue
Closes #6861
Closes #4821
Closes #8370
Motivation and Context
Requires Documentation Change
How Has This Been Tested?
Types of changes
Checklist:
bug-<issue#>-<description>orfeature-<issue#>-<description>