Tags: MyIntelligenceAgency/Lean
Tags
Remove python stubs directory (QuantConnect#4955) * Remove python stubs directory - Removing python stubs directory since after QuantConnect#4899 it was been replaced by a python package `quantconnect-stubs`. - Reverting IDE settings using the stubs folder PR QuantConnect#4657 * Revert "Adds Python stubs location definition for PyCharm and Visual Studio Code (QuantConnect#4657)" This reverts commit aded66e. * Address self-review: Provide list of imports and refactor python readme Co-authored-by: Gerardo Salazar <gsalaz9800@gmail.com>
GDAXDownloader : save data int the right ticker name (QuantConnect#4799) * Update crypto entries in SPBD - Update values for GDAX and Bitfinex, with latest values from exchanges - Update symbols with >3 letters - [Fix] Remove same base-quote entries * Update unit tests Increment in precision given smaller lot sizes in SPDB crypto entries. * Add GDAX symbol properties downloader (unit test) * Update GDAX symbol properties database * Add BrokerageSymbol to symbol properties database * Update GDAX symbol properties * Address review - Rename BrokerageSymbol to MarketTicker * Add GDAX symbol mapper * Update GDAXBrokerage to use symbol mapper * Fix GDAX brokerage unit tests * Replace GDAXSymbolMapper with SymbolPropertiesDatabaseSymbolMapper * Address review - use Symbol key in dictionaries * Rename BrokerageSymbol to MarketTicker * Save GDAX history in the real ticker folder * rename tickerMapper to symbolMapper * fix gdaxdownloader help message * Save GDAX history in the real ticker folder * rename tickerMapper to symbolMapper * fix gdaxdownloader help message * use SymbolPropertiesDatabaseSymbolMapper * address review Co-authored-by: JJD <jjdambrosio@gmail.com> Co-authored-by: Stefano Raggi <stefano.raggi67@gmail.com> Co-authored-by: Martin-Molinero <martin@quantconnect.com>
Update CoinApi symbol mapping + symbol properties database (QuantConn… …ect#4888) * Update crypto entries in SPBD - Update values for GDAX and Bitfinex, with latest values from exchanges - Update symbols with >3 letters - [Fix] Remove same base-quote entries * Update unit tests Increment in precision given smaller lot sizes in SPDB crypto entries. * Add GDAX symbol properties downloader (unit test) * Update GDAX symbol properties database * Add BrokerageSymbol to symbol properties database * Update GDAX symbol properties * Address review - Rename BrokerageSymbol to MarketTicker * Add GDAX symbol mapper * Update GDAXBrokerage to use symbol mapper * Fix GDAX brokerage unit tests * Replace GDAXSymbolMapper with SymbolPropertiesDatabaseSymbolMapper * Address review - use Symbol key in dictionaries * Rename BrokerageSymbol to MarketTicker * Update unit test * Add Bitfinex symbol properties downloader (unit test) * Add Bitfinex symbol market ticker to downloader * Update Bitfinex symbol properties database * Update BitfinexBrokerage to use SymbolPropertiesDatabaseSymbolMapper * Remove Bitfinex test symbols from db * Update Binance symbol properties database * Update BinanceBrokerage to use SymbolPropertiesDatabaseSymbolMapper * Add missing Binance test case * Update symbol properties database - gdax, bitfinex, binance * Update CoinApi symbol mapper for new SPDB * Exclude Bitfinex BCH pre-2018-fork in CoinApiSymbolMapper * Remove unused properties * Add CoinApi mappings Co-authored-by: JJD <jjdambrosio@gmail.com>
IB Brokerage Updates (QuantConnect#4945) * Update C# API DLL up to Oct 30, 2020 - InteractiveBrokers/tws-api@a8e6698 * Add extra account information logging after connect
Fixes weeklies parsing, causing certain futures to be inaccessible in… … QCAlgorithm (QuantConnect#4936) * Fixes weeklies parsing, causing certain futures to be inaccessible in Algorithm The FuturesExpiryFunction expects the contract month of the Future, not the expiration. As a result, the contract gets filtered as a weekly contract, rather than as a standard due to the discrepancy between the expiry dates when the contract month differs from the expiry date's month. A very important fact to note is that futures can and do expire prior to the contract month. BZ,(brent crude financial futures) expire two months prior to the contract month, CL one month prior, etc. There has been an addition that contains a "reverse" futures expiry function lookup table. We use this to lookup the contract month to re-calculate the Future expiry. This PR also fixes dairy and adds extra expiry dates. Dairy can have an expiry *after* the contract month, so a new path was added to the SymbolRepresentation to ensure that these contracts are loaded correctly. * Address review: Adds tests and fixes bug in SymbolRepresentation * Updates SID comment on `Date` property to reflect fact that we use future expiry for its value * Fixes bug in SymbolRepresentation where expiration day would always be 01 when parsing a contract with an expiration after the contract month * Fixes bug in SybmolRepresentation where expiration year would be four digits long when parsing a contract with an expiration after the contract month * Fixes some bad dairy expiry dates * Adds tests for SymbolRepresentation and the futures filtering for standard contracts * Renames method used to extract delta between contract month and expiry date * Removes GH comment and restores Futures contract month expiry param
Added Quiver API token variable to Config (QuantConnect#4946) * Add files via upload * Add files via upload * Add files via upload * Add files via upload * Add files via upload * Delete QuiverWikipedia.cs * Delete QuiverWallStreetBets.cs * Delete QuiverDataDownloader.cs * Delete QuiverWallStreetBetsDataDownloader.cs * Delete QuiverWikipediaDataDownloader.cs * Delete QuiverDataAlgorithm.cs * Delete QuiverHouse.cs * Delete QuiverPoliticalBeta.cs * Delete QuiverSenate.cs * Delete QuiverHouseDataDownloader.cs * Delete QuiverPoliticalBetaDataDownloader.cs * Delete QuiverSenateDataDownloader.cs
RoundDown fix for PeriodCountConsolidatorBase (QuantConnect#4940) * Limit rounding interval to 1 day, add SubtractRoundDown and AddRoundUp functions * fix error message * Only subtract round down if period is greater than a day * Tests * Comment clarification * Pivot solution to simple fix * fix error message * Remove RoundDown/Up limitations; add remarks * address review
Bug 4815 iex web socket library (QuantConnect#4914) * Fixes 4815 by loading the requested assembly from different folder. # Conflicts: # ToolBox/Program.cs * Upgrades System.Collections.Immutable to Version=1.2.5.0 * Creates a prototype for SSE streaming in IEXDataQueueHandler. * Revert the changes in Tick.cs * Implements a logic in IEXDataQueueHandler that updates the data-feed subscription after Subscribe/Unsubscribe * Implements IEXCouldSubscribeMoreThan100Symbols - which fails and other small fixes. * Implements DoForEach LinqExtensions * Implements IEXEventSourceCollection that wraps all logic that is SSE-subscriptions and symbol-limits-per-connection concerned. * Changes: 1) Fixes to address review. 2) Makes IexMarketPercent in QuoteSSE nullable as null values are assigned to in this field in data object received before the traing session start. 3) Deprecates helper Subscribe/Unsubscribe in IEXDataQueueHandler and IEXCouldSubscribe test. * Fixes: 1) _refreshEvent.Reset() order was not correct - should be called before UpdateSubscription 2) ProcessJsonObject- leaves only the functionality to emit ticks. 3) IEXEventSourceCollection - replaces int counter with CountdownEvent to improve the logic - in particular, need a mechanism that would not allow the repeated call to continue until the first one is completed * Refines the logic with parsing a data snapshot. * Fixes few more bugs: 1) Logic in ProcessJsonObject 2) Logic in UpdateSubscription - need to introduce additional ManualResetEvent to implement the intended logic - otherwise the logic is not suitable for general case * Introduce rate-gate limit in IEXEventSourceCollection: because when subscribing to a bunch of shares (more than 200 for example) the violation of rate gate policy may occur, which described in API docs asRequest Limits IEX Cloud only applies request limits per IP address to ensure system stability. We limit requests to 100 per second per IP measured in milliseconds, so no more than 1 request per 10 milliseconds. SSE endpoints are limited to 50 symbols per connection. You can make multiple connections if you need to consume more than 50 symbols.: * Few additional fixes done after real time testing * Adds xml-docs in stream response object + renaming a file. * Fixes: 1) Additional StreamResponseStocksUS parsing issues, that can happen outside of regular exchange hours. 2) Cancel clientUpdateThread by means of CancellationTokenSource 3) Replace BuildSymbolsQuery by string.Join * Fixes: 1) Changing Log Trace -> Debug 2) Adds ConfigureAwait(false) to async method call 3) Removes direct reference to System.Net.Http * Removes a task and manual reset event in IEXEventSourceCollection * Additions: 1) IEXEventSourceCollectionSubscribes test 2) GetSnpStocksArray() helper method 3) Installs packages in QC.tests : HtmlAgilityPack & LaunchDarkly.EventSource * IEX history provider fixes : 1) Tiny bug in ProcessJsonObject - use continue instead of return as execution is inside the for-each block) 2) Adds period variable for the historical data retrieved 3) Fixing from if (date.Date < start.Date || date.Date > end.Date) conditional check --> if (date < start || date > end) for more precise sorting. * Changes: 1) Removes HtmlAgilityPack and SNP scraper 2) Uses hard coded symbols instead * Bug fix: - at certain hours (example: before pre-market open or on holidays) IEX may send no data on subscription - when trying to connect during those hours Message handler may not be fired - need to place the counter signal to client.Opened to be informed of successful connect. * Implements: 1) IEXEventSourceCollectionSubscriptionThoroughTest and MockedIEXEventSourceCollection 2) Makes changes to IEXEventSourceCollection accordingly to allow the thorough testing. * Fixes formatting issue in StreamResponseStocksUS * Small fix for a new tests: - Change RemovedClientSymbols to keep not clients itself, but symbols array, because clients are being disposed right further * Enables extended logging in Toolbox. * Fixing IEX historical data fetcher bugs: 1) Bug in IEXDataDownloader.cs - HistoryRequest not precisely correct. 2) Enables day-by-day daily bar downloading in IEXDataQueueHandler. Motivation: Suppose we need data for some interval in the past - from-date=20170915-00:00:00 --to-date=20171103-00:00:00. With current behavior IEX would have to download all the historical data from =20170915-00:00:00 up to this day. 3) Extends SynchronizingHistoryProvider * Enables async fashion historical data download * More fixes to IEXCouldGetHistory test. * Reverts day-by-day daily bar downloading and other fixes. * Removes needless packages & references * Fix package reference * To address review * Sort out zero price ticks: after testing on real-time algo 30 min before the market open now - IEX may send updates for many securities with zero lastPrice, lastSize - fix to sort such entries out * Workaround for missing QuoteTicks timestamps: Since we don't have a stamp for quote tick updates (only for trades) we calculate the average delay between trade tick's time stamp and local time, and assuming that delay in average is the same for quote updates - just assign the local machine time adjusted for this average * Simplifies the things. * Changes: 1) Deprecates quote updates for IEX stocks. 2) Reduce the stream updates to reduce costs to -> # Stock Quotes every 1 second (per symbol? ) # Can be up to 54,000 messages per symbol per day https://iexcloud.io/docs/api/#how-messages-work * Fixes: 1) IEXDataQueueHandler: give an error message on extended market hours or tick resolution subscription request. As they are not really well supported by IEX. 2) Few small fixes in IEXEventSourceCollection, including additional condition for when the subscription remains irrevocable.