Commit Graph

4 Commits

Author SHA1 Message Date
Martin Molinero c226914322 Value types thread safety changes
- Refactor ZipDataCacheProvider to avoid value types thread issues, it
  will now use a timer. Add missing dispose calls.
- Synchronizer won't share the `SubscriptionFrontierTimeProvider`
  instance since it's not thread safe and shouldn't be called
- Fix BacktestingResultHandler `_daysProcessed` thread safety
- Fixing `RealTimeScheduleEventService` thread safety
2020-05-01 16:58:29 -03:00
Martin Molinero 491cae2c1d Fix ProcessSplitSymbols exception
- `UserDefinedUniverse` will no longer be removed as a data subscription.
- When `algorithm.AddData()` is called a universe selection data point
will be added to the `UserDefinedUniverse` subscription to trigger
selection and add the requested data.
- `DataManager` will make sure an active subscriptions
`SubscriptionDataConfig` will be present in the configuration collection
- Adding unit and regression tests
2019-12-12 17:14:47 -03:00
Martin Molinero 4b1cb2c283 SubscriptionFrontierTimeProvider will advance new subscriptions
- `SubscriptionFrontierTimeProvider` will advance new subscriptions to find the current emit time of the enumerator. This will make enumeration more deterministic, since we will not skip any time step of the new enumerators.
- Adding a just in case flag to the backtesting `Synchronizer` to retry creating a new time slice when the time has not advanced but there is data in the slice, this could happen with subscriptions added after initialize using algorithm.AddSecurity() API, where the subscription start time is the current time loop (but should just happen once)
2019-08-15 15:46:07 -03:00
Martin Molinero ff2ef7962c SubscriptionSynchronizer will depend on a Time Provider for determining next frontier.
Adding new SubscriptionFrontierTimeProvider which updates current time based on the current data emit time of all subscriptions.
2018-09-06 15:48:07 -03:00