feat: add momentum indicators and expand function coverage

Add a full Momentum Indicators category (momentum_indicators.go) with
26 new wrapped functions:

  ADX, ADXR, APO, AROON, AROONOSC, BOP, CCI, CMO, DX, IMI,
  MACD, MACDEXT, MACDFIX, MFI, MOM, MINUS_DI, MINUS_DM,
  PLUS_DI, PLUS_DM, PPO, ROC, ROCP, ROCR, ROCR100, RSI,
  STOCH, STOCHF, STOCHRSI, TRIX, ULTOSC, WILLR

- Register all new native symbols in Load() (loader.go)
- Declare corresponding native function variables in functions.go
- Add MAType enum (ta_ma_type.go) for MA-type parameters (SMA, EMA,
  WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3)
- Add taResult constants (ta_result.go) mirroring TA-Lib return codes
- Each wrapper includes a doc comment with formula, interpretation, and
  known behavioral edge-case notes
This commit is contained in:
2026-07-24 13:37:34 +09:00
parent e77cd88cd9
commit 4b07e7c741
5 changed files with 1529 additions and 1 deletions
+33 -1
View File
@@ -56,13 +56,45 @@ func Load() (uintptr, error) {
purego.RegisterLibFunc(&tanh, ptr, "TA_TANH")
purego.RegisterLibFunc(&ceil, ptr, "TA_CEIL")
purego.RegisterLibFunc(&exp, ptr, "TA_EXP")
purego.RegisterLibFunc(&floor, ptr, "TA_FLOOR")
purego.RegisterLibFunc(&sqrt, ptr, "TA_SQRT")
purego.RegisterLibFunc(&exp, ptr, "TA_EXP")
purego.RegisterLibFunc(&ln, ptr, "TA_LN")
purego.RegisterLibFunc(&log10, ptr, "TA_LOG10")
purego.RegisterLibFunc(&adx, ptr, "TA_ADX")
purego.RegisterLibFunc(&adxr, ptr, "TA_ADXR")
purego.RegisterLibFunc(&apo, ptr, "TA_APO")
purego.RegisterLibFunc(&aroon, ptr, "TA_AROON")
purego.RegisterLibFunc(&aroonosc, ptr, "TA_AROONOSC")
purego.RegisterLibFunc(&bop, ptr, "TA_BOP")
purego.RegisterLibFunc(&cci, ptr, "TA_CCI")
purego.RegisterLibFunc(&cmo, ptr, "TA_CMO")
purego.RegisterLibFunc(&dx, ptr, "TA_DX")
purego.RegisterLibFunc(&imi, ptr, "TA_IMI")
purego.RegisterLibFunc(&macd, ptr, "TA_MACD")
purego.RegisterLibFunc(&macdext, ptr, "TA_MACDEXT")
purego.RegisterLibFunc(&macdfix, ptr, "TA_MACDFIX")
purego.RegisterLibFunc(&mfi, ptr, "TA_MFI")
purego.RegisterLibFunc(&mom, ptr, "TA_MOM")
purego.RegisterLibFunc(&minus_di, ptr, "TA_MINUS_DI")
purego.RegisterLibFunc(&minus_dm, ptr, "TA_MINUS_DM")
purego.RegisterLibFunc(&plus_di, ptr, "TA_PLUS_DI")
purego.RegisterLibFunc(&plus_dm, ptr, "TA_PLUS_DM")
purego.RegisterLibFunc(&ppo, ptr, "TA_PPO")
purego.RegisterLibFunc(&roc, ptr, "TA_ROC")
purego.RegisterLibFunc(&rocp, ptr, "TA_ROCP")
purego.RegisterLibFunc(&rocr, ptr, "TA_ROCR")
purego.RegisterLibFunc(&rocr100, ptr, "TA_ROCR100")
purego.RegisterLibFunc(&rsi, ptr, "TA_RSI")
purego.RegisterLibFunc(&stoch, ptr, "TA_STOCH")
purego.RegisterLibFunc(&stochf, ptr, "TA_STOCHF")
purego.RegisterLibFunc(&stochrsi, ptr, "TA_STOCHRSI")
purego.RegisterLibFunc(&trix, ptr, "TA_TRIX")
purego.RegisterLibFunc(&ultosc, ptr, "TA_ULTOSC")
purego.RegisterLibFunc(&willr, ptr, "TA_WILLR")
return ptr, nil
}