This helper method can be used to warm up indicators individually whether it is created after the security has been added to the universe or before (universe selection scenario).
- Fix the subscription addition to `SubcriptionManager` when a History request is made before the security is created, since it should be not added.
- `IndicatorBase.Update` does not throw when an input is older than the last update. We only log (adds QuantConnect.Logging dependency to QuantConnect.Indicators) the error and discard the addition. Removes unit test for that exception.
Invoking the `Activator` is costly. Instead, we use the `IndicatorDataPoint` constructor and cast it to `object` then to `T`, since it requires less CPU time than invoking the reflection libraries.
Moves indicator Update(DateTime, decimal) method overload from the extension class to the base class.
With this change, python algorithms can access this overload since pythonnet doesn't support extension methods.
Refactors existing consolidators, indicators, and helper methods to depend on
IBaseData instead of BaseData. These updates also defines an IBaseDataBar to
act as an abstraction point between TradeBar and QuoteBar.
Removed IDataConsolidator from IndicatorBase
Renamed IndicatorBase.DataConsolidated -> Updated
ConstantIndicator is now sealed
IndicatorBase.Current is now protected set to allow ConstantIndicator to set it upon construction
CompositeIndicator wires up events on left/right to auto update himself following Updated events from both left/right (unless one is constant, this will not work with two constant indicators as left/right)
IndicatorBase now implements IDataConsolidated and fires the DataConsolidated event after each update.
The Of extension method now attaches a handler to the 'first' to update the 'second' and returns the reference to the 'second' for method chaining. See OfExtensionMethodTests.cs