Commit Graph

573 Commits

Author SHA1 Message Date
Miha Kralj bb2bd1e707 refactor: improve Codacy CLI download robustness and error handling
- Use curl with -fSL flags for fail-fast behavior and proper redirects
- Check curl exit code immediately after download
- Replace piped echo with temporary file for sha256sum verification
- Use sha256sum -c --status for cleaner verification
- Add detailed error logging with expected checksum
- Clean up temp file and binary on any failure
- Exit 1 immediately on download or verification failure
2025-12-13 21:50:47 -08:00
Miha Kralj e0e6396acb fix: convert scanner.sh to LF line endings and enforce for all shell scripts
- Convert .github/scanner.sh from CRLF to LF line endings
- Add .gitattributes to enforce LF for *.sh files
- Update .editorconfig with explicit shell script settings
- Prevents line ending issues on Linux/WSL execution
2025-12-13 21:49:57 -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
Miha Kralj 053234045f VIDYA indicator with adaptive smoothing based on market volatility. 2025-12-10 20:07:46 -05:00
Miha Kralj 66b1fc3dca Add RMA indicator implementation and related tests; update existing indicators to return empty array for zero count 2025-12-10 19:24:55 -05:00
Miha Kralj 8df3480d1f DWMA Indicator implementation and tests 2025-12-10 18:22:10 -05:00
Miha Kralj 81830c9031 Optimize memory allocation in ALMA and Conv classes; improve performance by using stackalloc for small periods 2025-12-10 15:15:20 -05:00
Miha Kralj 47884bddab Refactor and optimize TBar, TBarSeries, and TSeries notebooks; remove obsolete code
- Enhanced Alma class by simplifying the CalculateWeightedSum method and removing unnecessary comments.
- Removed SIMD-related methods from Conv class, replacing them with optimized DotProduct calls.
- Updated Sma and Wma classes to use source.ContainsNonFinite() for non-finite value checks, improving readability and performance.
2025-12-10 15:03:58 -05:00
Miha Kralj b26d5d7751 Enhance code quality and stability across various modules
- Updated .coderabbit.yaml to exclude additional file types from reviews, improving the focus on relevant code changes.
- Modified scanner.sh to handle test failures more gracefully, ensuring that analysis stops on test failures and improving logging.
- Improved sonarscanner.sh to ensure build and test failures are properly reported, enhancing CI reliability.
- Refined SimdExtensions.cs documentation for clarity on variance calculation methods.
- Cleaned up TSeries.Tests.cs by simplifying the test structure and ensuring proper namespace usage.
- Fixed potential issues in tseries.cs by ensuring correct handling of DateTime values.
- Enhanced CsvFeed.cs to improve error handling during CSV parsing, ensuring robustness against malformed data.
- Updated GBM.cs to correctly calculate volume in the current bar, ensuring accurate simulation.
- Adjusted index.html to use globalThis for better compatibility across environments.
- Refined quantalib.csproj to exclude unnecessary files from compilation, streamlining the build process.
- Added comprehensive tests for the Mama class to ensure correct behavior during updates and state management.
- Improved error handling in various trend classes (Kama, Dema, Ema, T3, Tema, Wma) to ensure NaN values are managed correctly.
- Removed redundant Mama.Repro.Tests.cs file and consolidated tests into Mama.Tests.cs for better organization.
- Enhanced T3 and Tema classes to maintain state integrity during updates, particularly with NaN values.
2025-12-10 14:51:58 -05:00
Miha Kralj 7a4850956b Convolution Indicator (CONV) with customizable kernel support 2025-12-10 11:48:52 -05:00
Miha Kralj b46e83475e Add MAMA Indicator Implementation and Tests 2025-12-09 21:32:06 -05:00
Miha Kralj 8959d9584d chore: update project files and configurations for improved compatibility and performance 2025-12-09 16:04:19 -05:00
Miha Kralj c802a9ea80 fix: address code review issues in indicators and core components 2025-12-09 16:00:04 -05:00
Miha Kralj 5e6e3a070e chore: update CodeRabbit configuration to exclude additional cache directories 2025-12-09 14:30:50 -05:00
Miha Kralj ab532883ad chore: add more aggressive exclusions for coderabbit 2025-12-09 14:26:24 -05:00
Miha Kralj c970c58082 chore: exclude tests from coderabbit review to reduce file count 2025-12-09 14:25:13 -05:00
Miha Kralj 0db10a74fd chore: add coderabbit configuration to exclude generated files 2025-12-09 14:24:33 -05:00
Miha Kralj 861571d249 LSMA indicator with tests and documentation 2025-12-09 14:19:33 -05:00
Miha Kralj c1caaf36b4 refactor: Update list initialization in DEMA, EMA, SMA, T3, TEMA, TRIMA, and WMA classes for improved readability 2025-12-08 19:11:53 -05:00
Miha Kralj 5f57cbbe74 refactor: Simplify TSeries and Dema constructors, and streamline benchmark methods for improved readability 2025-12-08 18:43:23 -05:00
Miha Kralj 53a2dd2c05 chore: Update various indicators to improve null handling and code readability 2025-12-08 18:02:36 -05:00
Miha Kralj c2b33a8320 Add unit tests for various indicators and update project file
- Implemented unit tests for the following indicators:
  - KAMA (Kaufman Adaptive Moving Average)
  - SMA (Simple Moving Average)
  - T3 (Tillson T3 Moving Average)
  - TEMA (Triple Exponential Moving Average)
  - TRIMA (Triangular Moving Average)
  - WMA (Weighted Moving Average)

