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
This commit is contained in:
Miha Kralj
2026-03-11 20:21:52 -07:00
parent 56b86bebfb
commit 33d20f2a18
437 changed files with 4589 additions and 2792 deletions
+2 -21
View File
@@ -1,5 +1,7 @@
# HT_SINE: Ehlers Hilbert Transform SineWave (also known as SINE)
> *The Hilbert sine wave renders cycle timing visible — crossovers of sine and lead-sine mark turning points.*
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Cycle |
@@ -70,27 +72,6 @@ $O(P)$ per bar where $P$ is the smoothed period (typically 6-50), due to the DFT
All constants are fixed by the TA-Lib specification.
### Pseudo-code
```
function HT_SINE(source):
// Full Hilbert cascade (same as HT_DCPHASE)
// Produces: smoothPeriod, smoothPriceBuf, dcPhase
for each bar (after warmup):
// Phase from DFT accumulation (see HT_DCPHASE)
φ ← computeDCPhase(smoothPeriod, smoothPriceBuf)
// Convert phase to radians
φ_rad ← φ · (π / 180)
// Dual sine output
sine ← sin(φ_rad)
leadSine ← sin(φ_rad + π/4) // 45° lead
emit sine, leadSine
```
### Crossover Signals
| Pattern | Signal |