Async Orders, TD Sequential, Renko/Range Consolidators
These are the LEAN release notes for versions 17245 to 17255. We shipped async order placement in execution models, the TD Sequential indicator, Consolidate overloads with size (including Renko, Range, and VolumeRenko), a RemoveSecurity tag propagated to order management, live tick sale-condition support, improved schedule rule symbol handling, a job-queue messaging handler initializer for clearer cloud errors, active-subscription warm-up logging, and a new MaxDrawdownRecoveryTime metric.
Across stability and integrations, we upgraded Python.NET and added automatic delegate conversion, restored enum interoperability, and fixed Python algorithm syntax. We increased platform reliability with ISO DateTime serialization, an IB Gateway upgrade, better tick/history type filtering, custom data history for canonical option/future symbols, corrected market and precision settings, and many shutdown, launcher, and object-store fixes. We also aligned consolidated EndTime behavior, skipped extended hours for daily/hourly history, and cleaned obsolete API surface.
Thank you AibekMinbaev for logging active subscription counts pre/post warm-up, and rathnagiri for implementing the TD Sequential candlestick indicator. Fantastic improvements!
Features
- Shipped (#8930): Improve schedule rules symbol handling: We default non-existing schedule tickers to USA equity symbols and added regression tests.
- Shipped (#8928): Add tag to RemoveSecurity method: We added a tag parameter to RemoveSecurity and propagated it to CancelOpenOrders, Liquidate, and regression algorithms.
- Shipped (#8913): Support new Pythonnet delegates auto conversion: We add support for Pythonnet delegate auto-conversion, enabling Python to pass delegates without PyObject overloads.
- Shipped (#8887): Add messaging handler initialize parameter to job queue: We added a messaging handler initialization parameter in the job queue, improving cloud error reporting clarity and robustness.
- Shipped (#8883): Add live tick sale condition proto member: We added a Protobuf field for live tick sale conditions, enabling transmission and parsing of real-time sale condition data.
- Shipped (#8882): Add Consolidate method overload with size parameter: We added Consolidate overloads supporting RenkoBar, VolumeRenkoBar, RangeBar and using size as maxCount for TradeBar/QuoteBar/Tick consolidators.
- Shipped (#8880): Log the Number of Active Subscriptions Before and After Warm Up #8779: We log active subscription counts, including internal, before and after warm-up at TRACE level to verify changes.
- Shipped (#8877): Feature 6620 implement td sequential candlestick indicator: We implemented TD Sequential indicator: setups (9), perfect setup, countdown (13), TDST cancellations, decimal-encoded state via IndicatorBase.
- Shipped (#8872): Async orders in execution models: We made execution models place orders asynchronously by default, with opt-out; portfolio target orders now include target tag.
- Shipped (#8865): Add MaxDrawdownRecovery metric: We added MaxDrawdownRecoveryTime measuring longest recovery after max drawdown, introduced DrawdownMetrics, integrated into stats, and unit-tested.
Bug Fixes
- Fixed issue (#8925): We fix object store dispose hang, enhancing shutdown logging.
- Fixed issue (#8918): We update DAX index market to Eurex in SPDB/MHDB.
- Fixed issue (#8917): We place orders only when running, preventing post-shutdown events.
- Fixed issue (#8916): We fixed Python algorithm syntax issues for stability.
- Fixed issue (#8912): We removed unsupported start/end parameters from ListLiveAlgorithms.
- Fixed issue (#8911): We align count-based consolidated EndTime to latest bar.
- Fixed issue (#8907): We restore Python GetEnumString backwards compatibility.
- Fixed issue (#8906): We skip extended hours for daily/hourly downloads; dispose brokerage.
- Fixed issue (#8903): We refine type filtering; History returns Trade, Quote, OpenInterest.
- Fixed issue (#8902): We updated SPD to correct Bitfinex trading pair precisions.
- Fixed issue (#8898): We fix Python C# enum handling for Pythonnet integration.
- Fixed issue (#8890): We enable custom data history for canonical option/future symbols.
- Fixed issue (#8889): We prevent launcher termination when job is null.
- Fixed issue (#8888): We ensure launcher exits cleanly, handling exceptions gracefully.
Updates
- Fixed issue (#8929): We upgraded Python.NET to 2.0.48 for improved stability.
- Fixed issue (#8927): We upgrade Pythonnet to 2.0.47 improving stability and compatibility.
- Fixed issue (#8924): We remove obsolete API YAML, updating references to docs.
- Fixed issue (#8923): We upgrade IB Gateway to v10.39.1f improving reliability.
- Fixed issue (#8919): We adopt ISO DateTime serialization with backward compatibility, tested.
- Fixed issue (#8905): We add a minor helper method and supporting tests.
- Fixed issue (#8899): We updated Kraken lot sizes to match exchange specifications.
- Fixed issue (#8892): We optimized authentication tests, reducing mock wait times.
- Fixed issue (#8886): We refactor minor cleanup improving code readability and maintainability.
- Fixed issue (#8884): We refactor OrderTicket to simplify and streamline API usage.
- Fixed issue (#8875): We refactor TargetDownsideDeviation using RollingWindow daily returns, updating SortinoRatio.
Mia Alissi
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.
To unlock posting to the community forums please complete at least 30% of Boot Camp.
You can continue your Boot Camp training progress from the terminal. We hope to see you in the community soon!