According to the fundamental universe documentation, the universe selection arrives at 6/7am and runs for live algorithms between 7 and 8 AM. Many brokers allow pre-market trading starting at 7am, meaning the universe selection would not be done in time. Is this documentation still accurate? Is there an alternative? I have looked at the ScheduledUniverseSelectionModel, but it does not provide a list of fundamental data. Is there a convenient way to retrieve a list of fundamental data for all US equities? While QCAlgorithm.fundamentals() accepts a list of Symbols, I can't find a way to retrieve a list of all US equity symbols dynamically. Even if this approach would work, the fundamental data would be 1 day old.
Jared Broad
Sorry there's no way to make it faster. We process a significant volume of data and it takes time to move across the networks and distribute. Fundamental data is slow to change as well (most changes quarterly) so there isn't a strong incentive to optimize this further. Can you please share what are you trying to do with it that requires faster updates?
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.
Lance Kersey
One thing my universe filters on is price, which in this case I would want the closing price of the previous day. The workaround is a history request, but this is slow for thousands of securities.
I still filter on other criteria only available in the fundamental data. As the strategy is designed to scalp the 7am volatility, whenever the strategy is restarted, it won't be ready to trade at 7am. Furthermore, the strategy uses an indicator primed with 50 days of 1 minute data, for a universe of about 2800 securities. This takes several minutes, and if run after 7am can actually interfere with the live trading timing even at minute resolution, and I am running at second resolution. As such, I need the heavy lifting done before 7am.
So far I have converted the strategy to C# so the history requests and backtests are faster. I select the universe with the fundamental selection model, and am currently experimenting with priming the indicators gradually in chunks as soon as the universe is selected, but I'm not yet sure if I can make the chunks small enough to not interfere with the second resolution updates, but large enough that I don't miss too much of the morning trading window. The backup plan is to use a scheduled event to prime the indicators overnight, but then I lose the first full trading day every time the strategy is restarted.
A more ideal solution would be if I could retrieve the full list of fundamental data manually at say 4 am in a scheduled selection model, without having to wait for the fundamental selection model. I would then have plenty of time to query up-to-date closing prices from the prior day for universe selection, and prime the indicators before trading starts at 7am. The problem I have not yet been able to overcome is how to get the full list of fundamental data outside the fundamental selection model. Manual queries of fundamental data requires passing in the symbols, and I can't find the full list of 10,000+ symbols anywhere.
If you have any pointers for this problem, any other ideas, that would be greatly appreciated!
Lance Kersey
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.
To unlock posting to the community forums please complete at least 30% of Boot Camp.
You can continue your Boot Camp training progress from the terminal. We hope to see you in the community soon!