Commit Graph

4 Commits

Author SHA1 Message Date
Martin Molinero 714b98f832 Performance improvements for Options
- Replace Enum to string operations on Options enums, since it's
  expensive
- Replace Enum IsDefined check since it uses reflection
- Improve OptionFilterUniverse linq operations
- Improve performance of SecurityIdentifier properties to avoid having
  to extract them from properties always
- Avoid calling ToList for already list data collections (it creates a
  copy)
- Avoid iterating over securities for which we have no holdings when
  calculating TPV or MarginUsed
2020-05-05 21:14:12 -03:00
Michael Handschuh 379f6fee95 Adds OptionChainUniverse and association data collection type 2016-04-07 13:39:26 -04:00
snugs 18d6df4efd Fixes bug in BaseDataCollection.Clone
The bug is it wasn't there! :)
2015-12-09 15:18:24 -05:00
snugs cd27c2833b Rewrites the LiveTradingDataFeed to be enumerator centric
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
2015-10-15 11:10:54 -04:00