Skip to content

Conversation

@ben-v
Copy link

@ben-v ben-v commented Oct 27, 2025

Description

Related Issue

Motivation and Context

Requires Documentation Change

How Has This Been Tested?

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • Refactor (non-breaking change which improves implementation)
  • Performance (non-breaking change which improves performance. Please add associated performance test and results)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Non-functional change (xml comments/documentation/etc)

Checklist:

  • My code follows the code style of this project.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
  • My branch follows the naming convention bug-<issue#>-<description> or feature-<issue#>-<description>

jhonabreul and others added 30 commits May 27, 2025 13:22
* Add 2025 equity and equity options holidays

* Minor fix
…ceUS (#8765)

* Update SPDB with Bybit

* Update SPDB with CoinBase

* Update SPDB with Bitfinex

* Update SPDB with Kraken

* Update SPDB with Binance

* Update SPDB with BinanceUS

* Update regression algorithms

* Update SPDB - Binanceus to solve issues with the unit tests
* Add support for negative indexing in RollingWindow

* Solve review comments

* Resolve comments review
…8781)

* Add alias to AccumulationDistributionOscillator(ChaikinOscillator)

* Add unit tests for ChaikinOscillator
* Refactor AverageTrueRange

* Solve review comments
`get` is the Pythonist way to access a dictionary.
Also, `not x` replaces `is None`, since the former translates into is None or empty.
* Limit supported order types to Market, Limit, and StopMarket in Bitfinex brokerage

* Update brokerage models

* Fix broken unit test

* Solve review comments

* Convert regression algorithm into a unit test

* Resolve review comments
* feat: Tastytrade brokerage helper classes and configs

* refactor: TastytradeFeeModel
test:feat: TastytradeFeeModel
refactor: curl brackets in namespaces to keep project style
* Add new IgnoreUnknownAssetTypes algorithm setting

* Wire brokerage message handler before algorithm initialization

* Ignore unknown assets by default

* Trigger Build

* Rename IgnoreUnknownAssetTypes to IgnoreUnknownAssetHoldings

* Minor change

* Minor change
* Add PostOnly TradeStation order property

* Minor fix
* Add support for Limit orders outside regular hours in Alpaca

* Minor change
* Support Equity Limit orders outside regular hours in Tradier

* Address peer review

* Minor change

* Minor change
* Review Collective2 Implemention

