Public.com, Bloomberg FIX, TerminalLink, Market-Hours Consolidation

These are the LEAN release notes for versions 17866 to 17877. We expanded brokerage support with Public.com, Bloomberg FIX, and TerminalLink models, including stronger order validation, index option support, extended-hours routing, buying power controls, and EMSX locate fields for compliant short-sale workflows.

We improved intraday market-hours-aware consolidation, standardized algorithm log timestamps, added report log support, and refined realistic fill behavior for daily, hourly, stale-price, and extended-market-hours scenarios.

We also strengthened platform reliability by stabilizing scheduled event, optimizer, isolator, regression, and custom data tests; improving configuration concurrency; preserving live statistics history; updating CI infrastructure; and tightening API, syntax, indicator, and data download behavior. Overall, these updates improve brokerage coverage, execution realism, diagnostics, and test determinism across LEAN.

Thank you Ruuudy1 and laur89 for improving bounds-aware Sharpe optimization and simplifying Isolator monitoring defaults for clearer execution.

Features

  • Shipped (#9549): feature: add public order properties: We added PublicOrderProperties to configure Public.com extended-hours routing and per-order margin or cash buying power.
  • Shipped (#9548): feature: support index options on Bloomberg FIX brokerage model: We added Bloomberg FIX support for IndexOption orders and removed redundant integer quantity validation.
  • Shipped (#9546): Add TerminalLink brokerage model: We added a TerminalLink brokerage model that validates supported securities, order types, and order updates upfront.
  • Shipped (#9543): feature: add public.com brokerage integration: We added Public.com brokerage and fee models, order validation, launcher support, and tests for equities, options, index options, crypto.
  • Shipped (#9530): Market hours aware intraday consolidation: We added TimeSpan intraday market-hours-aware consolidation anchored to market open and capped at market close.
  • Shipped (#9519): Prefix all algorithm logs and messages with IAlgorithm.Time: We now prefix all algorithm logs and messages with IAlgorithm.Time, reusing FormatLog across live and backtesting.
  • Shipped (#9516): Market-hours aware intraday consolidation: We added TimeSpan-based market-hours-aware intraday consolidation anchored to market open and capped at close.
  • Shipped (#9511): Add support for report log type: We added support for the report log type.
  • Shipped (#9502): Add EMSX locate properties to TerminalLinkOrderProperties: We added EMSX locate fields to TerminalLink orders, enabling compliant short-sale routing with lender broker and ticket identifiers.
  • Shipped (#9494): feature: add bloomberg fix brokerage model: We added Bloomberg FIX brokerage model validation for supported securities, orders, and margin account requirements.

Bug Fixes

  • Fixed issue (#9560): We fixed maximum Sharpe optimization with bounds-aware validation.
  • Fixed issue (#9559): We made custom data regressions deterministic with local sources.
  • Fixed issue (#9556): We align TerminalLink order support with brokerage limitations.
  • Fixed issue (#9555): We stabilized weekly live scheduled event timing tests.
  • Fixed issue (#9554): We fixed concurrent Config access causing flaky optimizer tests.
  • Fixed issue (#9553): We fixed FisherTransform readiness to validate Minimum indicator.
  • Fixed issue (#9547): We stabilized live weekly scheduled event test timing.
  • Fixed issue (#9545): We fixed a flaky optimizer estimation update test assertion.
  • Fixed issue (#9544): We retry empty remote downloads without caching empty results.
  • Fixed issue (#9537): We prevent regression log conflicts by disabling parallel execution.
  • Fixed issue (#9535): We delay coarse market fills until fresh data arrives.
  • Fixed issue (#9534): We route daily-only market orders to realistic open/close fills.
  • Fixed issue (#9532): We fixed the Isolator cancellation test race condition.
  • Fixed issue (#9528): We reverted market-hours aware intraday consolidation changes.
  • Fixed issue (#9523): We refined extended-market-hours order fill analysis.
  • Fixed issue (#9520): We preserve statistics history for accurate live risk metrics.
  • Fixed issue (#9509): We fixed PandasColumn equality for non-string comparisons.

Updates

  • Fixed issue (#9567): We filter soft-deleted projects in API tests.
  • Fixed issue (#9566): We updated mypy in syntax test workflow.
  • Fixed issue (#9551): We cached unsupported cross-zero order types to reduce allocations.
  • Fixed issue (#9550): We strengthened stale-price regression checks for hourly market orders.
  • Fixed issue (#9540): We moved CI workflows to self-hosted runners.
  • Fixed issue (#9529): We improved flat equity curve analysis handling.
  • Fixed issue (#9517): We refined MarketHourAwareConsolidator behavior.
  • Fixed issue (#9515): We refined QuoteBar construction behavior.
  • Fixed issue (#9514): We simplify Isolator monitoring defaults for clearer task execution.