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
Python Virtual Environments / build (push) Has been cancelled
* Ignore some errors in python syntax check.
Fix some algorithms syntax as well.
* Revert some changes
* Minor change
* Minor change
* Minor syntax check fixes
* Ignore more mypy errors
* Minor changes
* Ignore more mypy messages
* Ignore more mypy messages
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
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
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
* Initial solution
* Add python support for CompositeIndicator
* Add unit tests and update CompositeIndicator
* Add new test case
* Update TryConvertToIndicator logic
* Solve review comments
* Resolve review comments
* Remove unnessary case
* Use GetIndicatorAsManagedObject instead of ConvertToIndicator
* Add regression tests
* Add DualSymbolIndicator unit tests
* Introduce MultiSymbolIndicator for indicators working on multiple symbols
Use the new class as base for DualSymbolIndicator and OptionIndicatorBase.
The OptionIndicatorBase can now detect when ready even if underlying and options market close is different when resolution is daily.
* Accept any BaseData for options indicators
* Improve indicator conversion from python on registration
Also minor fixes
* Cleanup and simplification
* Fix ImpliedVolatility IsReady flag
* Update regression algorithm history count
AutomaticIndicatorWarmupOptionIndicatorsMirrorContractsRegressionAlgorithm history count decreased because options indicators period is now 1 instead of 2
* Address peer review
* WIP: Refactor Correlation Indicator
* Simplified comparison logic and improved abstraction
* Refactor Correlation and Beta indicators
- Created a base class to handle indicators with dual-symbol
functionality.
- Refactored the Beta and Correlation indicators to inherit from the new
base class.
- Updated unit tests.
- Added a new regression test to validate the latest computed value.
* Addressed review comments
* Update regression test
* Add new unit test to CommonIndicatorTests
* Addressed new 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
Python Virtual Environments / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
* Implement Squeeze Momentum Indicator
* Create unit test for SqueezeMomentum Indicator
* Update QCAlgorithm with SqueezeMomentum indicator
* Resolved review comments
* Switched to using Keltner indicator instead of manual calculation
* Refactor Squeeze Momentum indicator
- Make the Bollinger Bands and Keltner Channels indicators public.
- In IndicatorBase -> Update, if T is IndicatorDataPoint, then create a new
IndicatorDataPoint.
* Fix issue with regression tests
* Fix unit test
* Fix bug in beta calculation
- Beta is fill-forwarded
- A correct pair considered when they have different symbols and the
same date
- Processing occurs when there are at least period+1 correct pairs
* Address review comments
* Add time zone handling and resolution-based truncation
* Fix regression test for Beta indicator
* Handle resolution for beta indicator
- Remove effectiveResolution and Beta constructor parameter for
resolution.
- Streamlined resolution handling logic for Beta indicator.
- Fixed issues with regression test for Beta.
* Fix issue with period and WarmUpPeriod
* Update unit tests for Alpha indicator
* Fixing minor issues
* Add a variable to track if the previous symbol is the target
* Add regression test for Beta calculation between BTCUSD and SPY
* Add an extra period if the TZ are different
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
Build & Test Lean / build (push) Has been cancelled
* Add helper method to calculate options expiration date time
This allows to compute accurate time till expiry for greek indicators to be able to calculate on the actual expiration date before market close
* Update tolerance in greek indicators tests
* Minor fix
* Modify helper method to calculate settlement time instead of expiration time
* Cache option expiration date time
* Minor changes
* Minor changes
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
* Implement Hurst Exponent indicator and unit test
- Implemented Hurst Exponent indicator class
- Created unit tests to validate indicator functionality
- Added helper methods for standard deviation and regression line slope
* Optimize Hurst Exponent calculation
- Removed redundat loops and unnecessary operations.
- Precomputed values fro time lag logarithms to avoid recalculation.
- Simplified logic in ComputeNextValue for better performance.
- Updated and clarified comments for improved readability.
* Refactor HurstExponent indicator
- Made _sumX and _sumX2 fields readonly.
- Updated loop for calculating time lag differences to avoid out of
bound.
- Renamed lookbackPeriod with period.
- Replaced DateTime.Now with a fixed date.
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
API 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
- Ensure both previousPoint and previousPoint2 are non-zero.
- Prevent division by zero and undefined errors.
- Add unit test to verity the new validation logic.
* Default Data to null for ETFConstituentUniverses.
The data collection will be assigned only if needed. This allows data column to be filtered from dataframes since it will always be null for all constituents.
* Make base data collection aggregator reader fall back to BaseDataCollection
After instatiating the collection type, fall back to the base BaseDataCollection to aggregate data if the type is not a base data collection.
* Minor change
* Minor change
* Update pythonnet to 2.0.41
* Ignore data column for every flattened universe dataframe
* Filter empty collections columns in data frames
* Allow snake case named attributes in PythonSlice
* Remove PythonSlice Data Python class
Pythonnet handles dynamic objects behavior
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
* Initial implementation of MAMA indicator and tests
* Implemented Mesa Adaptive Moving Average (MAMA) indicator
- Implemented the MAMA indicator.
- Created methods with overloads to support custom and default
fastLimit/slowLimit
- Included necessary logic to calculate the mesa adaptive moving average
based on John's formula.
- Created unit tests to validate MAMA's behaviour.
* Refactor Mesa Adaptive Moving Average(MAMA)
- Separated the logic into smaller functions for better maintainability.
- Improved variable names to reflec their purpose.
- Updated comments to reflect changes and improve readability.
- Consolidated MAMA method overlaod by using default parameters values.
* Refactor variables and update method parameters
- Renamed variables for better clarity.
- Updated method to use 'IBaseDataBar' instead of 'TradeBar'
- Used 'MAMA({fastLimit}, {slowLimit}) instead of just 'MAMA'
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
* Normalize universe data frames
Universe and (generically BaseDataCollection) data frames are not normalize and unpacked into a data frame, instead of just creating data frames with the universe lists within it
* Fix unit tests and algorithms to expecte new universe dataframe format
* Fixes
* Add PandasConverter.DataFrameGenerator class
* Pandas data frame generator class fixes
* Add comments
* Housekeeping
* Add attributes to mark classes and properties for pandas processing
* Improve pandas properties expanding
Allow and handle duplicate names
* Use PandasData generalization for Lean common data types
* Add points time as column when converting base data collections to data frames
* Cleanup and minor changes
* Minor change
* Pandas data to get type members on demand
* Move Pandas helper classes to their own files
* Minor changes
* Add flatten argument to python history api
This allows users to decide whether they want fully expanded dataframes for universe and other collection data types. Else, master behavior is kept
* Adding missing changes to last commit
* Update Pythonnet version to 2.0.40
* Add flattent argument to algorithm's OptionChain api
* Minor changes
* Housekeeping
* Minor changes
* Bug fix skipping data collection data points
* Add comment
* Set correct exchange time to OptionUniverse instances
* Address peer review and cleanup
* Cleanup
* Minor changes
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
* Add Connors Relative Strength Index(CRSI) Indicator
- Implemented CRSI combining RSI, Streak RSI, and ROC
- Added unit tests for CRSI calculation to ensure correctness and
reliability.
- Inclued the spy_crsi.csv file for testing purposes and validation of
CRSI logic.
* Refactor CRSI indicator
- Updated the CRSI logic to use Percent Change of Daily Returns instead
of ROC.
- Modified the ConnorsRelativeStrengthIndex class:
- Updated ComputeNextValue to calculate daily returns and relative
magnitude
- Improved documentation and comments
* Refactor CRSI Indicator:
- Refactored the method that updated the trend streak based on price
changes.
- Created a new method ComputeTrendStreak.
- Added check for null or 0 value in _previousInput.
* Fix comments from code review
- Add _ to priceChangeRatios
- Move _srsi.Update() to the top to avoid duplication
* Add Average Daily Range indicator and tests
- Implemented AverageDailyRange indicator
- The indicator uses a Simple Moving Average (SMA)
- Created unit tests for the indicator
- Includes example input data and test file (spy_adr.csv)
* Refactor AverageDailyRange Indicator
- Renamed AverageDailyRange to AverageRage for a more generic approach
- Replaced explicit types with 'var'
- Updated method name in test cases
- Placed AR method in the correct alphabetical order
* Solving minor issues with AR indicator
- Replace TradeBar with IBaseDataBar
- Remove unnecessary override methods
* Implement Premier Stochastic Oscillator (PSO)
- Added PremierStochasticOscillator class with two Exponential Moving
Averages (_ema1 and _ema2) for double smoothing.
- Implemented PSO computation:
- Normalized Stochastic (nsk) = 0.1 * (Fast%K - 50)
- Double-smoothed Normalized Stochastic
- Added XML documentation for public methods and key calculations.
This commit introduces a new indicator.
* Add license header and adjust spacing
* Refactor Premier Stochastic Oscillator (PSO)
- Renamed smoothing variables for clarity
- Integrated PSO logic directly in ComputeNextValue
- Used IndicatorExtensions for streamlined EMA chaining
- Updated tests to match refactored logic
* Refactor PSO
- Changed "STO" to "PSO"
- Removed unused imports
- Updated private fields
- Minor code cleanup
* Fix pandas converter to handle list of data with different symbols
* Properly convert list of data into dataframe
Take into consideration data for multiple symbols in the same list
* Cleanup
* Index dataframes by symbol object instead of SID string
* Add symbol equality operator to compare against object
* Exclude "ID" from option chain dataframe
* Minor fix
* Add greeks columns directly in option chain dataframe.
Also add pass-through properties for greek values in OptionUniverse
* Some cleanup
* Minor fix
* Add new QCAlgorithm.OptionChains() method
- Use OptionChains as output
- Add DataFrame to OptionChain and OptionChains
- Rename Greeks classes
- Add ISymbolProvider for classes that have a symbol (IBaseData, OptionContract)
* Unify QCAlgorithmOptionChain API
Also refactor OptionContract to handle: (1) Actual market data and option price model data, and (2) OptionUniverse data
* Pass symbol properties to OptionUniverse option chain from algorithm
* Format OptionContract for dataframe
* Minor fix
* Add multiple option chains api regression algorithms and other minor changes
* Address peer review
Add NullGreeks class: keep ModeledGreeks as internal as possible
* Minor fix and add PandasConverter unit tests
* Peer review: Non-thread-safe Lazy for Python
* Handle Greeks unwrapping by PandasData
* PandasData cleanup
* Add data and other minor changes
* Unit test fix
* Update Pythonnet to 2.0.39
* Cleanup
* PandasData handling children class members
Address peer review
* Fix: indexing symbol conversion in pandas mapper
* Fix pandas mapper to convert string keys to symbol only when necessary
* Cleanup
* Cleanup
* Add PandasColumn python class to handle proper indexing
This allows propery hash and equality between Symbols, C# strings and Python strings
* Minor fixes
* Symbol cache improvements
* Minor fix for cache miss
* Revert PandasMapper reserved names and improvements
* Minor fix
* Revert reserved names
* Minor fix for Symbol equality operators
---------
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
Python Virtual Environments / build (push) Has been cancelled
* Initial options universe with greeks implementation
* Options universe improvements
* Address peer review
* File based options universe fixes and improvements.
- Adjust OptionUniverse start-end times and period.
- Adapt unit tests and some algorithms to pass with new options universe selection.
* Updated options regression algorithms stats for new universe data
* Updated options regression algorithms stats for new universe data
* Updated options regression algorithms stats for new universe data
* Updated options regression algorithms stats for new universe data
* Updated options regression algorithms stats for new universe data
* Option chain provider with new options universe
* Allow canonical option history requests
* Address peer review
* Address peer review
* Fix symbols parsing in OptionUniverse
* Fix universe selection subscriptions start time to not include extended market hours
* Minor changes
* Minor changes
* Peer recommended changes and fixes
* Update regression algorithm stats
* Update regression algorithms stats and minor fixes
* Fix option chain provider history request
* Round option indicators values
* Added option universe csv header property
* Update regression algorithms stats
* Update regression algorithms stats
* Data fixes and regression algos stats update
* Unit test fixes
* Minor changes
* Option chain handling in live trading data feed
* Minor changes
* Added processed data provider
* Fix thread-safety violation in Slice class
* Minor change
* Update options filter universe API to use OptionUniverse data
Add new filter methods for greeks, IV and open interest
* Option filter universe api updates
* Add OptionUniverse history regression algorithms
* Add regression algorithms for new options filter universe api methods
* Added options greeks data and updated regression algorithms
* Address peer review
* Address peer review
* Add more assertions to new options filter api regression algorithms
* Minor performance improvement.
Reduce greeks binomial model steps to 140
* Minor tests updates
* Greeks numerical models performance improvements
* Greeks numerical models performance improvements
* Revert array pool change for option pricing numerical models
* Update default dividend yield provider depending on option type
* [TEST]
* Add helper method con calculate time till expiration
* Use double in price option numerical models
* Implied volatility calculation improvements
- Adjust root finding method accuracy as a factor of the option price
- Use BSM to get a first guess
* Cleanup
* Some regression algorithms and unit tests cleanup
* Regression tests updates after rebasing from master
* Add universe files
* Self review and cleanup
* Minor regression tests updates after rebase
* Fix: set data time zone to same as exchange tz for options universes
* Minor change
* Minor change
* Fix for live trading options universe selection
* Keep underlying when aggregating collections in BaseDataCollectionAggregatorEnumerator
* Update index options regression algorithms stats
* Minor change
* Address peer review
* Memory usage improvements
* Minor build fix
* Minor changes and test fixes
* Cache symbols in OptionUniverse
* Cleanup
* Fix index option creation in OptionUniverse
* Use cached underlying SID when parsing from string
* Abstract symbols cache to BaseDataCollection
* Return actual underlying symbol when mapping decomposing ICO ticker
* Address peer review
* Minor performance improvements reduce garbage
* Limit Symbols and SIDs cache size to help with memory usage
* Minor fix in symbols and sid cache cleanup
* Build fix
* Lazily parse greeks on individual access
* Cleanup and tests
* Address peer review
* Minor greeks fix
---------
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
Python Virtual Environments / build (push) Has been cancelled
* Fix dividend yield calculation
* Get security price as input for dividend yield provider
* Account for splits in dividend yield provider
* Fix split adjustment for dividend yield calculation
* Use right dividend yield in options indicators
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
* Implemented the vortex indicator.
* changed the vortex.cs calculations
* chore: Refactor VortexTests.cs and QCAlgorithm.Indicators.cs
* Refactor VortexTests.cs
* made changes according to the comments
* used indicator exxtension methods
* made changes in the naming convention and added condition for division by zero.
* Using composite indicators to clean up
---------
Co-authored-by: Jhonathan Abreu <jdabreu25@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
Python Virtual Environments / build (push) Has been cancelled
* Implements ChandeKrollStop
* readonly
* Move IsReady/WarmUpPeriod above the constructors
* remove private _period
* minor
* rename Stops to Short/Long
* using Maximum/Minimum
* fix tests
* rename some variables and use movingAverageType for ATR
* movingAverageType
* Set best recommended model based on option style.
The best option model will be used in options indicators based on option style if not specified
* Reduced Greeks/IV numerical models steps to 100
* Minor fixes
* Minor changes and improvements
* Changed default pricing model for IV
* Minor performance improvements
* Minor performance improvements and fixes
* Minor change
* Minor regression algorithm fix
* Update greek indicators internal IV indicator only when not user provided
* Revert unnecessary changes
* Minor changes
* Cleanup
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
* implement Rogers-Satchell volatility
* naming RSVolat to avoid confusion between volume and volatility
* fix InitializeIndicator call
* fix AcceptsRenkoBarsAsInput test
* add symbol parameter to InitializeIndicator
* Update RogersSatchellVolatility.cs
* some fixes after review
* Return 0 when Open High Low or Close is 0
* IBaseDataBar
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
* tests passing except ResetProperly and WarmsUpProperly
* doc
* minor fixes
* doc - return
* fix InitializeIndicator call
* workaround ResetsProperly
* fix WarmsUpProperly test
* remove WriteLine
* remove WriteLine
* cr
* fix data
* open high low defaults to close when these columns don't exist into data
* simplify using ternary operator
* better fix for ResetsProperly
* fix some code conventions issues
* fix some review issues
* Update StochasticRelativeStrengthIndex.cs
* WIP
* All tests are passing except AcceptsRenkoBarsAsInput
* Update QuantConnect.Tests.csproj
* comment formating and use input.EndTime
* fix AcceptsRenkoBarsAsInput test
* fix InitializeIndicator call
* add symbol parameter to InitializeIndicator
* FI above FISH
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
* Improve indicator warmup
- Allow indicator warmup to handle multiple symbols, used for option
greeks. Adding regression test
- Improve indicator history to handle specific T types. Adding unit test
- Remove period, and historical underlying volatility, from IV so
simplify warmup behavior
* Address review, fix minor issues
* Implement new indicator IBS
* remove using System
* typo
* doc fix
* Implement new indicator IBS
* remove using System
* typo
* doc fix
* inherit TradeBarIndicator and return 1m when High=Low
* duplicate spy_with_ibs
* returns 0.5 when High=Low