feat: add CMOU and candlestick pattern wrappers

- add CMOU momentum wrapper in `momentum_indicators.go`
- add `Cdl*` pattern-recognition wrappers in `pattern_recognitions.go`
- register `TA_CMOU` and `TA_CDL*` symbols in `loader.go`
- add corresponding function pointer signatures in `functions.go`
- sync `README.md` with CMOU and pattern-recognition API docs
This commit is contained in:
2026-07-28 16:23:50 +09:00
parent 88997a62ef
commit c7f21b073e
5 changed files with 1608 additions and 1 deletions
+38
View File
@@ -97,6 +97,7 @@ func internalLoad() (uintptr, error) {
purego.RegisterLibFunc(&bop, ptr, "TA_BOP")
purego.RegisterLibFunc(&cci, ptr, "TA_CCI")
purego.RegisterLibFunc(&cmo, ptr, "TA_CMO")
purego.RegisterLibFunc(&cmou, ptr, "TA_CMOU")
purego.RegisterLibFunc(&dx, ptr, "TA_DX")
purego.RegisterLibFunc(&imi, ptr, "TA_IMI")
purego.RegisterLibFunc(&macd, ptr, "TA_MACD")
@@ -168,6 +169,43 @@ func internalLoad() (uintptr, error) {
purego.RegisterLibFunc(&pvi, ptr, "TA_PVI")
purego.RegisterLibFunc(&pvo, ptr, "TA_PVO")
purego.RegisterLibFunc(&cdl2crows, ptr, "TA_CDL2CROWS")
purego.RegisterLibFunc(&cdl3blackcrows, ptr, "TA_CDL3BLACKCROWS")
purego.RegisterLibFunc(&cdl3inside, ptr, "TA_CDL3INSIDE")
purego.RegisterLibFunc(&cdl3linestrike, ptr, "TA_CDL3LINESTRIKE")
purego.RegisterLibFunc(&cdl3outside, ptr, "TA_CDL3OUTSIDE")
purego.RegisterLibFunc(&cdl3starsinsouth, ptr, "TA_CDL3STARSINSOUTH")
purego.RegisterLibFunc(&cdl3whitesoldiers, ptr, "TA_CDL3WHITESOLDIERS")
purego.RegisterLibFunc(&cdlabandonedbaby, ptr, "TA_CDLABANDONEDBABY")
purego.RegisterLibFunc(&cdladvanceblock, ptr, "TA_CDLADVANCEBLOCK")
purego.RegisterLibFunc(&cdlbelthold, ptr, "TA_CDLBELTHOLD")
purego.RegisterLibFunc(&cdlbreakaway, ptr, "TA_CDLBREAKAWAY")
purego.RegisterLibFunc(&cdlclosingmarubozu, ptr, "TA_CDLCLOSINGMARUBOZU")
purego.RegisterLibFunc(&cdlconcealbabyswall, ptr, "TA_CDLCONCEALBABYSWALL")
purego.RegisterLibFunc(&cdlcounterattack, ptr, "TA_CDLCOUNTERATTACK")
purego.RegisterLibFunc(&cdldarkcloudcover, ptr, "TA_CDLDARKCLOUDCOVER")
purego.RegisterLibFunc(&cdldoji, ptr, "TA_CDLDOJI")
purego.RegisterLibFunc(&cdldojistar, ptr, "TA_CDLDOJISTAR")
purego.RegisterLibFunc(&cdldragonflydoji, ptr, "TA_CDLDRAGONFLYDOJI")
purego.RegisterLibFunc(&cdlengulfing, ptr, "TA_CDLENGULFING")
purego.RegisterLibFunc(&cdleveningdojistar, ptr, "TA_CDLEVENINGDOJISTAR")
purego.RegisterLibFunc(&cdleveningstar, ptr, "TA_CDLEVENINGSTAR")
purego.RegisterLibFunc(&cdlgapsidesidewhite, ptr, "TA_CDLGAPSIDESIDEWHITE")
purego.RegisterLibFunc(&cdlgravestonedoji, ptr, "TA_CDLGRAVESTONEDOJI")
purego.RegisterLibFunc(&cdlhammer, ptr, "TA_CDLHAMMER")
purego.RegisterLibFunc(&cdlhangingman, ptr, "TA_CDLHANGINGMAN")
purego.RegisterLibFunc(&cdlharami, ptr, "TA_CDLHARAMI")
purego.RegisterLibFunc(&cdlharamicross, ptr, "TA_CDLHARAMICROSS")
purego.RegisterLibFunc(&cdlhighwave, ptr, "TA_CDLHIGHWAVE")
purego.RegisterLibFunc(&cdlhikkake, ptr, "TA_CDLHIKKAKE")
purego.RegisterLibFunc(&cdlhikkakemod, ptr, "TA_CDLHIKKAKEMOD")
purego.RegisterLibFunc(&cdlhomingpigeon, ptr, "TA_CDLHOMINGPIGEON")
purego.RegisterLibFunc(&cdlidentical3crows, ptr, "TA_CDLIDENTICAL3CROWS")
purego.RegisterLibFunc(&cdlinneck, ptr, "TA_CDLINNECK")
purego.RegisterLibFunc(&cdlinvertedhammer, ptr, "TA_CDLINVERTEDHAMMER")
purego.RegisterLibFunc(&cdlkicking, ptr, "TA_CDLKICKING")
purego.RegisterLibFunc(&cdlkickingbylength, ptr, "TA_CDLKICKINGBYLENGTH")
return ptr, nil
}