This release adds a generic data sourcing feature along with abstraction of the data caching. This allows different configurations to be setup independent of physical files. In addition there were dozens ofbugs fixes in LEAN to improve its stability and consistency across backtesting and live trading. There were no breaking changes in regression tests or the API of LEAN.

Features

  • Added IDataProvider and IDataCacheProvider – a redesign of the bottom of the LEAN enumerator stack so the data sourcing and caching is pluggable. This helps track memory issues and abstract away the concept of data files.
  • Local desktop charting now supports custom charts.
  • Apply backtest control limits in backtest initialization.
  • Added handling for “INF” factor files where splits make adjusted pricing impossible.
  • Backtestingodd-hour scheduled events now behaves closerto live trading.
  • Added SystemDebug packet to distiguish between user debug and system debug messages.
  • Add start-date parameter to CoarseUniverseGenerator

Bug Fixes

  • Fixed issue double sampling and sampling when no data for daily data.
  • Fixed Linux log corruption from unicode characters.
  • Set IDataConsolidator period to fixing issueconsolidating ticks.
  • Changed GUI UserInterface project path to Debug from Release.
  • Fixed Forex and CFD assets not receiving ticks because they were added as tradedata.
  • Fixed issue where equity sampling timezone dependent on the host computer.
  • Fixed different timezones between custom and equity charts.
  • Fixed bug in finefundamental data selection not annoucingselected securities if they already existed.
  • Removed APIDataProvider temporarily as it doesn’t fit new IDataProvider pattern.
  • Fixed incorrectsecurity type when seeding a security.
  • Fixed incorrect bar type in Forex history requests (QuoteBar required).
  • Fixed bug in Interactive Brokers caching”No security definition found for this request”.
  • Added additional data file to fixdata not found error messages.
  • Fix crash in backtesting after an out of memoryerror.
  • Remove rate limiting on debug messaging in local LEAN.
  • Fix Interactive Brokers Brokerage “Pacing violation” error.
  • Ensured logs would be uploaded in the event of an initialization failure.
  • Fixed issue with CFD and OANDAdata where portfolio was always $0.
  • Remove hacky Environment.Exit solution to a temporary threading issue.

Notes

  • We have disabled options and futures price seeding to reduce logging noise.
  • History() methods without a T-type specified are not recommended as the return type is ambigous.

Thank you to the community contributors in this release –mushketyk, mchandschuh!

About LEAN

LEAN aims to empower investors to invest with confidence by using cutting edge algorithmic trading technology. Through the power of open source we are building the world’s best algorithmic trading platform, capable of accurately modeling global markets to give you insight into your strategy. Trading algorithms can be seamlessly deployed from backtesting into production with no changes or moved between brokerages. The LEAN user community reaches over 28,000 quants from all over the world.

LEAN supports C#, F#, VB, Java and Python programming languages and can be used in Equity, Forex, CFD, Options and Futures markets. It currently supports live paper trading, or execution by Interactive Brokers, FXCM and Oanda Brokerage.

For more information join the LEAN Community on GitHub.