Lean v2.4.0.1 Release Notes

Release Date: 2017-08-08 // about 4 years ago
  • πŸš€ This release adds R-support to LEAN; allowing you to run R-code from your LEAN C# algorithms. This makes the R statistics libraries available for use in QuantConnect. Additionally a community member contributed a plugin for Visual Studio which uses the QuantConnect API to perform file editing tasks and deploy backtests. Additionally this release extends Python support with many new libraries, charting, history request support, Quandl support and many example algorithms. Quantity decimalization was implemented as the first step towards crypto-currency support. In addition there were numerous bug fixes, notably forIB connection handling and Python support.

    πŸ”‹ Features

    • βž• Added support for R.Net and R-base from C#
    • βž• Added Plug-in for Visual Studio Integration
    • βž• Added charting support for Python
    • βž• Added Arnaud Legoux Moving Average (ALMA) indicator
    • βž• Added Python packages sklearn, keras, tensorflow, copulalib, theano, xgboost, TA-Lib and many more
    • βž• Added Python basic template algorithms for options and futures
    • βž• Added calculation of futures expiry dates
    • βž• Added AlgorithmSettings and IAlgorithm.Settings property
    • 🍱 Order quantity and position sizes are now decimals to support crypto-currency assets.
    • βž• Added Python History Requests returning pandas.DataFrame
    • βž• Added new LeanManagement interface
    • βž• Added Quandl support for Python

    ⚑️ Updates

    • ⚑️ Updated example algorithms written in Python
    • πŸ‘Œ Improved ZipDataCacheProvider exception handling and logging
    • βͺ Restored default accountId for OandaDownloader
    • ⚑️ Updated OandaDownloader to save QuoteBars instead of TradeBars
    • πŸ‘Œ Improved compression in futures and options data writers
    • ⚑️ Update Reader error log messages for QuoteBar and TradeBar
    • βž• Added symbol to QuoteBar.Reader error logging
    • βž• Added Resolution to QuoteBar.Reader error logging
    • 🐎 Performance improvements to ZipDataCacheProvider
    • ⚑️ Updated and added new sample data files
    • βž• Added rate limiting to 50 msg/second for Interactive Brokerssubscribe/unsubscribe
    • βž• Added Easter holidays in market-hours-database
    • ⚑️ Updated Python framework to support Python datetime
    • Time-based removal of option contracts from universe in live mode
    • ⚑️ Updated OandaSymbolMapper to support delisted symbols
    • ⚑️ Updated Forex/CFD default fee model to ConstantFeeModel(0)
    • βž• Added Holidays for CFDs in market-hours-database
    • ⚑️ Updated YahooDownloader to new Yahoo API
    • ⚑️ Updated example Python algorithms
    • βž• Added DataNormalization mode validation for Options
    • ⚑️ Updated HistoryDataCacheProvider to use ZipDataCacheProvider within Engine
    • ⚑️ Updated all LEAN threads to be Background threads
    • Increased speed in option data conversion
    • ⬆️ Upgraded all projects to target .NET Framework 4.5.2
    • ⬆️ Upgraded all projects to use C# 6.0 compiler
    • ⬆️ Upgraded all third-party libraries
    • ⚑️ Updated ToDecimal extension method to allow negative numbers
    • βž• Added OANDA-Agent HTTP Header to API requests

    πŸ› Bug Fixes

    • βœ‚ Removed redundant properties in HistoryRequest class
    • βž• Added HasCustomData flag to SubscriptionManager (for Python)
    • ⚑️ Updated IB brokerage to restart when receiving reconnect (1102) message
    • βœ‚ Removed lock from AddData method
    • βž• Added check for custom data existence after security removal
    • πŸ›  Fixed FSharp reference error
    • πŸ›  Fixed Warmup/History requests for canonical symbols
    • βž• Added parameter validation in FutureMarginModel.GetInitialMarginRequirement
    • πŸ›  Fixed OANDA v20 history requests for more than 5000 bars
    • πŸ›  Fixed ParallelRunner error during application exit
    • πŸ›  Fixed zero-value open interest bug in IB brokerage
    • πŸ›  Fixed compiler build warnings
    • πŸ›  Fixed errors with Futures or Options existing holdings
    • πŸ›  Fixed existing brokerage holdings in Futures universe selection filters
    • πŸ›  Fixed bugs and performance issues in Python integration
    • πŸ›  Fixed bug in option filtering by range of strikes
    • πŸ›  Fixed counting bug in SubscriptionLimiter with Options/Futures
    • πŸ›  Fixed IB reset sequence in CheckIbGateway
    • πŸ›  Fixed SetBrokerageModel resetting leverage when called after AddSecurity
    • βž• Added missing enumerator disposal when symbol removed from universe
    • πŸ›  Fixed price adjusting on split dates with hourly resolution
    • πŸ›  Fixed issues with IB reconnect and nightly reset logic
    • πŸ›  Fixed AddConsolidator to support all input data types available
    • βœ‚ Removed unnecessary subscriptions in FineFundamental universe selection
    • πŸ›  Fixed error handling for OANDA connection failure
    • πŸ›  Fixed file naming bug in daily or hourly resolution market data for futures
    • πŸ›  Fixed OANDA v20 GetOpenOrders with unsupported order types
    • πŸ›  Fixed formatting bug in StatisticsBuilder.GetSummary
    • πŸ›  Fixed bug in LiveTradingDataFeed.Run exception handler
    • πŸ›  Fixed OANDA API v1 error handling
    • πŸ›  Fixed error handling in FileSystemDataFeed
    • πŸ›  Fixed IB bug causing error "Already Connected"
    • πŸ›  Fixed concurrency issue in RuntimeStatistics
    • πŸ›  Fixed invalid order status when receiving IB errors for operations not allowed
    • πŸ›  Fixed DirectoryNotFoundException when using custom data with FileFormat.Collection
    • πŸ›  Fixed RenkoConsolidator not accepting Tick data

    Notes

    πŸš€ Thank you to the community contributors in this release:
    @AnshulYADAV007, @jameschch, @Jay-Jay-D, @LiXiang618, @mushketyk, @smartquant, @tomhunter-gh


