* 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>
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* 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
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
Build & Test Lean / build (push) Has been cancelled
* Add new QCAlgorithm.AddSecurityInitializer method
This allows to add multiple security initializers without manually creating an instance of a CompositeSecurityInitializer
* Add Python support
* Cleanup
* 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>
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Add 'asynchronous' parameter to trading api
* Add regression algorithms
* More fixes for asynchronous orders
* Fix failing unit tests
* Fix failing unit tests
* Add multiple orders requests in transaction handler
Make each transaction thread handle requests corresponding to the same order
* Refactor order state machine in BrokerageTransactionHandler
Now using a single dictionary to hold orders and their state, either pending for submission, open or closed.
* Revert: remove complete orders from new state machine in BTH
* Add order ticket to new BTH open orders state machine
* Run syn in Backtesting transaction handler for new orders submission
* Remove OpenOrderState.SubmissionPending property
* Add Security to OpenOrderState
* Minor fix
* Cleanup
* Some cleanup in BTH
* Cleanup
* Minor fix
* Minor unit test fix
* Minor fix
* Make Brokerage.ConcurrencyEnable property virtual
* Minor change
* Cleanup
* Add 'asynchronous' parameter to SetHoldings api
* Improve regression algorithms
* Add tag parameter, update CancelOpenOrders and Liquidate calls
* Resolved commen on the related PR: following the pattern of Liquidate() using Liquidated as default, I think the tag should be Removed
* Add tag parameter to RemoveSecurity and update regression algorithms
* Minor tweaks
---------
Co-authored-by: meysam <poormonfared.azimi@gmail.com>
Co-authored-by: Martin Molinero <martin.molinero1@gmail.com>
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* initial draft changes
* Saving draft changes for TD Sequential Implementation
* Fixed failing tests
* Refactoring changes
* Additional refactoring to TDSequential
* Added tests
* Incorporated review comments
* reverted changes to older file
* Updated for review comment
* Updated Buy and Sell Setup Perfect functions based on review comment to remove equality operator
* Added SupportPrice and ResistancePrice as read-only public properties to expose the internal _resistance and _support prices
* Changed return value of ComputeNextValue to TomDemarkSequentialPhase instead of the encoded value of Phase.StepCount as per review comment
* Updated initialization to include bullish and bearish flip checks
* Refactored and cleaned up based on review comments
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Some fixes for new C# enums handling in Pythonnet
* Minor changes and cleanup
* Update Pythonnet version to 2.0.45
* Minor changes
* Minor fix
* Minor fix
* Minor change
* Minor change
* Minor unit test fix
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Changed default async to true and passed target.Tag
* Make execution models place orders asynchronously if specified
* Add unit tests
* Execution model default to asynchronous orders.
Also, minor fixes for tickets remaining fill quantity potential race conditions
* Add SecurityHolding.UnrealizedQuantity property
It gets the holding quantity the security will have once all open orders are filled.
Added for thread safety reasons when execution models place asynchronous orders and need to calculate the actual quantity needed to reach the target of there are open orders
* Some cleanup
* Adjust projected holdings quantity on splits
* Minor fix
* More changes and cleanup
* Minor fix
* Improvements for thread safety
* Add IOrderProvider.GetProjectedHoldings to get projected holdings atomically
* Minor unit tests fix
* Add ProjectedHoldings DTO class
* Address peer review
---------
Co-authored-by: arthiondaena <arthiondaena@gmail.com>
Build & Test Lean / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
Syntax Tests / build (push) Has been cancelled
* Support sub-indicator discovery using IIndicator and exclude PandasIgnore attribute
* WIP: PandasInclude
* Add PandasInclude annotation
* Resolve review comments
* Add a list of ignored properties
* Clean up [PandasIgnore] in IndicatorBase
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* 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
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Make ExtendedDictionary extend IDictionary
* Revert "Make ExtendedDictionary extend IDictionary"
This reverts commit bbbe9c769be682767cb9e487b904480376b53596.
* Make ExtendedDictionary key a type parameter
* Make SecurityPositionGroupModel an ExtendedDictionary
* Add unit tests
* Minor change
* Add more unit tests and other minor changes
* Add Count and ContainsKey to BaseChain
* Update pythonnet version to 2.0.43
* Update some python regression algorithms
* Minor regression algorithms fix
* Make CashBook and ExtendedDictionary
* Minor changes
* Minor changes
* Update pythonnet version to 2.0.44
* feat: support MOO in CharlesSchwabBrokerageModel
* feat: validate IsMarketOpen with MOO order type in PreOrderChecks
* test:feat: Validate MOO in various Market hours time
* fix: Algo with new MOO time validation
* test:fix: set DateTime of Algo explicitly in OrderQuantityConversionTest
This allows the stubs generator to know when to not generate Union types for parameters that can accept multiple types, like Symbol | str | BaseContract
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
* Fill forward prev date universe file in manual chains fetch
If there is no universe file available for the current date, use the previous one and fill forward to avoid having empty chains on a day when we haven't generated the universe files
* Try a maximum of 3 days behind for manual chains fetching
* Minor change
* Minor fix
* Add comments
* Minor fix
* Minor fix for expired contracts
* Initialize securities on re-addition
* Minor unit tests fixes
* Reset Index.ManualSetIsTradable when security is removed
* More changes to clean up and simplify
* Address security re-utilization only
* Cleanup regression algorithms
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
* Disable extended market hours for universe history requests
* Exclude extended market hours for all chain universe history requests
* Disable extended market hours for chain universes
* Minor change
* Minor fix
* Minor change
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
* Make FOPs selection universe file-based for backtesting
* Make FOPs option chains universe file based
* Make Future universe selection file-based like option universe
* Make Future universe selection file-based like option universe
* Abstraction cleanup
* Add FuturesChains API to QC algorithm
Also refactor future chain provider to use the new FutureUniverse instead of zip file names
* Update regression algorithms stats
* Refactor QuantBook option and future history to use new universes
* Fix failing tests
* Fix failing tests
* Fix failing tests
* Minor future chains unit test improvement
* Add futures chains DataFrame property
Also, remove IDerivativeSecurity interface from Future
* Add DataFrame property to FuturesChains class
* Add regression algorithms
* Add regression algorithms
* Replace QCAlgorithm.FutureChainProvider usages with new FuturesChain api
* Minor fixes
* Reduce number of universe files in repo
* Minor data fixes
* Regression algorithms updates
* Add implicit conversion from FuturesContract to Symbol
Modified algorithms to use futures contract objects directly instead of accessing their Symbol property.
Removed unnecessary import statements and redundant lines in various files.
* Improve resolution handling for history requests
* Changed _auxiliaryData field to lazily-initialized AuxiliaryData property
* Refactor data handling in BaseChain and TimeSliceFactory
- Added `AddData` method to `BaseChain` for adding market data
- Refactored `TimeSliceFactory` to use `BaseChain.AddData` method
* Remove specific constructors and indexers from Chain classes
Removed public indexers in `BaseChains` for getting or setting `BaseChain` instances by `ticker` or `Symbol`, which were used for Pythonnet compatibility.
* Remove chain cache logic from FuturesChainUniverse
* Refactor class and interface names for clarity
Renamed `FileBasedUniverse` to `BaseChainUniverseData` and
`IFileBasedUniverse` to `IChainUniverseData`.
* Add base class for options and futures contracts
- Introduced `BaseContract` as an abstract base class for contracts, consolidating common properties and methods.
- Removed ISymbolInterface
* Add minor fix for future options tickers parsing
Added tests
* Trigger Build
* Trigger Build
* Trigger Build
* Trigger Build
* Clean chain provider classes up
* Remove ZipEntryName other classes and unused code
Removed ZipEntryName class and references across various files.
Removed DataQueueFuturesChainUniverseDataCollectionEnumerator and DataQueueOptionChainUniverseDataCollectionEnumerator classes.
Removed OptionChainUniverseSubscriptionEnumeratorFactory class.
Removed unused code for handling OptionChainUniverse and FuturesChainUniverse in FileSystemDataFeed.cs and LiveTradingDataFeed.cs.
Removed several test files related to enumerator factories and universe data collection.
* Minor changes and cleanup
* Trigger Build
* Trigger Build
* Refactor FuturesContract data handling
Forward price data from bars and ticks stored in private fields for improved memory usage
* Fix: use universe data for market data in FuturesContract
* Update regression algorithms stats after rebase
Added HSI futures universe files
* Sort configs by internal flag
Internals go first
* Throw from option universe data filters for future options
Future options IV, Open interest and greeks are not supported for future options
* Minor changes
* Improve some regression algorithms
* Minor fix for failing unit tests
* Update FOPs universe file header
Removed greeks and IV columns.
Updated FOPs universe files: removed outdated columns.
* Minor unit test fix
* Trigger Build
* Trigger Build
* Trigger Build
* Trigger Build
* Trigger Build
* Trigger Build
* Trigger Build
* Trigger Build
* Trigger Build
* Trigger Build
* Trigger Build
* Trigger Build
* Trigger Build
* Minor fix
* Add history provider as constructor argument for chain providers
* Update new regression algorithms data points count
* Minor fix for FakeDataQueue
* Add initialize method to chain providers classes
* Minor changes
* Trigger Build
* Trigger Build
* Trigger Build
* Minor fix
* Minor fix
* Trigger Build
* Trigger Build
* Trigger Build
* Trigger Build
* Add logs to ProcessedDataProvider
* Removed test logs
* Minor fix
* Support downloading options and futures universe files from api data provider
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
- Fix for division by zero in option assigment check. Adding regression
test reproducing issue. Will now rely on normalized path in universe
selection to clear the cache
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
* Support registering indicators of type IndicatorBase<BaseData>
* Add IndicatorBase<BaseData> scenario for all the usages of ConvertPythonIndicator
* Add all scenarios in the test case
Build & Test Lean / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Initial solution
* Update unit test
* Explicit conversion if T is IndicatorDataPoint
* Solve review comments
* Add override tests for Beta and Alpha
* Refactor and update unit test suite
* Create unit test for OptionIndicators
* Resolve review comments
* Resolve new review comments
* Add a new default selector
* Fix IndicatorHistory api for options indicators
Fix for indicators based on OptionIndicatorBase to be able to use IndicatorHistory api. They require proper conversion of indicators from PyObjects
* Fix WarmupIndicator to support multi symbol indicators in Python
* Minor fix for WarmUpIndicator api
* Refactored switch statements for indicator conversion
* Solve comments review
* Refactored WarmUpIndicator to remove duplicated code
* Resolve review comments
---------
Co-authored-by: Jhonathan Abreu <jdabreu25@gmail.com>