141 Commits

Author SHA1 Message Date
Miha Kralj 8937b0c0fa fix: CI checkout auth + Wrmse test failure
- Publish.yml: Change workflow permissions from {} to contents:read
  to fix GITHUB_TOKEN having no scopes for actions/checkout@v4
- Wrmse.cs: Use DateTime.UtcNow instead of DateTime.MinValue in
  Update(double,double,double) to match Beta/Covariance pattern
- Bump version to 0.8.5
2026-03-11 20:54:16 -07:00
Miha Kralj 8e43d62cbb fix: move Roslyn SARIF upload from Sonar_Analysis to ReSharper_Analysis
SonarScanner wrapper overrides ErrorLog MSBuild property, preventing
Roslyn SARIF generation. ReSharper_Analysis already builds without
SonarScanner wrapping, so ErrorLog works correctly there.
2026-03-04 17:54:25 -08:00
Miha Kralj 37eea8761b suppress S1192: guard clause exception messages are inline by convention 2026-03-04 10:29:51 -08:00
Miha Kralj ef330e527c fix: target quantalib.csproj instead of .slnx for inspectcode
Analysis of full .slnx (800+ files across 5 projects) still times out
even with --no-build. Target lib/quantalib.csproj directly to scope
analysis to the main library (~400 files). Consistent with proven
local inspectcode approach.
2026-03-04 10:03:50 -08:00
Miha Kralj 0868f20820 refactor: use --include=**.cs instead of --exclude for inspectcode
Per JetBrains docs, --exclude only filters report output, not scanning.
Switch to --include="**/*.cs" for cleaner SARIF with only C# results.
2026-03-04 10:01:37 -08:00
Miha Kralj 92ccb7e53a fix: resolve ReSharper InspectCode CI timeout
- Pre-build solution before inspectcode to avoid redundant 4-min internal build
- Add --no-build flag to jb inspectcode
- Add --exclude patterns for bin/obj/TestResults and binary artifacts
- Bump timeout-minutes from 15 to 20 as safety margin
2026-03-04 09:52:09 -08:00
Miha Kralj 0d94b4df52 refactor: move sonar-suppressions.json to .github/ directory
Keeps CI config files consolidated under .github/.
Updated Publish.yml references accordingly.
2026-03-04 08:49:10 -08:00
Miha Kralj 6f4e083811 fix: add environment 'pypi' to Publish_Package job for trusted publishing
PyPI trusted publisher OIDC token exchange failed because the workflow
job did not declare a GitHub environment. PyPI's trusted publisher config
requires environment claim to match. Added environment: pypi to the
Publish_Package job in Release.yml.
2026-03-03 13:15:17 -08:00
Miha Kralj ce4416d388 fix(python): critical bug fixes across Python wrapper 2026-03-01 21:35:19 -08:00
Miha Kralj 9c03a5bbbe fix: stabilize platform wheel retagging and manylinux uploads 2026-03-01 18:31:45 -08:00
Miha Kralj d4d0646c4f feat: publish platform-tagged wheels for all target runtimes 2026-03-01 17:47:31 -08:00
Miha Kralj aa229caf99 fix: use supported macOS Intel runner label 2026-03-01 17:19:28 -08:00
Miha Kralj 7eff56e01c fix: run linux-arm64 wheel build on native ARM runner 2026-03-01 17:17:26 -08:00
Miha Kralj 0b52892288 ci: build and publish multi-platform wheels via release workflow 2026-03-01 17:04:27 -08:00
Miha Kralj bc531d392a feat: add Python wheel release pipeline and TestPyPI publish fixes 2026-03-01 16:20:41 -08:00
Miha Kralj 1b8e7e6155 fix: publish quantower_quantalib.dll release asset 2026-03-01 14:20:17 -08:00
Miha Kralj 07054ae20a refactor: centralize versioning and stabilize PMA validation 2026-03-01 14:07:14 -08:00
Miha Kralj 9fe9a8dab6 chore 2026-02-28 17:12:11 -08:00
Miha Kralj 769a923a24 test: setup common stability and robustness properties tracking 2026-02-27 12:50:05 -08:00
Miha Kralj 7253f61299 Add TRAMA implementation and comprehensive tests
- Implemented the TRAMA (Trend Regularity Adaptive Moving Average) class with adaptive EMA logic.
- Added unit tests for TRAMA functionality, including constructor validation, basic calculations, state management, and robustness checks.
- Created validation tests to ensure consistency across different modes of operation (streaming, batch, and static calculations).
- Enhanced documentation for TRAMA, including performance profiles and quality metrics.
- Updated workspace configuration by removing unnecessary folder references.
2026-02-21 20:45:38 -08:00
Miha Kralj cbeefc9d64 Remove multiple Pine Script indicators: SSFDSP, STARCHANNEL, STBANDS, STC, UBANDS, UCHANNEL, VWAPBANDS, and VWAPSD. These indicators were deleted to streamline the library and remove unused or redundant code. 2026-02-20 18:44:56 -08:00
Miha Kralj 915d7a007b Add Standardize class for Z-Score normalization and update project files
- Implemented the Standardize class for calculating Z-Score normalization over a specified lookback period.
- Updated NDepend badge SVG files to reflect new metrics.
- Modified NDepend project files to reference the updated solution file name.
- Removed outdated documentation files related to indicator proposals and channel documentation remediation.
- Updated workspace configuration to point to the new solution file.
2026-02-07 12:47:13 -08:00
Miha Kralj 26280ce80b Add Choppiness Index (CHOP) implementation and tests
- Implemented ChopIndicator for Quantower with configurable period and cold value display.
- Created Chop class for calculating the Choppiness Index with detailed documentation.
- Added comprehensive unit tests for Chop functionality, covering various market conditions and edge cases.
- Developed markdown documentation for CHOP, detailing its historical context, mathematical foundation, and usage examples.
- Established a remediation plan for channel indicators documentation, identifying gaps and prioritizing updates.
2026-02-05 19:42:49 -08:00
Miha Kralj 3e854eac3f Refactor documentation links in numerics, oscillators, reversals, and statistics modules to use relative paths; update Bias class to handle division by zero more robustly; remove obsolete CUMMEAN Pine script; enhance trend indicators documentation; add Visual Studio Code workspace configuration. 2026-02-04 11:43:59 -08:00
Miha Kralj 5ed4b6c0fc pine files 2026-01-31 14:05:53 -08:00
Miha Kralj c7e55c2f1e Add Intraday Intensity Index (III) implementation and tests
- Implemented the III indicator in Iii.Quantower.cs, measuring buying/selling pressure based on close price within the day's range, weighted by volume.
- Added unit tests for III functionality in Iii.Tests.cs, covering various scenarios including default parameters, updates, and cumulative mode.
- Created validation tests in Iii.Validation.Tests.cs to ensure consistency between streaming, batch, and span calculations.
- Developed comprehensive documentation for III in Iii.md, detailing its historical context, mathematical foundation, and common pitfalls.
2026-01-28 08:56:41 -08:00
Miha Kralj a9e72dae0d Refactor and enhance various channel indicators for improved performance and stability
- Updated Codacy instructions to streamline usage guidelines.
- Refactored Bbands class to utilize ArrayPool for memory management, preventing stack overflow on large series.
- Changed Fcb class to use long for monotonic deques to avoid truncation issues.
- Enhanced Kchannel class to ensure safe defaults for non-finite values.
- Improved Maenv class to prevent double-priming during calculations.
- Modified Mmchannel class to ensure non-negative buffer indices and removed unnecessary state tracking.
- Updated Pchannel class to correctly reference IsHot state.
- Refined Regchannel class to avoid double-processing during calculations.
- Enhanced Starchannel class to sanitize non-finite values during calculations.
- Adjusted Stbands.Quantower.cs to allow finer control over multiplier precision.
- Updated Ubands class to only update last valid values on new bars.
- Modified Uchannel.Quantower.cs to allow for finer multiplier precision.
- Enhanced Vwapbands classes to include standard deviation calculations and ensure consistent array lengths.
- Refactored Vwapsd classes to include standard deviation outputs and ensure consistent array lengths.
- Updated MonotonicDeque to use long for indices to prevent overflow.
- Improved Mdape class to handle zero actual values with a substitute value for error calculation.
- Enhanced Rae class to ensure correct state management during updates.
- Refined Wmape class to simplify the logic for finding last valid actual and predicted values.
- Updated Cmf.Quantower classes to ensure MinHistoryDepths reflects the current period.
2026-01-27 23:48:33 -08:00
Miha Kralj d04a1521a3 fix: restore truncated Codacy_Upload job in workflow 2026-01-26 16:04:40 -08:00
Miha Kralj 4652df360f feat: sync Sonar rule suppressions across SonarCloud, Codacy, and local builds 2026-01-26 15:57:45 -08:00
Miha Kralj 480715f66f Add Sonar rule suppressions and update Publish workflow for Codacy rule sync 2026-01-26 12:00:06 -08:00
Miha Kralj 2836f253c4 Refactor error handling and calculations in TheilU, Wmape, and TukeyBiweight classes; update buffer handling for consistency
- Updated buffer handling in TheilU and Wmape classes to ensure consistency after adding new values.
- Changed the resync interval constant in TukeyBiweight for better clarity.
- Refactored state structures to record structs in Gauss, Hann, Hp, Hpf, Kalman, Loess, Notch, and other filter classes for improved performance and readability.
- Enhanced numerical stability in Mama class calculations using Fused Multiply-Add (FMA) for precision.
- Added comprehensive tests for Atan2 validation to compare .NET's Math.Atan2 with PineScript's implementation, ensuring accuracy across various edge cases.
- Updated NDepend badges to reflect changes in classes, methods, and lines of code.
2026-01-24 23:07:09 -08:00
Miha Kralj fd6c80e8db Add Chaikin Money Flow (CMF) Indicator Implementation and Tests
- Implemented CMF indicator in Cmf.cs with detailed calculations and methods.
- Created unit tests for CMF validation against Skender, Ooples, and batch processing.
- Added documentation for CMF in Cmf.md, explaining its purpose, calculations, and usage.
- Updated project files to include new statistics library.
- Updated NDepend badges to reflect changes in classes, methods, and lines of code.
2026-01-23 18:40:20 -08:00
Miha Kralj 24db200d19 fix: remove standalone DLL from release assets (NuGet package contains all frameworks) 2026-01-21 23:51:55 -06:00
Miha Kralj cd7f753f14 fix: update file patterns for NuGet packing to ensure correct DLL inclusion 2026-01-21 23:35:50 -06:00
Miha Kralj 0c3b944485 feat: streamline release workflow and remove unnecessary warnings in test files 2026-01-21 23:27:03 -06:00
Miha Kralj da4e56bf40 feat: Add new CodeQL extension for C# and SonarLint configuration
- Introduced a new CodeQL extension for C# in `.github/codeql/extensions/quantalib-csharp/codeql-pack.yml`.
- Added SonarLint configuration in `.sonarlint/CSharp/SonarLint.xml` and `.sonarlint/csharp.ruleset` to suppress specific rules for high-performance indicators.
- Removed outdated `.vscode/launch.json` configurations.
- Updated `.vscode/tasks.json` to streamline build and test tasks, including renaming and consolidating tasks.
- Modified `Directory.Build.props` to enhance SARIF output directory handling and integrate SonarLint rules.
- Refactored various indicator classes to improve code clarity and maintainability, including updates to method parameters for consistency.
- Added XML documentation comments to several classes and methods for better code understanding.
- Improved numerical stability in calculations by replacing direct comparisons with `double.Epsilon` checks in multiple classes.
2026-01-21 23:05:38 -06:00
Miha Kralj 32f3366952 feat: enhance SARIF file handling in Publish workflow 2026-01-21 17:50:08 -05:00
Miha Kralj fdfbfd98f0 Add Starchannel indicator implementation and validation tests
- Implemented the Starchannel class, which calculates a volatility-based envelope using SMA as the middle line and ATR for band width.
- Added methods for updating the indicator with new data, batch calculations, and state management.
- Created comprehensive unit tests for the Starchannel indicator, validating various scenarios including manual calculations, consistency across modes, eventing, and handling of large datasets.
- Ensured that the indicator's outputs are finite and that band widths are consistent across different calculation modes.
2026-01-21 17:21:29 -05:00
Miha Kralj 470d2f0121 fixing workflows 2026-01-21 16:06:19 -05:00
Miha Kralj 2d3c8fbaf8 feat: update Release workflow to build additional Quantower projects 2026-01-21 16:02:54 -05:00
Miha Kralj e966000d48 feat: add DeepSource coverage upload to workflow (#57) 2026-01-19 12:21:33 -08:00
Miha Kralj abef7e8cf6 chore: suppress S107 rule for SIMD methods with many parameters 2026-01-19 12:07:54 -08:00
Miha Kralj 86fe32a682 SIMD Refactor: Merge simd-dev into dev (#55)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat>
Co-authored-by: Warp <agent@warp.dev>
2026-01-18 19:02:03 -08:00
Miha Kralj 82fc868cf5 Dosc 2024-11-04 15:16:05 -08:00
Miha Kralj 5b333bd2ec semver fix 2024-11-04 15:02:19 -08:00
Miha Kralj c0cb90e89b Merge branch 'dev' 2024-11-04 14:50:08 -08:00
Miha Kralj 16d941ded4 semver fix 2024-11-04 14:49:33 -08:00
Miha Kralj 1df0dff12a semver fix 2024-11-04 11:24:07 -08:00
Miha Kralj 7f6c29151c Fixes 2024-11-03 15:52:25 -08:00
Miha Kralj 94928714bf sonar fixes 2024-11-03 15:52:25 -08:00