Index Options, Bloomberg FIX, Dynamic Transactions
These are the LEAN release notes for versions 17930 to 17944. We expanded brokerage and execution support with Terminal Link index option orders, Bloomberg FIX registration, custom FIX tags, and a dynamic transaction thread pool.
We improved derivatives coverage with KOSPI 200 futures, stronger index option ticker handling, corrected expiries and market hours, safer option universe behavior, and more reliable margin, liquidation, assignment, and open interest handling.
We enhanced Python and research ergonomics with broader Python.NET runtime support, clearer conversion and overload errors, Count and Python len() support on lazy/filter universes, BaseContract price aliases, and arithmetic support for numeric multi-period fields.
We also strengthened platform reliability by improving API authentication, diagnostics, order deserialization, live holdings result storage, currency conversion seeding, consolidator behavior, market fill timing, and report generation.
Thank you YadavKapil, kobihikri, and jonathanwu906 for improving option assignment statistics, updating .NET 10 setup docs, and adding Python volatility model coverage.
Features
- Shipped (#9633): Add IndexOption support to TerminalLinkBrokerageModel: We added TerminalLinkBrokerageModel support for IndexOption orders, including SPX/SPXW, and updated supported security type tests.
- Shipped (#9631): Support Count and Python len() on user-facing lazy enumerables: We now memoize user-facing lazy enumerables, enabling Count and Python len() without interface changes or hot-path overhead.
- Shipped (#9624): Force live results store once holdings changes settle: We force live results storage shortly after order-fill holdings changes settle, reducing stale holdings latency.
- Shipped (#9619): feature: fix order properties with custom tags support: We added FixOrderProperties.AdditionalProperties for custom FIX tags and clone-safe defaults, while preserving obsolete misspelled compatibility.
- Shipped (#9618): feature: register bloomberg fix brokerage in lean core: We registered Bloomberg FIX brokerage in LEAN core, including factory selection, live config keys, supported securities/orders, and tests.
- Shipped (#9605): Add Count property to derivative security filter universes: We added Count to derivative filter universes, enabling Python len() and accurate post-filter contract counts.
- Shipped (#9585): Add KOSPI 200 Index (KM) Futures: We added KRX KOSPI 200 futures support with market constants, expiry logic, properties, hours, margins, and tests.
- Shipped (#9582): Auto-subscribe symbols when registering indicators and consolidators: We now auto-subscribe symbols when registering indicators or consolidators, sharing security eligibility checks and simplifying subscription lookup.
- Shipped (#9580): Add Python version of IndicatorVolatilityModelAlgorithm: We added a Python IndicatorVolatilityModel regression algorithm with split/dividend rewarming and cross-language regression coverage.
- Shipped (#9578): Add Price, Value and Close aliases to BaseContract: We added Price, Value, and Close aliases to BaseContract, matching LastPrice for consistent option and futures contract APIs.
- Shipped (#9576): Add Empty property to MemoizingEnumerable: We added MemoizingEnumerable.Empty to check for elements lazily, consuming at most one item while preserving memoized enumeration integrity.
- Shipped (#9571): Add arithmetic operators to numeric MultiPeriodField classes: We added arithmetic operators to numeric MultiPeriodField classes, enabling direct decimal field and scalar calculations.
- Shipped (#9536): Dynamic transaction thread pool: We added a dynamic transaction thread pool that scales with demand while preserving per-order request ordering.
Bug Fixes
- Fixed issue (#9634): We skip storage directory creation when access is denied.
- Fixed issue (#9630): We fixed RelativeDailyVolume intraday gap fallback denominator selection.
- Fixed issue (#9627): We fixed option assignment underlying trade statistics.
- Fixed issue (#9626): We safely handle same-step option universe re-additions.
- Fixed issue (#9620): We aligned KRX futures tradable hours with auction reality.
- Fixed issue (#9615): We hardened order JSON deserialization against decimal overflow.
- Fixed issue (#9612): We fixed single-lot option strategy margin call liquidation.
- Fixed issue (#9610): We made API authentication thread-safe and improved exception logging.
- Fixed issue (#9608): We support null-returning option filters using mutated universes.
- Fixed issue (#9604): We improved API error diagnostics and connection resilience.
- Fixed issue (#9601): We surface chain universe open interest in security caches.
- Fixed issue (#9596): We fixed consolidator rolling window behavior.
- Fixed issue (#9594): We preserve pythonnet overload hints in interpreted exceptions.
- Fixed issue (#9593): We extended previous market open search window.
- Fixed issue (#9590): We skip unknown symbols during liquidation with warnings.
- Fixed issue (#9589): We map non-standard index option tickers to underlying indexes.
- Fixed issue (#9583): We now compute probabilistic Sharpe using excess returns.
- Fixed issue (#9573): We fixed Python overload error method-name parsing.
- Fixed issue (#9572): We correct June 2027 index futures expiries for Juneteenth.
- Fixed issue (#9568): We immediately seed runtime-added currency conversion rates.
- Fixed issue (#9563): We delay market fills until fresh data arrives.
Updates
- Fixed issue (#9623): We updated pythonnet for clearer Python-to-CLR conversion errors.
- Fixed issue (#9617): We updated setup docs to require .NET 10.
- Fixed issue (#9614): We updated Python.NET runtime for improved conversion reliability.
- Fixed issue (#9607): We improved Python API errors and QuoteBar resolution support.
- Fixed issue (#9600): We updated QuantConnect.pythonnet to 2.0.60 across projects.
- Fixed issue (#9595): We updated pythonnet to support Python 3.12–3.14.
- Fixed issue (#9591): We updated QuantConnect.pythonnet to 2.0.58.
- Fixed issue (#9584): We updated QuantConnect.pythonnet to the latest runtime build.
- Fixed issue (#9581): We updated Python.NET runtime dependency across LEAN projects.
- Fixed issue (#9579): We reverted pythonnet to 2.0.54 across projects.
- Fixed issue (#9577): We updated QuantConnect.pythonnet to 2.0.55 across projects.
- Fixed issue (#9569): We cap flat equity curve reports to five segments.
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!