bfd319c91e
* OptionChain and OptionContract improvements - QCAlgorithm.AddUniverse will return the added Universe instance. - Adding new OptionChainedUniverseSelectionModel will monitor a Universe changes and will spwan new OptionChainUniverse from it's selections. Adding regression test Py/C#. - Adding new OptionContractUniverse that will own option contracts and their underlying symbol. Adding regression test - Fix double notification for security changes, bug seen in updated UniverseSelectionRegressionAlgorithm - Remove UniverseSelection special handling for Option and Future chains - Fix DataManager not removing SubscriptionDataConfigs for Subscriptions which finished before being removed from the universe - Refactor detection of user added Universe so that they do not get removed after calling the UniverseSelectionModel * Add check for option underlying price is set * Address reviews - Adding python regression algorithm for `AddOptionContractFromUniverseRegressionAlgorithm` and `AddOptionContractExpiresRegressionAlgorithm` - Rename QCAlgorithm new api method to `AddChainedOptionUniverse` * Fix universe refresh bug - Fix bug where a universe selection refresh would cause option or future chain universes from being removed. Adding regression algorithm reproducing the issue. * Rename new option universe Algorithm API method - Rename new option universe Algorith API method from AddChainedOptionUniverse to AddUniverseOptions - Rebase and update regression test order hash because of option expiration message changed