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 -13
View File
@@ -1,5 +1,7 @@
# MIDBODY: Open-Close Average
> *The average of open and close reveals the candle body's center — where intent met execution.*
| Property | Value |
| ---------------- | -------------------------------- |
| **Category** | Core |
@@ -70,13 +72,6 @@ None. OC2 is parameterless.
| AVGPRICE | $(O+H+L+C) \times 0.25$ | O, H, L, C | Fully balanced |
| WCLPRICE | $(H+L+2C) \times 0.25$ | H, L, C | Close double-weighted |
### Pseudo-code
```text
function Midbody(bar):
return (bar.Open + bar.Close) * 0.5
```
### Output Interpretation
- OC2 > Close: bar closed below its midpoint (bearish lean)
@@ -119,9 +114,3 @@ The batch loop is a trivial element-wise `(a[i] + b[i]) * 0.5`. Auto-vectorizati
- **Skender.Stock.Indicators** `CandlePart.OC2` enum documentation.
- **Murphy, J.J.** *Technical Analysis of the Financial Markets*. New York Institute of Finance, 1999.