Previous changes from v2.4.0.0

  • πŸš€ Python Library Support – LEAN Release Notes v2.4.0.0

    πŸš€ This release adds full python support to enable using common python libraries in your algorithm.It is implemented using the PythonNet library which allows importing C# classes into python and vice versa. The new python algorithms are fully supported in local and cloud trading. There are some minor API adjustments to use the new library but the majority of existing python algorithms should work with no changes. In addition there were numerous bug fixes to make IB re-connection more resilient, and OANDA Brokerage was updated to support v2 accounts.

    πŸ”‹ Features

    πŸ‘ -Full native python library support.
    πŸ‘ -Add support for OANDA v2 accounts.
    -Added OrderType Exercise to OrderJsonConverter.
    🌲 -Added NLogHandler for additional logging capabilities.
    -Fix bugs in IEX Data Queue Handler.
    πŸ— -Add SetTradeBuilder to QCAlgorithm API so users can set their own trade builder for statistics.
    -Added Volume Share Slippage Model.
    -Extend LeanData class to generate forex and cfd QuoteBars.
    -Liquidated positions show up tagged with β€œLiquidated”.
    βœ… -When backtests drop below $0 equity they are halted.
    -Added Hull Moving Average indicator.
    -Fetch option chains from the OCC website to speed up launching algorithms.

    πŸ› Bug Fixes

    ⚑️ -Update FXCM Brokerage to return QuoteBars in GetHistory request.
    -Fix OANDA Brokerage to return GetHistory requests in the exchange timezone.
    -Fix IB timezone issues in GetHistory and Data Queue Handler.
    -Prevent setting real-time price when the exchange is closed.
    ⚑️ -Fixed bug updating consolidators with tick data.
    -Fix futures to use quotes for the universe instead of trades.
    -Fix issues with ZB and SGSD30 in market hours database.
    -Adjusted RAM limit calculations to be less sensitive to short term spikes.
    -Restart IBGateway each night on IB server disconnection.
    -Allow field selectors to be used with QuoteBars.
    🍱 -Removed underlying asset from futures assets.
    -Fix issue calculating holdings in CalculateOrderQuantity.
    βœ… -Added NSE data converter to backtest on data from National Stock Exchange of India.
    -Futures expiry date calculated dynamically with date rules.

    Notes
    ⚑️ Updated to IB API Version 9.73

    πŸš€ Thank you to the community contributors in this release Oswaldo, Ray Bohac,Jay-Jay-D, Anshul and Ed Rouwendaal!