Commit Graph

23 Commits

Author SHA1 Message Date
Martin Molinero f1ecfd5784 Move DataManager in front of DataFeed
- Completly move `DataManager` in front of `DataFeed`. Specifically
`AddSubscription()` and `RemoveSubscription()` implementations. Also
removing IDataFeed.Subscriptions
2018-10-29 16:13:27 -03:00
Stefano Raggi 5629b9d456 Clean up result handlers 2018-08-17 18:48:39 +02:00
AlexCatarino 9e92c878bd Exclude warmup period from sampling data 2018-08-01 18:49:49 +01:00
Stefano Raggi f37d0cc962 Optimize loops for performance on cashbook and securities 2017-12-20 21:58:59 +01:00
Stefano Raggi c6aba7bfec Reduce full locking on ConcurrentDictionary objects
This PR is an attempt to reduce contention in concurrent dictionaries, replacing method calls using full locks with lock-free equivalents:

- dictionary.Count -> dictionary.Skip(0).Count()
- dictionary.Keys -> dictionary.Select(x => x.Key)
- dictionary.Values -> dictionary.Select(x => x.Value)

The most frequent usages of these methods are: CashBook, SecurityManager, UniverseManager and indirectly, SecurityPortfolioManager.

The reasons for this update are explained very clearly in this article:
https://arbel.net/2013/02/03/best-practices-for-using-concurrentdictionary/
2017-12-20 17:18:54 +01:00
Jared Broad aefdfcc411 Add the cashbook to the result packet 2017-10-23 17:00:28 -04:00
Andrew b77502f35b All Results handler inherit from the BaseResultsHandler 2017-08-08 12:52:12 -04:00
Andrew 05ec92349e Added SystemDebugPacket 2017-02-24 17:51:57 -05:00
Andrew a143b62ff4 Add userId to the runtime error packet 2017-01-31 16:41:45 -05:00
AlexCatarino b6c143d64b Adds timeout to prevent potential hang 2016-09-28 15:18:33 -03:00
AlexCatarino 183cb917fe Makes IAlgorithm Debug/Error/LogMessages a ConcurrentQueue
IAlgorithm DebugMessage, ErrorMessage and LogMessage are now ConcurrentQueue<string> instead of List<string> because List.Add is not thread safe.
Copying a list (using ToList()) at LiveTradingResultHandler while adding an element to it at QCAlgorithm caused a runtime error.
2016-09-27 14:02:28 -03:00
snugs f1968d1217 Remove algo id from IResultHandler.SendStatusUpdate
IResultHandler has an Initialize method which accepts a job, so all instances should know
they job (algo id, proj id, user id) and so these methods shouldn't be requiring the field
2016-01-11 15:11:08 -05:00
QuantConnect 2d9f8cb9e3 Updated charting lib to use series indexes instead of chart types. Obsolete ChartType enum 2015-12-10 13:03:50 -05:00
Stefano Raggi fac6f46a9a New Statistics implementation
Added Trade and TradeBuilder classes
Added UtcTime and OrderFee property to OrderEvent class
Added AlgorithmPerformance class with a few metrics + tests
Added portfolio statistics + rolling statistics

Closes #30 via PR #164

Thanks @SteffanoRaggi!
2015-09-16 20:48:02 -04:00
snugs e1938baafe Clean up using directives 2015-09-01 22:17:35 -04:00
snugs df79ce30c2 Adds the Symbol type
This includes updating all usages of symbol as a security identifier to use the new type.
The type includes a unique field, SID, as well as the current ticker's value. This allows
for consistent addressability while also allowing the ticker to evolve over time with the
mapping changes.

Effort was made to maintain compile and runtime backwards compatibility.
2015-09-01 22:17:10 -04:00
QuantConnect 19e733e9d8 Updated benchmark to its own chart since indexes don't match 2015-08-19 12:35:01 -04:00
QuantConnect 780bbc8186 Benchmark moved to stacked on equity plot, bug fix time in live mode 2015-08-18 21:31:33 -04:00
Ray Bohac 1b9c1b7921 Initial implementation of custom benchmarks 2015-08-05 15:30:34 -04:00
snugs 9c1b0f4616 Move order/order queue storage to transaction handler
Expose order and order processing ability via IOrderProvider/IOrderProcessor
2015-07-02 15:07:35 -04:00
snugs 4de2ec4070 Make Engine an instance
Updated all interfaces to accept dependencies via Initialize methods
2015-06-18 13:50:11 -04:00
QuantConnect fde0cbed3a Strip out block quote section header comments 2015-06-13 16:04:27 -04:00
QuantConnect ca4a49e70d Rework GetResultHandler to use type loader; first desktop UX implementation; functional logger 2015-06-07 03:08:33 -04:00