Combo Order Support, Lumber Futures Addition, Candlestick Charts Implementation

We modernized the Collective2 module with APIv4 and added rate limiters, logging, and demo symbols. We expanded user ability in Python algorithms to define custom fill models for combo orders. We also improved the continuous contract mapping and performed minor live trading performance tweaks. We included Lumber Futures to our tradable assets and refactored file handling for object stores. We estimated order prices for options with the IB Fee model and mitigated silent CI failures. We fixed bugs in Combo Market Order fees calculation in InteractiveBrokersFeeModel and updated candlestick handling. Lastly, we swapped the default American Option Pricing model to the Binomial CRR for accuracy.

A big thank you to our dedicated contributors, landonwilkins, LouisSzeto, ArthurAsenheimer, and henrik-strand. Your recent contributions have greatly enhanced our project, from improving our documentation and updating our discord link, to refining our American Option Pricing model and rectifying price variation issues. Your commitment to refining and enhancing LEAN does not go unnoticed. Keep up the excellent work!

Features

  • Shipped (#7446): Add support for Fill models with Combo orders in Python: We have successfully added support for custom fill models with combo orders in Python algorithms to the LEAN Open Source project. We created Python and C# regression tests to validate these changes, confirming correct functionality and expected outcomes.
  • Shipped (#7440): Add Lumber Futures LBR: We have expanded our support to include Lumber Futures (LBR) in the LEAN project. This change allows users to utilize the LBR symbol in LEAN, improving our trading algorithm's capacity.
  • Shipped (#7425): Candlestick charts: We've added support for Candlestick charts to LEAN and converted the default Equity chart to it. We documented the new feature to show how to plot candle stick charts.

Bug Fixes

  • Fixed issue (#7445): Fix continuous contract mapping by removing mapping mode from the map file and adding unit test.
  • Fixed issue (#7436): Approximate order price for options when using IB Fee model to estimate the fees charged for each order.
  • Fixed issue (#7434): Fix silent CI failures when stub generation fails.
  • Fixed issue (#7432): Fix bugs in 'InteractiveBrokersFeeModel.cs' for Combo Market Order fees to get correct fees when using IB brokerage.
  • Fixed issue (#7430): Fix optimization candlestick handling and update tests and CI to fail if anything fails.
  • Fixed issue (#7428): Fix minor candlestick JSON converter backward compatibility issue.
  • Fixed issue (#7427): Remove embellishment of parameter key names in the Report and test with an example report.
  • Fixed issue (#7426): Change the default American Option Pricing model to the Binomial CRR model for accuracy and efficiency.
  • Fixed issue (#7424): Fix bug in the Momentum indicator by overriding 'IsReady' property and modifying the unit test to assert expected behavior.
  • Fixed issue (#7423): Fix overflow bug in RandomDataGenerator by upper bounding prices and lower bounding FinalSplitFactor, tested with unit tests.
  • Fixed issue (#7421): Fix minimum price variation for LE future symbol in QuantConnect Lean.
  • Fixed issue (#7420): Replace Slack chat badge with Discord in project readme.md.
  • Fixed issue (#7415): Revert breaking plotly update to fix C# plotting in notebooks.
  • Fixed issue (#7413): Fix bug in parameters table in report and add unit tests to cover changes.
  • Fixed issue (#7407): Fix updating 'StopLimitOrder.StopTriggered' flag globally to properly communicate update to transaction handler, tested with unit tests and regression algorithms.

Updates

  • Fixed issue (#7449): Fix typo in Readme.md file.
  • Fixed issue (#7447): Minor serialization API tweak with no documentation or testing changes.