mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-07 13:37:44 +00:00
feat: add 8 new indicators with full integration
New indicators: - HWC (Holt-Winters Channel) — channels, 27 tests - VWMACD (Volume-Weighted MACD) — momentum, 38 tests - Squeeze Pro — oscillators, 69 tests - BW_MFI (Bill Williams MFI) — oscillators - DSTOCH (Double Stochastic) — oscillators - ATRSTOP (ATR Trailing Stop) — reversals - VSTOP (Volatility Stop) — reversals - Convexity (Beta Convexity) — statistics, 23 tests Integration: - Python bridge: Exports.cs, _bridge.py, wrapper modules - Documentation: _sidebar.md, _index.md pages, SPEC.md - All analyzer warnings fixed (MA0074, xUnit2013, S2699) Build: 0 warnings, 0 errors | Tests: 15,933 passed, 0 failed
This commit is contained in:
@@ -17,6 +17,7 @@ __all__ = [
|
||||
"dc",
|
||||
"decaychannel",
|
||||
"fcb",
|
||||
"hwc",
|
||||
"jbands",
|
||||
"kc",
|
||||
"maenv",
|
||||
@@ -350,3 +351,17 @@ def apchannel(high: object, low: object, period: int = 20,
|
||||
upper = _out(n); lower = _out(n)
|
||||
_check(_lib.qtl_apchannel(_ptr(h), _ptr(l), n, _ptr(upper), _ptr(lower), float(period)))
|
||||
return _wrap_multi({f"APCU_{period}": upper, f"APCL_{period}": lower}, idx, "channels", offset)
|
||||
|
||||
|
||||
def hwc(close: object, period: int = 20, multiplier: float = 1.0,
|
||||
offset: int = 0, **kwargs) -> object:
|
||||
"""Holt-Winters Channel -> (upper, middle, lower) or DataFrame."""
|
||||
period = int(kwargs.get("length", period)); offset = int(offset)
|
||||
multiplier = float(kwargs.get("mult", multiplier))
|
||||
arr, idx = _arr(close)
|
||||
n = len(arr)
|
||||
upper = _out(n); middle = _out(n); lower = _out(n)
|
||||
_check(_lib.qtl_hwc(_ptr(arr), n, _ptr(upper), _ptr(middle), _ptr(lower), period, multiplier))
|
||||
return _wrap_multi(
|
||||
{f"HWCU_{period}": upper, f"HWCM_{period}": middle, f"HWCL_{period}": lower},
|
||||
idx, "channels", offset)
|
||||
|
||||
Reference in New Issue
Block a user