- Removing LiveTradingDataFeed bridge. LTDF will yield return Slices
directly from the enumerator, as done in the FSDF. The objective is for
both to share the same logic here and for it to be extracted in a next
PR
- Removing now unnecessary DataFeed running thread
- Adding if (_isStopping) { break; } statement for BaseDataExchange.
This is to avoid the thread to continue looping over the enumerators when stopping. Impacts when there are many securities.
* Fixes 5 warnings with code CD1572
* Adds the Xml Comment parameter and implements the missing selector parameter
* Fixes rest of the 13 warnings with code CS1572
This refactor was an effort to bring into line the various concepts between the
FileSystemDataFeed and the LiveTradingDataFeed. The former works using enumerators
and a time sync loop that uses the concept of a frontier to decide when to 'pull-off'
data that's at or before the frontier. This makes the feed uninterested in how the
data (via enumerators) is provided, and only concerns itself with things at the
subscription level, that is, time syncing and universe selection invocation.
These concepts were brought over to the LiveTradingDataFeed with some modification.
This change heavily uses object composition of enumerators to handle the various
concerns that were previously within the enumerator loops in the LiveTradingDataFeed.
Some enumerator types that help accomplish these concerns:
FastForwardEnumerator - fast forwards an enumerator that contains old data
RateLimitEnumerator - prevents an enumerator from being invoked too frequently
TradeBarBuilderEnumerator - Builds trade bars from tick data
FrontierAwareEnumerator - Emits the underlying when the frontier is on or after Current
EnqueableEnumerator - Acts as a liason between a push/pull system using a queue