- guard library initialization with sync.Once to avoid duplicate registrations
- refactor loading logic into internalLoad()
- register TA_GetVersionString and expose Version()
- document Version() usage and API behavior in README
- add native TA-Lib bindings in functions.go for beta, correl, linear regression, stddev, tsf, and variance
- register the new TA-Lib symbols in loader.go
- add public wrappers in statistic_functions.go for Beta, Correl, LinearReg, LinearRegAngle, LinearRegIntercept, LinearRegSlope, StdDev, TSF, and Var
- update README.md to document Price Transforms and Statistic Functions
New file price_transform.go implements five new public wrappers:
- AvgPrice (TA_AVGPRICE) – mean of OHLC per bar
- MedPrice (TA_MEDPRICE) – (High + Low) / 2
- TypPrice (TA_TYPPRICE) – (High + Low + Close) / 3
- WCLPrice (TA_WCLPRICE) – (High + Low + 2×Close) / 4
- AvgDev (TA_AVGDEV) – rolling average absolute deviation from SMA
- add corresponding low-level function pointer signatures in functions.go
- register all five symbols in Load() in loader.go
- update README.md with Price Transforms and Statistic Functions sections
- add TA-Lib function pointer signatures in functions.go for:
MA, MAMA, MAVP, MIDPOINT, MIDPRICE, SAR, SAREXT, SMA, T3, TEMA, TRIMA, WMA
- register new symbols in Load() via purego.RegisterLibFunc in loader.go
- add public overlap study wrappers in overlap_studies.go with consistent nil-on-failure behavior
- update README overlap studies list to match implemented API
- add TA-Lib bindings and loader registrations for overlap studies:
TA_ACCBANDS, TA_BBANDS, TA_DEMA, TA_EMA, TA_HT_TRENDLINE, TA_KAMA
- add new public wrappers in overlap_studies.go:
AccBands, BBands, DEMA, EMA, HT_TRENDLINE, KAMA
- refactor momentum wrapper names to consistent Go-style exports
(e.g. Aroon/AroonOsc, MACDExt/MACDFix, Stoch/StochF/StochRSI,
MinusDI/MinusDM, PlusDI/PlusDM, Trix, UltOsc, WillR)
- rename MAType constants to MA_* for clearer namespacing
- update README to reflect the current exported API and overlap coverage
- Add 13 new math transform functions: Cos, Sin, Tan, ACos, ASin, ATan, CosH, SinH, TanH, Ceil, Exp, Floor, Sqrt, Ln, Log10
- Implement proper TA-Lib bindings for all math transform operations
- Add comprehensive documentation comments to all new functions
- Standardize error handling across all wrapper functions using slog.Debug
- Refactor function definitions for consistency and maintainability
The wrapper now exposes a comprehensive set of mathematical operations from TA-Lib,
including trigonometric, hyperbolic, exponential, logarithmic, and rounding functions.
All functions follow the established pattern of vector element-wise transformations.
Add Go wrappers for additional TA-Lib math operators:
Div, Max, MaxIndex, Min, MinIndex, MinMax, MinMaxIndex, Mult, Sub, and Sum.
Refactor the TA-Lib function signatures to use int32 consistently,
including taResult and Hilbert Transform bindings, so the Go layer
matches the native library more closely.
Fix HT_TRENDMODE to return []int32 and update related comments and
naming for better API consistency.