Miha Kralj
1bd2054aff
Update remaining checkout action
2026-09-22 09:18:58 +02:00
Miha Kralj
cb12eda7d5
updates to workflow
2026-09-22 09:08:46 +02:00
Miha Kralj
5cca7e90fe
Merge main into dev
2026-09-21 11:17:12 +02:00
Miha Kralj
c98b0e2a57
feat: add EPA (Ehlers Phasor Analysis) indicator - TASC Nov 2022
2026-03-19 09:22:04 -07:00
Miha Kralj
cd150a6b36
fix: relax JB SpanVsStreaming tolerance (1e-8 → 1e-1) for 4th-moment drift
2026-03-18 20:53:52 -07:00
Miha Kralj
b1302a4761
feat: add FSI (Ehlers Fourier Series Indicator, TASC June 2019)
2026-03-18 19:58:53 -07:00
Miha Kralj
b79b56dc65
feat: add TBF (Ehlers Truncated BandPass Filter) + fix all 64 warnings
...
TBF indicator:
- Sealed class with RingBuffer, stackalloc scratch, O(Length) per bar
- 7 core files: Tbf.cs, Tbf.Quantower.cs, Tbf.md, tbf.pine, 3 test files
- 67 tests (48 lib + 19 Quantower) all passing
- Full integration: sidebar, indexes, docs, Python bridge, exports
AMFM fix:
- Added envBuf.Clear()/smaBuf.Clear() after stackalloc in Batch
(SkipLocalsInit garbage values caused 8.97e+65 blowup)
Warning fixes (64 → 0):
- Amfm.cs: S125 commented code removed, 11× IDE0011 braces
- Pta.cs: 11× IDE0011 braces on if/else/for/foreach
- Pta.Tests.cs: 14× IDE0011, S1481 unused var, S2699 assertion, 2× MA0074
- Lpf.Quantower.Tests.cs: 2× MA0074 StringComparison
Build: 0 warnings, 0 errors, 20,048 tests passing
2026-03-18 19:10:48 -07:00
Miha Kralj
ef00330de3
fix: sort all _index.md indicator tables alphabetically
...
Fixed sort order in 4 files:
- lib/_index.md: AMFM, PTA, USI/USF repositioned (421 total)
- lib/cycles/_index.md: ACP moved to correct alphabetical position
- lib/oscillators/_index.md: DPO/DSO swap, RRSI/RSIH/RVGI reordered
- lib/numerics/_index.md: NORMALIZE/NORMDIST swap
2026-03-18 10:16:09 -07:00
Miha Kralj
6ac30d37e6
feat: add LPF - Ehlers Linear Predictive Filter (TASC Jan 2025)
...
Implements Ehlers' Linear Predictive Filter for dominant cycle detection:
- Roofing filter (HP + SuperSmoother) → AGC → Griffiths adaptive predictor
- DFT spectrum from predictor coefficients → Center of Gravity dominant cycle
- Outputs: DominantCycle, Signal (AGC-normalized), Predict (one-bar-ahead)
Files added:
- lib/cycles/lpf/Lpf.cs (core implementation, sealed class)
- lib/cycles/lpf/Lpf.Quantower.cs (3 LineSeries: Cycle, Signal, Predict)
- lib/cycles/lpf/Lpf.md (canonical template v3 documentation)
- lib/cycles/lpf/lpf.pine (PineScript v6 reference)
- lib/cycles/lpf/tests/Lpf.Tests.cs (38 unit tests)
- lib/cycles/lpf/tests/Lpf.Quantower.Tests.cs (22 adapter tests)
Updated: index files, Python bridge (Exports.cs, _bridge.py, cycles.py)
2026-03-17 20:24:54 -07:00
Miha Kralj
547367790b
docs(pta): rewrite Pta.md to canonical template v3
...
Add tagline, full property table, 3-bullet summary, extended
historical context, mathematical foundation, parameter mapping,
frequency response analysis, phase lag discussion, quality metrics,
validation table, and detailed common pitfalls.
2026-03-17 19:58:21 -07:00
Miha Kralj
aec3a64e4e
feat(dynamics): add PTA - Ehlers Precision Trend Analysis
...
TASC Sep 2024. Dual 2-pole Butterworth highpass bandpass for
near-zero-lag trend extraction. HP(long) - HP(short) preserves
cycles between shortPeriod and longPeriod.
- Core: Pta.cs with O(1) streaming, Span batch, state rollback
- Quantower: PtaIndicator adapter with LineSeries + SetValue
- Tests: 31 lib + 11 Quantower (all passing)
- Pine: pta.pine PineScript v6 reference
- Docs: Pta.md canonical template v3
- Python: Exports.Generated.cs + _bridge.py + dynamics.py
- Indexes: _sidebar.md, lib/_index.md, dynamics/_index.md,
docs/indicators.md, docs/pinescript.md
2026-03-17 17:25:17 -07:00
Miha Kralj
84d12e5706
feat: add USI (Ehlers Ultimate Strength Index) - TASC Nov 2024
2026-03-17 16:44:48 -07:00
Miha Kralj
d3cb9d2513
feat(cycles): add AMFM - Ehlers AM Detector / FM Demodulator
2026-03-17 15:56:55 -07:00
Miha Kralj
e17b00172a
docs: standardize .md template — add PineScript links, blockquotes, bullet summaries
...
- Eeo.md: full rewrite to canonical template (blockquote, table, 3 bullets, paragraph)
- Ac.md: add PineScript row
- Ao.md: add PineScript row
- Fisher04.md: add table, PineScript row, 3 bullets, paragraph
- TtmWave.md: add PineScript row
- Dstoch.md: full rewrite header (blockquote, canonical table, 3 bullets, paragraph)
- Net.md: add blockquote, canonical table, PineScript row, 3 bullets, paragraph
2026-03-17 15:31:58 -07:00
Miha Kralj
f6ea2fb4df
docs: add eeo.pine link to Eeo.md top table
2026-03-17 15:26:32 -07:00
Miha Kralj
7b1326c696
chore: sort lib/_index.md alphabetically, fix rrsi.pine na propagation
2026-03-17 15:14:22 -07:00
Miha Kralj
7d6536f4dd
fix(rrsi): fix zero-output bug in rrsi.pine caused by na propagation
2026-03-17 15:10:30 -07:00
Miha Kralj
8112009b32
feat(filters): add NET - Ehlers Noise Elimination Technology (TASC Dec 2020)
2026-03-17 14:38:31 -07:00
Miha Kralj
f7dcc20f7c
feat: add EEO (Ehlers Elegant Oscillator) - TASC Feb 2022
2026-03-17 14:18:57 -07:00
Miha Kralj
b9e6a70890
feat: add MADH (Ehlers Moving Average Difference with Hann) indicator
2026-03-17 14:02:51 -07:00
Miha Kralj
b2efbd1a8c
docs: add DMH entry to Python SPEC.md dynamics section
2026-03-17 13:53:10 -07:00
Miha Kralj
b4523b5cca
feat: add MADH (Ehlers Moving Average Difference with Hann) indicator
2026-03-17 13:48:34 -07:00
Miha Kralj
4fa29c04b7
feat: add DMH (Ehlers Directional Movement with Hann) indicator
2026-03-17 13:35:03 -07:00
Miha Kralj
4552d8529d
feat: add RSIH (Ehlers Hann-Windowed RSI) indicator
2026-03-17 12:40:55 -07:00
Miha Kralj
7db48e2418
feat(oscillators): add DSO - Ehlers Deviation-Scaled Oscillator
...
Implement DSO (TASC Oct 2018) with SSF 2-pole filter, RMS normalization,
and Fisher Transform (±0.99 clamp). Sealed class, O(1) streaming RMS via
RingBuffer, precomputed SSF coefficients.
New files: Dso.cs, Dso.Quantower.cs, Dso.md, dso.pine,
Dso.Tests.cs (27), Dso.Validation.Tests.cs (7), Dso.Quantower.Tests.cs (11)
Updated: Exports.cs, _bridge.py, oscillators.py, SPEC.md,
_sidebar.md, lib/_index.md, oscillators/_index.md,
docs/indicators.md, docs/pinescript.md
All 19,565 tests pass, 0 warnings.
2026-03-17 11:59:04 -07:00
Miha Kralj
5fc6e27d8e
Rename EACP to ACP across entire codebase
...
- Renamed directory lib/cycles/eacp → lib/cycles/acp
- Renamed class Eacp → Acp, EacpIndicator → AcpIndicator
- Renamed all files: Eacp.cs → Acp.cs, Eacp.Quantower.cs → Acp.Quantower.cs,
eacp.md → acp.md, eacp.pine → acp.pine, and all test files
- Updated display names: EACP → ACP in Quantower Name/ShortName properties
- Updated all documentation surfaces: _sidebar.md, lib/_index.md,
lib/cycles/_index.md, docs/indicators.md, docs/validation.md,
docs/pinescript.md, lib/cycles/cg/cg.md cross-reference
- Updated Python bridge: qtl_eacp → qtl_acp entry point, _bridge.py,
cycles.py wrapper, SPEC.md, test_shapes.py, run_all_exported
- All 83 tests pass (38 AcpTests + 22 AcpValidationTests + 23 AcpIndicatorTests)
- Build: 0 warnings, 0 errors across all projects
2026-03-17 11:35:11 -07:00
Miha Kralj
329b0657bc
Add "Ehlers" prefix to 5 Ehlers indicators: SAM, PMA, ILRS, CTI, RVGI
...
Standardize naming convention so all Ehlers-originated indicators
have "Ehlers" in their display name across all documentation and
code surfaces:
- SAM: Smoothed Adaptive Momentum → Ehlers Smoothed Adaptive Momentum
- PMA: Predictive Moving Average → Ehlers Predictive Moving Average
- ILRS: Integral of LinReg Slope → Ehlers Integral of LinReg Slope
- CTI: Correlation Trend Indicator → Ehlers Correlation Trend Indicator
- RVGI: Relative Vigor Index → Ehlers Relative Vigor Index
Updated across: .md H1 titles, XML doc summaries, Quantower Name
properties, Quantower test assertions, _sidebar.md, lib/_index.md,
category _index.md files, docs/indicators.md, docs/validation.md.
Build: 0 warnings, 0 errors. All tests pass.
2026-03-17 10:51:24 -07:00
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