In this new UniverseDefintions, a member, QC500, defines the QC500 Universe. This helper can be used to add that custom universe to the user algorithm (both in C# and Python).
- ConstituentsQC500GeneratorAlgorithm:
- Change monthly flag to be consistent with Selection Model that cannot use Schedule events.
- Use a Dictionary keyed by `Symbol` instead of `string`.
- Selector functions return `Universe.Unchanged` instead of empty list;
-Refactoring and more informative logging.
- QC500UniverseSelectionModel
- SelectFine methods were performing all the logics every day and it should be only once per month
- Log and return `Universe.Unchanged` before division by zero if universe drops to zero members after filtering before selection by sector.
- Refactoring
We didn't experience the expected performance improvements. Locally under
unit test there was aboout an order of magnitude throughput increase, but
when run against the history benchmark, this new approach was 60% slower.
We're reverting this for now to perform further analysis and better
understand the performance profiling of the python history stack.