Miha Kralj
37854fc7fa
Merge dev: RRSI docs rewrite + PineScript
2026-03-17 09:48:54 -07:00
Miha Kralj
75bcc12529
docs(rrsi): rewrite Rrsi.md to match template, rename to Ehlers Rocket RSI
...
- Full template: property table, tagline, key takeaways, historical context,
architecture & physics with code references, mathematical foundation,
interpretation & signal zones, related indicators, validation table,
performance profile, common pitfalls, FAQ, references
- Title changed from "Rocket RSI" to "Ehlers Rocket RSI" across all indexes
- Updated _sidebar.md, lib/_index.md, lib/oscillators/_index.md
2026-03-17 09:48:32 -07:00
Miha Kralj
1780a90de6
Merge dev: RRSI PineScript reference
2026-03-17 09:44:41 -07:00
Miha Kralj
db6bb86fe6
feat(rrsi): add PineScript reference implementation
...
Ehlers TASC May 2018 algorithm: Momentum → Super Smoother (2-pole
Butterworth IIR) → Ehlers RSI (summation CU/CD) → Fisher Transform.
Inputs: smoothLength=10, rsiLength=10, source=close.
2026-03-17 09:44:16 -07:00
Miha Kralj
3eb861307e
Merge branch 'main' of https://github.com/mihakralj/QuanTAlib
2026-03-17 09:39:10 -07:00
Miha Kralj
346d4434e2
Merge dev: RRSI validation tests
2026-03-17 09:38:48 -07:00
Miha Kralj
4cc4c1a0c4
feat(rrsi): add validation tests — manual Ehlers algorithm cross-check
...
- Manual step-by-step reference implementation of Ehlers TASC May 2018
- Theory tests across 5 parameter combinations (5/5, 8/10, 10/10, 10/20, 20/10)
- arctanh mathematical identity verification
- Streaming/batch/span consistency validation
- Event-based vs streaming agreement check
- All-outputs-finite verification across 4 parameter sets
- Super Smoother coefficient unity DC gain validation
- 18 new tests, 15981 total passing, 0 warnings
2026-03-17 09:38:18 -07:00
codefactor-io
314201ee5c
[CodeFactor] Apply fixes to commit c661fee
2026-03-17 16:26:54 +00:00
Miha Kralj
3901bfdaf1
Merge branch 'main' of https://github.com/mihakralj/QuanTAlib
2026-03-17 09:26:27 -07:00
Miha Kralj
c661fee606
Merge branch 'dev'
2026-03-17 09:25:55 -07:00
Miha Kralj
eb9e41fc2e
feat: add RRSI (Rocket RSI) — Ehlers TASC May 2018
...
Algorithm: SuperSmoother-filtered momentum → Ehlers RSI → Fisher Transform
- 2-pole Butterworth IIR pre-filter removes noise
- Ehlers RSI (raw summation, not Wilder) outputs [-1,1]
- arctanh produces Gaussian-distributed zero-mean oscillator
Files: Rrsi.cs, Rrsi.Quantower.cs, Rrsi.md, 31+7 tests
Integration: sidebar, indices, Python bridge (Exports, _bridge, oscillators, SPEC)
Build: 0 warnings, 0 errors | Tests: 15,963 passed, 0 failed
2026-03-17 09:25:32 -07:00
codefactor-io
75ad4a936f
[CodeFactor] Apply fixes to commit ce654ca
2026-03-17 15:36:50 +00:00
Miha Kralj
ce654ca670
feat: add 8 new indicators with full integration
...
New indicators:
- HWC (Holt-Winters Channel) — channels, 27 tests
- VWMACD (Volume-Weighted MACD) — momentum, 38 tests
- Squeeze Pro — oscillators, 69 tests
- BW_MFI (Bill Williams MFI) — oscillators
- DSTOCH (Double Stochastic) — oscillators
- ATRSTOP (ATR Trailing Stop) — reversals
- VSTOP (Volatility Stop) — reversals
- Convexity (Beta Convexity) — statistics, 23 tests
Integration:
- Python bridge: Exports.cs, _bridge.py, wrapper modules
- Documentation: _sidebar.md, _index.md pages, SPEC.md
- All analyzer warnings fixed (MA0074, xUnit2013, S2699)
Build: 0 warnings, 0 errors | Tests: 15,933 passed, 0 failed
2026-03-17 08:36:23 -07:00
Miha Kralj
15f4bb90f3
feat: add 8 new indicators with full integration
...
New indicators:
- HWC (Holt-Winters Channel) — channels, 27 tests
- VWMACD (Volume-Weighted MACD) — momentum, 38 tests
- Squeeze Pro — oscillators, 69 tests
- BW_MFI (Bill Williams MFI) — oscillators
- DSTOCH (Double Stochastic) — oscillators
- ATRSTOP (ATR Trailing Stop) — reversals
- VSTOP (Volatility Stop) — reversals
- Convexity (Beta Convexity) — statistics, 23 tests
Integration:
- Python bridge: Exports.cs, _bridge.py, wrapper modules
- Documentation: _sidebar.md, _index.md pages, SPEC.md
- All analyzer warnings fixed (MA0074, xUnit2013, S2699)
Build: 0 warnings, 0 errors | Tests: 15,933 passed, 0 failed
2026-03-17 08:35:29 -07:00
codefactor-io
49e67dac30
[CodeFactor] Apply fixes to commit 03fb54b
2026-03-16 19:46:41 +00:00
Miha Kralj
03fb54b7c8
Merge branch 'dev' into main
2026-03-16 12:46:19 -07:00
Miha Kralj
6f0a339c9b
fix: resolve build and test errors
...
- Sar.Quantower.Tests.cs: add missing opening quote on string literal (line 48)
- Exports.cs: rename Correlation.Batch → Correl.Batch (CS0103)
- Ad.Validation.Tests.cs: fix Ooples OutputValues key "Ad" → "Adl"
2026-03-16 12:45:13 -07:00
Miha Kralj
20997fd332
Merge branch 'dev'
2026-03-15 21:10:27 -07:00
Miha Kralj
3b0cdca567
fix: add mermaid rendering support to Docsify site
...
- Add mermaid@11 library with dark theme configuration
- Add custom markdown renderer to convert ```mermaid blocks to <div>
- Add doneEach plugin hook to run mermaid after page navigation
- Fix code fence syntax in architecture.md (remove space before 'mermaid')
2026-03-15 21:10:07 -07:00
Miha Kralj
af799813aa
fix: relax BBB streaming/batch tolerance for cross-platform FP precision
v0.8.8
2026-03-15 18:16:37 -07:00
Miha Kralj
57e69721f5
fix: relax BBB streaming/batch tolerance for cross-platform FP precision
2026-03-15 18:15:47 -07:00
codefactor-io
c0dad33d95
[CodeFactor] Apply fixes to commit d2fa0fc
2026-03-16 00:57:48 +00:00
Miha Kralj
d2fa0fc845
Merge branch 'dev'
2026-03-15 17:57:28 -07:00
Miha Kralj
e3bd07aa87
feat: add ADF (Augmented Dickey-Fuller) indicator
...
- Core implementation with Cholesky OLS, MacKinnon p-value, AIC lag selection
- Three regression models: NoConstant, Constant, ConstantAndTrend
- NormCdf via Abramowitz & Stegun 7.1.26 erf approximation
- Quantower adapter, Python bridge (NativeAOT export + ctypes + wrapper)
- 69 tests (41 unit + 12 validation + 14 Quantower + 2 consistency)
- Documentation with Schwert table, MacKinnon coefficients, PineScript ref
- All 19,095 tests pass, zero warnings
2026-03-15 17:56:54 -07:00
Miha Kralj
ce7b823747
Merge branch 'dev'
2026-03-13 22:41:13 -07:00
Miha Kralj
0468283d45
Add Python benchmark: quantalib NativeAOT vs pandas-ta comparison
...
- New python/tests/benchmark.py mirrors C# perf/Benchmark.cs indicators
(SMA, EMA, WMA, HMA, ADOSC, CORRELATION, SKEW) at 500K bars
- quantalib NativeAOT via ctypes FFI: 2-68x faster than pandas-ta
- Updated docs/benchmarks.md with Python benchmark results section
2026-03-13 22:40:59 -07:00
Miha Kralj
055f57d4db
Merge dev: fix StampReadmeVersion parallel race
2026-03-13 22:08:50 -07:00
Miha Kralj
d3f5fbf4e6
fix: restrict StampReadmeVersion to single project to prevent parallel race corruption
2026-03-13 22:08:37 -07:00
Miha Kralj
0af8459221
fix: deduplicate README.md header badges and update version to 0.8.7
2026-03-13 22:06:29 -07:00
Miha Kralj
8201d3c20e
fix: deduplicate README.md header badges and update version to 0.8.7
2026-03-13 22:05:59 -07:00
codefactor-io
e35ff7fa3f
[CodeFactor] Apply fixes to commit 9697fac
2026-03-14 05:03:08 +00:00
Miha Kralj
9697facfb4
Merge dev into main: v0.8.7 Kahan compensated summation
2026-03-13 22:01:52 -07:00
Miha Kralj
67ad6f0cba
v0.8.7: Replace periodic ResyncInterval with Kahan compensated summation
...
Comprehensive refactor across all indicators replacing the periodic
ResyncInterval-based drift correction (every 1000 ticks recalculate
from scratch) with Kahan compensated summation for running sums.
Key changes:
- Remove ResyncInterval constants and TickCount fields from all State records
- Add Kahan compensation fields (SumComp, SumSqComp, etc.) to State records
- Replace naive sum += val - removed with Kahan delta pattern
- Remove Resync()/RecalculateSum() methods that did O(N) recalculation
- Update batch/SIMD paths to use Kahan compensation instead of resync loops
- IIR filters (EMA, REMA, RGMA) simplified: inherently self-correcting
- Version bump to 0.8.7
- Build system: README version stamping via Directory.Build.props
- Minor doc/test tolerance adjustments for new numerical characteristics
Affected modules: channels, core, cycles, dynamics, errors, momentum,
oscillators, statistics, trends_FIR, trends_IIR, volatility, volume
2026-03-13 22:01:31 -07:00
Miha Kralj
86a1db286c
Merge branch 'dev'
v0.8.6
2026-03-13 13:47:10 -07:00
Miha Kralj
c75135ab14
v0.8.6: update indicator docs, ndepend tooling, ALMA refactor, gitignore cleanup
2026-03-13 13:46:52 -07:00
Miha Kralj
e3e9555fc1
feat(python): add pure-Python EMA fallback per PYTHON_FALLBACK_SPEC
...
Single-function API: ema(source, period=10, *, alpha=None)
- Bias-compensated EMA matching C# Ema.Batch exactly
- NaN/Inf safe with last-valid substitution
- 65 lines, pseudocode-readable reference implementation
- Co-located ema_test.py (15 tests) + tests/test_ema.py (37 tests)
- All 50 tests pass, 2 cross-validation skipped (no native lib)
2026-03-12 21:02:52 -07:00
Miha Kralj
a8946cfab7
Merge branch 'dev'
2026-03-12 14:21:51 -07:00
Miha Kralj
107f64c7c6
docs: rewrite pinescript.md with all 396 .pine indicators
...
Complete rewrite of docs/pinescript.md to include every .pine file
organized by category (core, FIR trends, IIR trends, filters,
oscillators, dynamics, momentum, volatility, volume, channels,
cycles, reversals, forecasts, statistics, numerics, errors).
Previously listed ~120 indicators with many missing categories.
2026-03-12 14:20:41 -07:00
Miha Kralj
ea6a5b11fa
Merge branch 'main' of https://github.com/mihakralj/QuanTAlib
2026-03-12 14:07:40 -07:00
Miha Kralj
8f387e72b8
docs: rewrite README, add docsify search, reorder sidebar, fix license refs
2026-03-12 14:07:03 -07:00
codefactor-io
8f79257155
[CodeFactor] Apply fixes to commit 0606491
2026-03-12 19:37:50 +00:00
Miha Kralj
060649192f
docs: remove C# Implementation Considerations sections, clean up temp scripts, reorganize test files
...
- Remove 'C# Implementation Considerations' sections from 34 indicator .md files
- Delete 29 temp PowerShell scripts (_fix_mojibake.ps1, _hex_scan.ps1, etc.)
- Move test files into tests/ subdirectories for consistent project structure
- Add trader-focused bullet points to indicator documentation
2026-03-12 12:34:16 -07:00
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
b9783f7c03
docs: sweep all indicator references — fix paths, add missing entries, sort alphabetically
...
_sidebar.md:
- Fix 4 wrong DI/DM paths (minus_di→minusdi, minus_dm→minusdm, plus_di→plusdi, plus_dm→plusdm)
- Sort Dynamics section alphabetically
- Add DECAY and EDECAY to Numerics section
lib/dynamics/_index.md:
- Fix HT_TRENDMODE link (Httrendmode.md→HtTrendmode.md)
- Sort all 25 indicators alphabetically
lib/core/_index.md:
- Sort all 8 indicators alphabetically (HA was out of order)
docs/indicators.md:
- FIR: Replace with all 33 entries sorted
- IIR: Replace with all 36 entries sorted
- Filters: Add SAK (now 37 entries)
- Oscillators: Add 17 missing (BBI, BRAR, COPPOCK, CRSI, CTI, DOSC, ER, ERI, FI, KRI, KST, MSTOCH, PSL, QQE, RVGI, SQUEEZE, TD_SEQ) — now 48 entries
- Dynamics: Sort all 25 entries alphabetically
- Statistics: Add POLYFIT, TRIM, WAVG, WINS — now 35 entries sorted
- Numerics: Add FFT, IFFT — now 31 entries sorted
- Core: Add HA — now 8 entries sorted
Total: 402 indicators across 16 categories, all cross-referenced.
2026-03-11 20:36:36 -07:00
Miha Kralj
33d20f2a18
feat(dynamics): add PlusDI, MinusDI, PlusDM, MinusDM indicators
...
Complete thin Dx-composition wrapper indicators with full test coverage:
- PlusDi/MinusDi: Directional Indicator wrappers (DiPlus/DiMinus from Dx)
- PlusDm/MinusDm: Directional Movement wrappers (DmPlus/DmMinus from Dx)
- Individual validation tests per indicator directory (TALib, Skender, bounds)
- Combined unit tests (DiDm.Tests.cs) and validation tests (DiDm.Validation.Tests.cs)
- Quantower wrappers + tests for all 4 indicators
- PineScript v6 implementations with compensated RMA
- Normalized .md documentation for all indicators and categories
- 182 tests passing, 0 failures
2026-03-11 20:21:52 -07:00
Miha Kralj
56b86bebfb
fix: use matched[1] for route capture group to prevent duplicated path in .pine fetch
2026-03-11 18:41:17 -07:00
Miha Kralj
b048786547
fix: use docsify routes config for .pine files to prevent 404
...
Replace beforeEach hook with docsify's routes config that intercepts
.pine URL patterns before docsify attempts to fetch them as .md files.
The route handler fetches the actual .pine file and wraps it in a
markdown code fence, giving each .pine file a unique URL hash.
2026-03-11 18:39:40 -07:00
Miha Kralj
c1abea0857
docs: give .pine files their own URL hash via docsify beforeEach hook
...
Replace manual click-interception plugin with a clean beforeEach hook
that detects .pine routes and wraps raw content in markdown code fences.
This gives each .pine file its own unique URL (e.g. #/lib/.../atr.pine),
supports direct linking, bookmarks, and browser back/forward navigation.
2026-03-11 18:34:58 -07:00
Miha Kralj
19f956521d
docs: add PineScript links to all indicator .md files, docsify .pine renderer with comprehensive Prism v6 syntax highlighting
...
- Added PineScript row to property tables in 375 .md files linking to companion .pine files
- Docsify plugin intercepts .pine link clicks, fetches and renders content as syntax-highlighted code blocks
- Comprehensive Prism.languages.pine grammar covering 18 token categories: annotations, types, qualifiers, namespaces, OHLCV builtins, functions, keywords, operators
- Custom CSS tokens using GitHub dark palette for Pine-specific visual differentiation
2026-03-11 15:36:23 -07:00
codefactor-io
567fa89465
[CodeFactor] Apply fixes to commit 4a01f03
2026-03-11 03:35:12 +00:00