Commit Graph
65 Commits
Author SHA1 Message Date
Miha Kralj a82f6b7949 Refactor: Remove unnecessary using directives across multiple files
- Cleaned up code by removing unused using directives from various test and implementation files in the trends and volume directories.
- This includes files related to HMA, HTIT, JMA, KAMA, LSMA, MAMA, MGDI, PWMA, RMA, SMA, SSF, SUPER, T3, TEMA, TRIMA, USF, VIDYA, WMA, ATR, ADL, and ADOSC.
- Improved code readability and maintainability by streamlining imports.
2025-12-28 23:55:24 -08:00
Miha Kralj 84ff67fb50 Add validation tests for USF and enhance ATR indicator tests
- Introduced Usf.Validation.Tests.cs to validate the USF (Ehlers Ultimate Smoother Filter) for consistency across batch, streaming, and span modes, as well as mathematical properties and coefficient calculations.
- Added comprehensive tests for the ATR indicator in Atr.Quantower.Tests.cs, including constructor validation, historical data processing, and handling of NaN/Infinity inputs.
- Enhanced Atr.Tests.cs with additional tests for iterative corrections, warmup behavior, and true range calculations.
- Updated Atr.cs to ensure warmup period is derived from RMA.
- Added new tests for Adosc in Adosc.Tests.cs to validate handling of NaN and Infinity inputs, and to ensure batch calculations match iterative results.
- Created a new Volatility.csproj to organize volatility-related implementations.
2025-12-28 23:33:46 -08:00
Miha Kralj 3cc2726654 Refactor tests and implementations for various indicators
- Updated RsiIndicatorTests to ensure proper initialization and state checks.
- Added new tests for Rsx, Vel, and Adosc indicators to validate behavior under iterative corrections and edge cases (NaN, Infinity).
- Enhanced Bessel indicator tests and implementation with consistent formatting.
- Improved Ema and Pwma implementations by ensuring proper handling of values.
- Introduced mock classes for charting to facilitate testing without dependencies.
- Ensured all indicators produce consistent results across different modes of operation.
- Cleaned up code formatting and added missing commas for better readability.
2025-12-28 21:07:37 -08:00
Miha Kralj 13d7c1215d Refactor code formatting and improve consistency across various test files
- Removed unnecessary blank lines in multiple test files to enhance readability.
- Ensured consistent spacing and formatting in the `Trima`, `Usf`, `Vidya`, `Wma`, and `Atr` test classes.
- Updated comments for clarity and consistency in the `Atr` and `Adl` classes.
- Adjusted project files for better structure and maintainability.
2025-12-28 17:44:08 -08:00
Miha Kralj ad6eebf812 refactor: optimize event args handling for performance improvements 2025-12-28 17:21:53 -08:00
Miha Kralj 14c5f21d9e feat: update Qodana configuration to disable failure conditions and improve build stability
refactor: enhance Bilateral and SMA indicators to handle edge cases and improve state management
refactor: clean up whitespace and formatting in various test files for consistency
2025-12-28 16:22:45 -08:00
Miha Kralj 5c3b3fbab4 Refactor indicators to support optional time step in Prime method
- Updated the Prime method signature in multiple indicators (Jma, Kama, Lsma, Mama, Mgdi, Pwma, Rma, Sma, Ssf, Super, T3, Tema, Trima, Usf, Vidya, Wma, Atr) to accept an optional TimeSpan parameter for improved flexibility.
- Added unit tests for Lsma to verify Dispose functionality, ensuring proper unsubscription from the source and thread safety.
- Enhanced Mama and Wma classes to handle non-finite inputs gracefully and added checks for valid parameters in constructors.
- Introduced additional tests for T3 to validate constructor behavior with invalid volume factors.
- Ensured all indicators maintain consistent behavior when handling edge cases, such as empty buffers and non-finite values.
2025-12-28 15:14:07 -08:00
Miha Kralj f2487ced04 Refactor tests and project files for improved consistency and clarity 2025-12-27 18:09:04 -08:00
Miha Kralj d7dbd7078a Refactor event handling and improve argument validation across indicators
- Updated event handler signatures to use TValueEventArgs for consistency in Mama, Mgdi, Pwma, Rma, Sma, Ssf, Super, T3, Tema, Trima, Usf, Vidya, Wma, and Atr classes.
- Enhanced argument validation by specifying parameter names in exceptions for clarity.
- Adjusted tests to align with new event handler signatures.
- Improved code readability and maintainability by using structured records and lambda expressions.
2025-12-27 15:46:28 -08:00
Miha Kralj 4750c2b1e8 refactor: update validation test classes to be sealed and simplify Dispose methods 2025-12-26 16:43:23 -08:00
Miha Kralj 618837dc27 feat(subscriptions): update event subscription handling to use non-nullable source parameters; remove defensive null checks 2025-12-26 13:34:21 -08:00
Miha Kralj c2bc665ecf feat(tests): add comprehensive tests for LinReg, StdDev, Variance, and Mama indicators; enhance Pwma constructor with null check; improve coverage path mappings in Qodana configuration 2025-12-26 11:50:18 -08:00
Miha Kralj 86e2934f1b feat(rsi, alma, bilateral, blma, butter, ema, htit, kama, lsma, pwma, rma, trima, vidya, wma): enhance calculations with NaN handling and edge case management; improve performance and stability across multiple classes 2025-12-25 22:16:07 -08:00
Miha Kralj 0d077c24d8 feat(validation): add input validation for Bilateral and Blma constructors; enhance Butter and Mgdi calculations with NaN handling 2025-12-25 20:53:56 -08:00
Miha Kralj ac8b2dbb3f feat(tests): enhance tests with GBM for noise generation and improve tolerance for MAMA validation
feat(trends): implement IDisposable in Bessel and Conv classes to manage event subscriptions
fix(trends): add validation for period and parameters in Kama and MGDI calculations
fix(trends): clamp logarithmic calculations in JMA to avoid -Infinity
2025-12-25 20:18:14 -08:00
Miha Kralj 4ff6dc0ad9 feat(statistics): add Variance indicator with O(1) calculation and usage example 2025-12-25 17:18:41 -08:00
Miha Kralj 9ba89812cd Refactor MAMA and HTIT implementation for improved accuracy and performance 2025-12-24 20:50:58 -08:00
Miha Kralj 8917575994 Refactor IndicatorExtensions: Remove unused methods and optimize price retrieval 2025-12-24 13:50:19 -08:00
Miha Kralj 68168ec414 feat: Implement Butterworth Filter with tests and documentation 2025-12-22 22:45:27 -08:00
Miha Kralj 57aaec1ac8 feat: Add Blackman Window Moving Average (BLMA) implementation and documentation 2025-12-22 22:15:27 -08:00
Miha Kralj 4efa0e773e Enhance documentation and validation for various indicators 2025-12-22 20:42:26 -08:00
Miha Kralj 2c114fdb08 feat: add timestamp handling in Adx and remove obsolete Pwma comparison tests 2025-12-22 15:41:09 -08:00
Miha Kralj 6bd0096297 feat: enhance validation tests for Aroon Oscillator and ADOSC 2025-12-22 15:31:38 -08:00
Miha Kralj d2a622bff9 test tolerances updated 2025-12-22 12:50:41 -08:00
Miha Kralj a7b7207801 Refactor documentation to remove "Zero-Allocation Design" sections across various trend indicators and implement a PowerShell script for automated cleanup
- Updated mathematical foundations and performance profiles where necessary to maintain clarity and coherence.
2025-12-21 14:37:44 -08:00
Miha Kralj 54c309e5cf feat: Implement Ehlers Ultimate Smoother Filter (USF) with documentation and tests 2025-12-20 15:57:38 -08:00
Miha Kralj d21fea3c18 feat: Enhance volume indicators with ADOSC and SSF implementation and validation 2025-12-20 15:08:07 -08:00
Miha Kralj b5358091ae feat: Add Absolute Price Oscillator (APO) implementation and documentation
feat: Implement ADL (Accumulation/Distribution Line) indicator
2025-12-18 21:32:01 -08:00
Miha Kralj 35e5571237 docs 2025-12-18 13:51:06 -08:00
Miha Kralj 5d03dec741 Refactor documentation for clarity and detail 2025-12-17 23:00:52 -08:00
Miha Kralj 1084644a3d Add Aroon Indicator implementation and tests
- Implemented Aroon Indicator with constructor, initialization, and update methods.
- Added unit tests for AroonIndicator to verify default settings, historical depth, short name, source code link, and processing of historical bars.
- Created Aroon class for core calculations, including methods for updating with TBar and TBarSeries.
- Added validation tests to ensure Aroon calculations match results from Skender and TA-Lib.
- Updated documentation for Aroon Indicator with calculation methods and usage examples.
- Refactored Dema and Wma classes to use Batch methods for calculations.
- Enhanced performance benchmarks by increasing bar count and integrating OoplesFinance indicators.
- Updated project dependencies to include OoplesFinance.StockIndicators.
2025-12-17 13:18:25 -08:00
Miha Kralj facc814ede chore: Update action versions in Publish.yml; improve .gitignore entries; refactor Alma, Super, and Trima classes for clarity and performance 2025-12-17 10:16:37 -08:00
Miha Kralj 612d2d2c89 Refactor code structure for improved readability and maintainability 2025-12-17 07:51:53 -08:00
Miha Kralj 8cec2fec8d feat: Refactor TBar and TValue to record structs; improve readability and performance
fix: Update condition checks in Htit and Mgdi for better numerical stability
refactor: Simplify parameter struct in T3 and enhance Vidya state management
2025-12-17 07:27:45 -08:00
Miha Kralj d277e08056 refactoring 2025-12-16 21:16:50 -08:00
Miha Kralj a67ad65fa5 Test completeness 2025-12-14 21:55:40 -08:00
Miha Kralj db6f994d75 feat: Implement ADX Indicator with tests, documentation, and integration 2025-12-14 20:37:30 -08:00
Miha Kralj 016c10b68a feat: Implement ADX Indicator with Quantower integration 2025-12-14 20:32:01 -08:00
Miha Kralj 78775c1da0 feat: implement SuperTrend indicator with tests and documentation 2025-12-14 19:28:07 -08:00
Miha Kralj 18759beb5e feat: implement McGinley Dynamic Indicator (MGDI) with tests and documentation 2025-12-14 17:14:51 -08:00
Miha Kralj 822aaa0d40 Add Ehlers Hilbert Transform Instantaneous Trend (HTIT) implementation and tests
- Implemented the HTIT indicator in Htit.cs, utilizing the Hilbert Transform for trend analysis.
- Added unit tests for HTIT validation against TA-Lib, Skender, and Ooples implementations in Htit.Validation.Tests.cs.
- Created documentation for HTIT in Htit.md, detailing its core concepts, formula, parameters, usage, and interpretation.
2025-12-14 16:52:02 -08:00
Miha Kralj 7168866098 fix: update return type for empty source in Jma to an empty array 2025-12-13 22:32:12 -08:00
Miha Kralj c1a476ed9c fix: update validation logic to prevent negative start index and improve error message for alpha parameter 2025-12-13 22:16:29 -08:00
Miha Kralj 9587560cd8 feat: Add Jurik Composite Fractal Behavior (CFB) indicator and tests 2025-12-13 21:38:32 -08:00
Miha Kralj 4b17984cfd Add PWMA implementation and tests; enhance documentation 2025-12-13 20:21:21 -08:00
Miha Kralj 60227a23c1 Implement Jurik Moving Average (JMA) with adaptive smoothing and comprehensive tests 2025-12-12 21:35:00 -08:00
Miha Kralj 79dcbcaddd Refactor validation tests to improve tolerance handling and clarify validation logic for TEMA and VIDYA indicators 2025-12-12 19:03:23 -08:00
Miha Kralj cea3e0c46d Refactor validation tests for various indicators to utilize shared test data structure 2025-12-12 13:47:57 -08:00
Miha Kralj e6033638ad Refactor trend indicators to use record structs for state management 2025-12-10 21:58:45 -05:00
Miha Kralj cfc54bf1f7 Enhance SIMD support in moving average implementations; add AVX512 and ARM64 optimizations for HMA, SMA, and WMA 2025-12-10 21:12:14 -05:00