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
|
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
|
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
|
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 |
|
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 |
|
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
|
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
|
c23fbbd99f
|
fix(frama): rewire Python export to use H/L arrays instead of single source
|
2026-03-02 15:56:12 -08:00 |
|
Miha Kralj
|
fa77882be7
|
refactor: remove unused JMA power parameter from entire stack
|
2026-03-01 22:14:30 -08:00 |
|
Miha Kralj
|
ce4416d388
|
fix(python): critical bug fixes across Python wrapper
|
2026-03-01 21:35:19 -08:00 |
|
Miha Kralj
|
768123d056
|
minor
|
2026-02-28 16:05:11 -08:00 |
|
Miha Kralj
|
83e9511261
|
python wrapper
|
2026-02-28 14:14:35 -08:00 |
|