- Each test class includes tests for constructor defaults, history depth, short name, initialization, processing updates, and source type handling.

- Updated the Quantower.Tests.csproj to include all new test files in the lib directory.
2025-12-08 11:40:21 -08:00
Miha Kralj ed5e5c8209 Add unit tests for various moving average indicators
- Implement tests for HMA (Hull Moving Average) indicator to verify default settings, history depth calculations, and value computations during updates.
- Create tests for KAMA (Kaufman Adaptive Moving Average) indicator, ensuring correct defaults, history depth, and value calculations.
- Add tests for SMA (Simple Moving Average) indicator, checking default values, history depth, and value computations.
- Develop tests for T3 (Tillson T3 Moving Average) indicator, validating defaults, history depth, and value calculations.
- Implement tests for TEMA (Triple Exponential Moving Average) indicator, ensuring correct defaults and value computations.
- Create tests for TRIMA (Triangular Moving Average) indicator, verifying defaults, history depth, and value calculations.
- Add tests for WMA (Weighted Moving Average) indicator, checking default values, history depth, and value computations.
2025-12-08 11:00:58 -08:00
Miha Kralj 488de7ea1e chore: Update documentation links and improve code readability in averages and tests 2025-12-07 20:44:24 -08:00
Miha Kralj 03df45003e chore: Enhance Snyk scan and GitVersion regex for improved branch handling 2025-12-07 20:26:19 -08:00
Miha Kralj 944c215327 chore: Simplify Snyk test command by removing unnecessary options 2025-12-07 20:10:27 -08:00
Miha Kralj 8277ed9ccf chore: Add Snyk CLI installation and update CodeQL action versions; add assertion for SonarCloud compliance 2025-12-07 20:05:09 -08:00
Miha Kralj 28f7e981c0 chore: Add check for CODACY_PROJECT_TOKEN before upload to Codacy 2025-12-07 19:59:22 -08:00
Miha Kralj e951f0a602 chore: Update Publish.yml for SonarCloud token handling and improve logging configuration 2025-12-07 19:54:05 -08:00
Miha Kralj 36526e1d43 chore: Update Publish.yml to switch shell to bash, add SONAR_TOKEN validation, and enable verbose logging for SonarCloud analysis 2025-12-07 19:44:26 -08:00
Miha Kralj 910f2751f0 chore: Update Publish.yml to improve SonarCloud scanner commands and enhance checkout steps with fetch-depth 2025-12-07 19:36:27 -08:00
Miha Kralj 966dc83131 chore: Update Publish.yml to enhance CI workflow with improved coverage reporting and additional job steps 2025-12-07 19:28:09 -08:00
Miha Kralj 3f7ca390bf chore: Update Publish.yml to run on ubuntu-latest; specify SonarScanner version and improve coverage report paths 2025-12-07 18:53:40 -08:00
Miha Kralj 5f8fef513b chore: Remove SonarCloud scanner caching from Publish.yml; update Qodana linter version in qodana.yaml 2025-12-07 18:45:45 -08:00
Miha Kralj 00643e74c2 chore: Update shell from powershell to pwsh in Publish.yml; specify Qodana linter version in qodana.yaml 2025-12-07 18:37:14 -08:00
Miha Kralj 6323f43db4 chore: Update .github workflows for .NET version and action dependencies; add Qodana scan job 2025-12-07 18:34:06 -08:00
Miha Kralj 39feabcdf7 refactor: Remove pragma warning for floating point equality in TBar struct; update .editorconfig to suppress SonarQube S1244 2025-12-07 18:20:55 -08:00
Miha Kralj 2a554963d8 feat: Implement IEquatable for state structures in Dema, Ema, T3, Tema, and Hma classes; update IsHot logic in Hma 2025-12-07 18:12:24 -08:00
Miha Kralj 3975ff2d7f Refactor T3 Moving Average Implementation and Remove Unused Tests
- Deleted DebugTulip.Tests.cs as it was no longer needed.
- Refactored T3.cs to encapsulate parameters in a struct for better organization and readability.
- Updated methods in T3.cs to use the new Parameters struct, improving clarity and reducing redundancy.
- Enhanced T3.md documentation to provide clearer explanations of the T3 moving average and its parameters.
- Removed Wma.Coverage.Tests.cs as it was obsolete.
- Added new tests in IndicatorExtensions.Tests.cs to validate logic methods and ensure correct calculations.
- Updated IndicatorExtensions.cs to improve method organization and add new functionality for handling chart coordinates.
- Refactored mocks in TradingPlatformMocks.cs to align with new chart interface definitions.
2025-12-07 17:32:01 -08:00
Miha Kralj 94d06b0749 T3 Moving Average and associated tests 2025-12-07 17:10:41 -08:00
Miha Kralj 875998b288 Add eventing support to WMA indicator and implement unit tests for various indicators
- Enhanced WMA indicator with event-driven capabilities using ITValuePublisher interface.
- Created a new TODO file listing various indicators and their corresponding libraries.
- Added unit tests for DEMA, HMA, TEMA, and WMA indicators to ensure proper functionality.
- Implemented tests for handling new bars, ticks, and historical data updates across indicators.
- Verified that indicators correctly compute values and handle different source types.
2025-12-07 16:46:38 -08:00
Miha Kralj 3734a1c5f6 feat: Introduce ITValuePublisher interface and refactor indicators for event-driven value updates. 2025-12-07 14:36:22 -08:00
Miha Kralj 3b146b68bd Refactor tests and improve random number generation handling; update Dema, Ema, Sma, Tema, Wma, and GBM classes for consistency and clarity 2025-12-05 10:33:27 -08:00
Miha Kralj 9e152b9027 Add TEMA (Triple Exponential Moving Average) implementation and validation tests
- Implemented TEMA calculation in QuanTAlib with O(1) update complexity.
- Added validation tests for TEMA against Skender, TA-Lib, and Tulip indicators.
- Updated documentation for TEMA, including its mathematical foundation and usage examples.
- Enhanced existing tests for other indicators (TRIMA, WMA) to generate more records.
- Adjusted benchmark tests to include DEMA and TEMA comparisons.
- Refactored code for better readability and performance, including zero-allocation Span API.
2025-12-04 19:57:46 -08:00