According to `SetDesiredPositions` [API](https://api-docs.collective2.com/apis/general/swagger/strategies/c2_api_strategies/setdesiredpositions_post#strategies/c2_api_strategies/setdesiredpositions_post/t=request&path=positions), the quantity must be non-zero. To close a position, send stop sending a position.

The current for all assets, except FOREX, is the quote currency.

FOREX:
- Observe the [C2 minilot](https://support.collective2.com/hc/en-us/articles/360038042774-Forex-minilots)
- Currency is always USD

Unit tests:
- Increase the initial cash to accomodate FOREX minilot
- Additional message for minilot warning
- Fix currencies

* Addresses Peer Review
* Add support for stop limit orders in Bitfinex

* Add place order exception message to invalid order tag

* Minor change

* Minor change
Co-authored-by: Martin-Molinero <martin@quantconnect.com>
* Add open interest data to future chains contracts

Even though futures chains and contracts are not created from internal subscriptions data (like OI subscriptions or continuous futures contracts subscriptions), we still want to add OI data to already created contracts given that OI subscriptions are always internal but trade an quote ones are not.

* Minor changes
* implements Klinger Volume Oscillator

* preserve newest data file

* improve class summary

* address PR comments, add signal line, use RollingWindow to persist data, refactor code to make easier to follow

* add helper method KVO in in QCAlgorithm.Indicators.cs, add Signal test, fix IsReady and WarmUpPeriod

* default signal period for KVO, refactor and improve ComputeNextValue, simplified code

* update comment

* update comment
* Wait for data before emitting fill forwarded bars only on market open/close in live trading

* Minor fixes and more unit tests
- Fix missing live warmup price scaling. Adding unit test
* Add BNFCR as stable coin without pair

* Add unit test

* Skip conversion in PerformCashSync when ConversionRate is zero

* Solve review comments
* feat: Implements Know Sure Thing

* Removed extra space

* Removed identity variables and returned value directly
- Fix Symbol EOD internal SecurityChanges handling. Adding unit test and
  regression test
Martin-Molinero and others added 29 commits October 9, 2025 16:29
* Minor fix for negative rolling window index

- Minor fix for negative rolling window index when partially full,
  adding unit test

* Reduce RefreshesSymbolProperties test runtime
- RateGate, TimeMonitor and ObjectStore won't schedule timer unless
  required
* Add ShortMarginInterestRateModel

- Add new ShortMarginInterestRateModel, and regression algorithms
  asserting the behavior

* Minor syntax check fix
…alidOperationException #9029 (#9030)

* Fix ProcessSplitSymbols crash during live mode warmup

Fixes InvalidOperationException when CancelOpenOrders is called during warmup in live/paper trading mode.

When historical splits are replayed during live mode warmup, ProcessSplitSymbols attempts to cancel open orders for option contracts, but CancelOpenOrders throws an exception during warmup.

The fix adds an early return when algorithm.LiveMode && algorithm.IsWarmingUp. This is safe because in live/paper trading, current positions already reflect historical splits.

Includes unit tests validating the fix.

* Some improvements and more tests

- Ignore splits during warmup for backtesting and live trading. Adding a
  regression algorithm reproducing issue

* Minor fix

---------

Co-authored-by: Martin Molinero <martin.molinero1@gmail.com>
- Add implicit conversion from security to symbol. Adding regression
  algorithms
* Support Future Options for continuous futures

* Solve review comments

* Resolve review comments

* Improve regression algorithms

* Use canonical symbols in OptionChains lookups

* Solve review comments
- Add consolidators optional start time. Adding tests
* Add support for Brokerage ActionRequired message type

* Minor syntax check typo fix
* Fix: Add obsolete flag to AddUniverse coarse+fine

Added obsolete flag to AddUniverse(Func<IEnumerable<CoarseFundamental>, IEnumerable<Symbol>> coarseSelector, Func<IEnumerable<FineFundamental>, IEnumerable<Symbol>> fineSelector), added one time logging and altered docs accordingly.

* Update QCAlgorithm.Universe.cs

---------

Co-authored-by: Martin-Molinero <martin.molinero1@gmail.com>
)

* Initial Solution

* Add regression algorithms

* Solve review comments

* Update CustomDataSecurityCacheGetDataRegressionAlgorithm.py

---------

Co-authored-by: Martin-Molinero <martin.molinero1@gmail.com>
* Add new QCAlgorithm.AddSecurityInitializer method

This allows to add multiple security initializers without manually creating an instance of a CompositeSecurityInitializer

* Add Python support

* Cleanup
* Disable OHLC session tracking by default

* Minor test fix
* Initial solution

* Add Unit tests

* Solve review comments

* Fix broken tests

* Solve review comments

* Updated property names
* Fix settting brokerage model after adding security initializer

* Minor fix

* Minor change

* Minor change

* Send warning for calling SetBrokerageModel before setting or adding security initializer

* Send warning for calling SetBrokerageModel before setting or adding security initializer

* Minor change

* Minor change

* Cleanup
* Minor tweak to cache liquidation fees

* Result handler cleanup

* Update pythonnet version to 2.0.49
* Update SPDB with Binance

* Update SPDB with BinanceUS

* Update SPDB - BinanceUS to solve issues with the unit tests
* Add optional strict parameter to PivotPointsHighLow indicator for relaxed comparison

- Added bool strict parameter (default true) to PivotPointsHighLow constructors
- When strict=true: Uses strict inequalities (> and <) - existing behavior
- When strict=false: Uses relaxed inequalities (>= and <=) - allows equal values
- Updated comparison logic in FindNextLowPivotPoint and FindNextHighPivotPoint
- Added new PPHL overload in QCAlgorithm.Indicators.cs with strict parameter
- Added 5 comprehensive unit tests using TestCase attributes
- All tests pass (19/19 relevant tests)
- Backwards compatible: default behavior unchanged

Addresses #8881

* Fix PPHL method signature to resolve overload ambiguity and maintain API consistency

- Remove wrapper overload to eliminate compilation ambiguity
- Reorder parameters: strict parameter now before resolution
- Keep selector as last parameter (consistent with other indicator helpers)
- Add unit tests verifying no overload ambiguity and correct strict parameter behavior

Addresses PR review feedback on #9033

* Implement backward-compatible PPHL overloads to support strict parameter

Added a second overload to maintain backward compatibility while introducing
the strict parameter. This prevents breaking changes for existing code that
uses positional arguments with the PPHL helper method.

Changes:
- Added backward-compatible overload that accepts (symbol, lengthHigh, lengthLow,
  lastStoredValues, resolution, selector) and delegates to the new implementation
  with strict: true
- Kept the new overload with strict parameter as the primary implementation
- Added comprehensive test (QCAlgorithmHelperOverloadResolution) documenting all
  9 valid call patterns to prevent future regressions

This approach ensures:
- Existing calls like PPHL(symbol, 3, 3, 100, Resolution.Minute) continue to work
- New calls like PPHL(symbol, 3, 3, strict: false) are supported
- No ambiguity in overload resolution
- All 23 PPHL tests pass successfully

* Clean up some test duplication

---------

Co-authored-by: Martin Molinero <martin.molinero1@gmail.com>
* Add configurable initialization timeout via config.json

* Solve review comments
* Improve cash assignment event message

* Fix broken tests

* Solve review comments

* Solve new review comments

* Add P&L message to option exercise order events in portfolio model

* Solve review comments
…ns (#8580)

* Use Futures Bank Holidays For Expirations

* Minor improvements

- Futures will be stored by their contract month, not expiry

* Delete dairy future products

* Minor test fixes
- Add optional performance tracking tool
- Avoid loading unrequired assemblies and correctly handle assembly
  loading errors
#9060)

* Throw exception in Research mode when storage limits are exceeded

* Solve review comments
@ben-v ben-v merged commit dcd88ee into teqbench:master Oct 27, 2025
7 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.