{"push_id":835870806,"size":60,"distinct_size":1,"ref":"refs/heads/algo","head":"814c056c203eeefaccd4049b5ee54f56e4d8d671","before":"f0a708881dab2cd05609b5c60a246cfb733c2661","commits":[{"sha":"431bb54398b684a1163cfc62d2ebb77fd3bcf51c","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Fixes bug in PSAR constructor","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/431bb54398b684a1163cfc62d2ebb77fd3bcf51c"},{"sha":"02114a865217edc97ce409ca42fe14844d126bd0","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Prevent brokerages from sending 0 holding positions\n\nIBrokerage.GetAccountHoldings() is intended to help initialize the algorithm state.\nWe use the results from this to add extra securities to the algorithm. In some cases\nthe brokerages (specifically IB) will send back account positions with zero holdings,\nthis still causes us to add the security, and in the event it's an option holding,\nit will prematurely kill the algorithm as we don't support options yet.","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/02114a865217edc97ce409ca42fe14844d126bd0"},{"sha":"192053ca747ef14a22756f58674cefcc159e9f34","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Fixes bug in Symbol IComparable with string input\n\nAdds some tests for the Symbol IComparable implementation as well","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/192053ca747ef14a22756f58674cefcc159e9f34"},{"sha":"e8fa939bf2e5dda8422fcf4d62b2189346300f53","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Make resolution of DataQueueHandler overrideable","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/e8fa939bf2e5dda8422fcf4d62b2189346300f53"},{"sha":"c03178cc747fe989c263f431cab5110b9302b82c","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Make TradeBar.Parse methods public for reuse elsewhere","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/c03178cc747fe989c263f431cab5110b9302b82c"},{"sha":"b789fb3c47700853f0e2796d48592882784b2eb1","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Make resolution of IEnumerator overrideable\n\nThis is useful for tests so we can specify the input data exactly","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/b789fb3c47700853f0e2796d48592882784b2eb1"},{"sha":"b776662ee619a17df7ff8d4228d27b992c2f785f","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Don't finish live subscriptions\n\nWhen a live remote files exhaust the enumerator we don't want\nto end the stream, instead we'll just keep on refreshing the\nenumerator, this is especially required when dealing with live\nremote files that may be updating in real-time","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/b776662ee619a17df7ff8d4228d27b992c2f785f"},{"sha":"0db2287de89a16cd6835dcfe3b6b3b18fe72b481","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Adds LiveTradingDataFeedTests","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/0db2287de89a16cd6835dcfe3b6b3b18fe72b481"},{"sha":"1907f47d4a10df0fa9aa027b723b5d4f4a1ececd","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Change live feed custom padding, fix unsubscribe bug","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/1907f47d4a10df0fa9aa027b723b5d4f4a1ececd"},{"sha":"cd27c2833b357094b8a0c95dc15b70ab9e283950","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Rewrites the LiveTradingDataFeed to be enumerator centric\n\nThis refactor was an effort to bring into line the various concepts between the\nFileSystemDataFeed and the LiveTradingDataFeed. The former works using enumerators\nand a time sync loop that uses the concept of a frontier to decide when to 'pull-off'\ndata that's at or before the frontier. This makes the feed uninterested in how the\ndata (via enumerators) is provided, and only concerns itself with things at the\nsubscription level, that is, time syncing and universe selection invocation.\n\nThese concepts were brought over to the LiveTradingDataFeed with some modification.\nThis change heavily uses object composition of enumerators to handle the various\nconcerns that were previously within the enumerator loops in the LiveTradingDataFeed.\n\nSome enumerator types that help accomplish these concerns:\n\n\tFastForwardEnumerator \t\t- fast forwards an enumerator that contains old data\n\tRateLimitEnumerator\t\t\t- prevents an enumerator from being invoked too frequently\n\tTradeBarBuilderEnumerator \t- Builds trade bars from tick data\n\tFrontierAwareEnumerator\t\t- Emits the underlying when the frontier is on or after Current\n\tEnqueableEnumerator\t\t\t- Acts as a liason between a push/pull system using a queue","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/cd27c2833b357094b8a0c95dc15b70ab9e283950"},{"sha":"9f07e71bcd73cdf8038308868aa1916afdb9ac8f","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Adds ReaderWriterLockSlimExtensions to reduce verbosity\n\nUsage:\n\tvar slim = new ReaderWriterLockSlim();\n\tusing (slim.Read())\n\t{\n\t\t// perform read\n\t}\n\tusing (slim.Write())\n\t{\n\t\t// perform write\n\t}","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/9f07e71bcd73cdf8038308868aa1916afdb9ac8f"},{"sha":"dc3ecf8779ab3034c492207ec13c691d0871f904","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Implements an EnqueueRange with locking for universe selection\n\nUniverse selection comes in chunks of data and we don't want to let the feed\nsplit this data up, so we lock the enumerator so the feed is unable to dequeue\nuntil the entire universe has been enqueued","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/dc3ecf8779ab3034c492207ec13c691d0871f904"},{"sha":"7649b793b59dfd32dfb45a8a4dab827e87da9897","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Adds changed csproj, missed in previous commit","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/7649b793b59dfd32dfb45a8a4dab827e87da9897"},{"sha":"65956d919657a72e2df1172819a4b9ea40bf7bc7","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"RateLimit at 1x per increment, at least every 30min","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/65956d919657a72e2df1172819a4b9ea40bf7bc7"},{"sha":"f2b0e5cef6af9c076a3dcb12bd3f877d5b49a6ab","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Fix pegged CPU in GetNextTicksEnumerator\n\nLiveTradingDataFeed wraps the IDataQueueHandler.GetNextTicks() into\na never ending enumerator, the issue is when there are zero ticks,\nwe weren't sleeping, allowing other threads to do work.","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/f2b0e5cef6af9c076a3dcb12bd3f877d5b49a6ab"},{"sha":"5a800ac4dac39cdfd8a05cccb78c2eaee2439e24","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Reformat FrontierAwareEnumerator","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/5a800ac4dac39cdfd8a05cccb78c2eaee2439e24"},{"sha":"6ed514c7529b7698740c393c53dbd6bfc14b5e36","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Only sleep 1ms in LiveTradingDataFeed.Run\n\nThere's no reason good reason to tell this thread to sleep for almost a full second\n\nAlso removed the filtering from the raw tick stream, it was already done on the output stream","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/6ed514c7529b7698740c393c53dbd6bfc14b5e36"},{"sha":"18066b86a657c8c3e3f66040ff0e7853ada7b70c","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Various fixes for live coarse\n\nSet Start/EndDate in live mode properly\nAdds helper to create CoarseFundamental symbols\nDispose of removed subscriptions properly\nRemove time slice rounding\nSubscribe to the coarse symbols to get data into the exchange","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/18066b86a657c8c3e3f66040ff0e7853ada7b70c"},{"sha":"de2ba5aa50084558db73463d86c2bffa1ad17c41","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Prevent log writer from writing when disposed","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/de2ba5aa50084558db73463d86c2bffa1ad17c41"},{"sha":"0313c203aef222e5f183c0d5065f418630cf39f5","author":{"email":"66103e65c7893e2702853ac700df9599c5092236@gmail.com","name":"snugs"},"message":"Null check added subscriptions","distinct":false,"url":"https://api.github.com/repos/tzaavi/Lean/commits/0313c203aef222e5f183c0d5065f418630cf39f5"}]}