Files
QuanTAlib/python/quantalib/dynamics.py
T

296 lines
12 KiB
Python
Raw Permalink Normal View History

"""quantalib dynamics indicators.
Auto-generated — DO NOT EDIT.
"""
from __future__ import annotations
from ._helpers import _arr, _ptr, _out, _wrap, _wrap_multi, _check, _lib
__all__ = [
"adx",
"adxr",
"alligator",
"amat",
"aroon",
"aroonosc",
"chop",
"dmx",
"dx",
"ghla",
"ht_trendmode",
"ichimoku",
"impulse",
"pfe",
"qstick",
"ravi",
"supertrend",
"ttm_squeeze",
"ttm_trend",
"vhf",
"vortex",
]
def adx(high: object, low: object, close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
"""Average Directional Index."""
period = int(kwargs.get("length", period))
offset = int(offset)
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
n = len(h)
destination = _out(n)
_check(_lib.qtl_adx(_ptr(h), _ptr(l), _ptr(c), period, n, _ptr(destination)))
return _wrap(destination, idx, f"ADX_{period}", "dynamics", offset)
def adxr(high: object, low: object, close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
"""ADX Rating."""
period = int(kwargs.get("length", period))
offset = int(offset)
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
n = len(h)
destination = _out(n)
_check(_lib.qtl_adxr(_ptr(h), _ptr(l), _ptr(c), period, n, _ptr(destination)))
return _wrap(destination, idx, f"ADXR_{period}", "dynamics", offset)
def alligator(open: object, high: object, low: object, close: object, volume: object, jawPeriod: int = 13, jawOffset: int = 8, teethPeriod: int = 8, teethOffset: int = 5, lipsPeriod: int = 5, lipsOffset: int = 3, offset: int = 0, **kwargs) -> object:
"""Williams Alligator."""
jawPeriod = int(jawPeriod)
jawOffset = int(jawOffset)
teethPeriod = int(teethPeriod)
teethOffset = int(teethOffset)
lipsPeriod = int(lipsPeriod)
lipsOffset = int(lipsOffset)
offset = int(offset)
o, idx = _arr(open); h, _ = _arr(high); l, _ = _arr(low)
c, _ = _arr(close); v, _ = _arr(volume)
n = len(o)
dst = _out(n)
_check(_lib.qtl_alligator(_ptr(o), _ptr(h), _ptr(l), _ptr(c), _ptr(v), jawPeriod, jawOffset, teethPeriod, teethOffset, lipsPeriod, lipsOffset, n, _ptr(dst)))
return _wrap(dst, idx, f"ALLIGATOR_{jawPeriod}", "dynamics", offset)
def amat(close: object, fastPeriod: int = 12, slowPeriod: int = 26, offset: int = 0, **kwargs) -> object:
"""Archer Moving Average Trends."""
fastPeriod = int(fastPeriod)
slowPeriod = int(slowPeriod)
offset = int(offset)
src, idx = _arr(close)
n = len(src)
trend = _out(n)
strength = _out(n)
_check(_lib.qtl_amat(_ptr(src), _ptr(trend), _ptr(strength), n, fastPeriod, slowPeriod))
return _wrap_multi({"trend": trend, "strength": strength}, idx, "dynamics", offset)
def aroon(high: object, low: object, period: int = 14, offset: int = 0, **kwargs) -> object:
"""Aroon."""
period = int(kwargs.get("length", period))
offset = int(offset)
h, idx = _arr(high); l, _ = _arr(low)
n = len(h)
destination = _out(n)
_check(_lib.qtl_aroon(_ptr(h), _ptr(l), period, n, _ptr(destination)))
return _wrap(destination, idx, f"AROON_{period}", "dynamics", offset)
def aroonosc(high: object, low: object, period: int = 14, offset: int = 0, **kwargs) -> object:
"""Aroon Oscillator."""
period = int(kwargs.get("length", period))
offset = int(offset)
h, idx = _arr(high); l, _ = _arr(low)
n = len(h)
destination = _out(n)
_check(_lib.qtl_aroonosc(_ptr(h), _ptr(l), period, n, _ptr(destination)))
return _wrap(destination, idx, f"AROONOSC_{period}", "dynamics", offset)
def chop(open: object, high: object, low: object, close: object, volume: object, period: int = 14, offset: int = 0, **kwargs) -> object:
"""Choppiness Index."""
period = int(kwargs.get("length", period))
offset = int(offset)
o, idx = _arr(open); h, _ = _arr(high); l, _ = _arr(low)
c, _ = _arr(close); v, _ = _arr(volume)
n = len(o)
dst = _out(n)
_check(_lib.qtl_chop(_ptr(o), _ptr(h), _ptr(l), _ptr(c), _ptr(v), period, n, _ptr(dst)))
return _wrap(dst, idx, f"CHOP_{period}", "dynamics", offset)
def dmx(high: object, low: object, close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
"""Directional Movement Extended."""
period = int(kwargs.get("length", period))
offset = int(offset)
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
n = len(h)
destination = _out(n)
_check(_lib.qtl_dmx(_ptr(h), _ptr(l), _ptr(c), period, n, _ptr(destination)))
return _wrap(destination, idx, f"DMX_{period}", "dynamics", offset)
def dx(high: object, low: object, close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
"""Directional Movement Index."""
period = int(kwargs.get("length", period))
offset = int(offset)
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
n = len(h)
destination = _out(n)
_check(_lib.qtl_dx(_ptr(h), _ptr(l), _ptr(c), period, n, _ptr(destination)))
return _wrap(destination, idx, f"DX_{period}", "dynamics", offset)
def ghla(high: object, low: object, close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
"""Gann Hi-Lo Activator."""
period = int(kwargs.get("length", period))
offset = int(offset)
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
n = len(h)
output = _out(n)
_check(_lib.qtl_ghla(_ptr(h), _ptr(l), _ptr(c), _ptr(output), n, period))
return _wrap(output, idx, f"GHLA_{period}", "dynamics", offset)
def ht_trendmode(close: object, offset: int = 0, **kwargs) -> object:
"""Hilbert Transform Trend Mode."""
offset = int(offset)
src, idx = _arr(close)
n = len(src)
output = _out(n)
_check(_lib.qtl_httrendmode(_ptr(src), _ptr(output), n))
return _wrap(output, idx, "HT_TRENDMODE", "dynamics", offset)
def ichimoku(open: object, high: object, low: object, close: object, volume: object, tenkanPeriod: int = 9, kijunPeriod: int = 26, senkouBPeriod: int = 52, displacement: int = 26, offset: int = 0, **kwargs) -> object:
"""Ichimoku Cloud."""
tenkanPeriod = int(tenkanPeriod)
kijunPeriod = int(kijunPeriod)
senkouBPeriod = int(senkouBPeriod)
displacement = int(displacement)
offset = int(offset)
o, idx = _arr(open); h, _ = _arr(high); l, _ = _arr(low)
c, _ = _arr(close); v, _ = _arr(volume)
n = len(o)
dstTenkan = _out(n)
dstKijun = _out(n)
dstSenkouA = _out(n)
dstSenkouB = _out(n)
dstChikou = _out(n)
_check(_lib.qtl_ichimoku(_ptr(o), _ptr(h), _ptr(l), _ptr(c), _ptr(v), tenkanPeriod, kijunPeriod, senkouBPeriod, displacement, n, _ptr(dstTenkan), _ptr(dstKijun), _ptr(dstSenkouA), _ptr(dstSenkouB), _ptr(dstChikou)))
return _wrap_multi({"dstTenkan": dstTenkan, "dstKijun": dstKijun, "dstSenkouA": dstSenkouA, "dstSenkouB": dstSenkouB, "dstChikou": dstChikou}, idx, "dynamics", offset)
def impulse(close: object, emaPeriod: int = 13, macdFast: int = 12, macdSlow: int = 26, macdSignal: int = 9, offset: int = 0, **kwargs) -> object:
"""Elder Impulse System."""
emaPeriod = int(emaPeriod)
macdFast = int(macdFast)
macdSlow = int(macdSlow)
macdSignal = int(macdSignal)
offset = int(offset)
src, idx = _arr(close)
n = len(src)
dst = _out(n)
_check(_lib.qtl_impulse(_ptr(src), emaPeriod, macdFast, macdSlow, macdSignal, n, _ptr(dst)))
return _wrap(dst, idx, f"IMPULSE_{emaPeriod}", "dynamics", offset)
def pfe(close: object, period: int = 14, smoothPeriod: int = 5, offset: int = 0, **kwargs) -> object:
"""Polarized Fractal Efficiency."""
period = int(kwargs.get("length", period))
smoothPeriod = int(smoothPeriod)
offset = int(offset)
src, idx = _arr(close)
n = len(src)
output = _out(n)
_check(_lib.qtl_pfe(_ptr(src), _ptr(output), n, period, smoothPeriod))
return _wrap(output, idx, f"PFE_{period}", "dynamics", offset)
def qstick(open: object, high: object, low: object, close: object, volume: object, period: int = 14, useEma: int = 0, offset: int = 0, **kwargs) -> object:
"""QStick."""
period = int(kwargs.get("length", period))
useEma = int(useEma)
offset = int(offset)
o, idx = _arr(open); h, _ = _arr(high); l, _ = _arr(low)
c, _ = _arr(close); v, _ = _arr(volume)
n = len(o)
dst = _out(n)
_check(_lib.qtl_qstick(_ptr(o), _ptr(h), _ptr(l), _ptr(c), _ptr(v), period, useEma, n, _ptr(dst)))
return _wrap(dst, idx, f"QSTICK_{period}", "dynamics", offset)
def ravi(close: object, shortPeriod: int = 12, longPeriod: int = 26, offset: int = 0, **kwargs) -> object:
"""Range Action Verification Index."""
shortPeriod = int(shortPeriod)
longPeriod = int(longPeriod)
offset = int(offset)
src, idx = _arr(close)
n = len(src)
output = _out(n)
_check(_lib.qtl_ravi(_ptr(src), _ptr(output), n, shortPeriod, longPeriod))
return _wrap(output, idx, f"RAVI_{shortPeriod}", "dynamics", offset)
def supertrend(open: object, high: object, low: object, close: object, volume: object, period: int = 14, multiplier: float = 2.0, offset: int = 0, **kwargs) -> object:
"""SuperTrend."""
period = int(kwargs.get("length", period))
multiplier = float(multiplier)
offset = int(offset)
o, idx = _arr(open); h, _ = _arr(high); l, _ = _arr(low)
c, _ = _arr(close); v, _ = _arr(volume)
n = len(o)
dst = _out(n)
_check(_lib.qtl_super(_ptr(o), _ptr(h), _ptr(l), _ptr(c), _ptr(v), period, multiplier, n, _ptr(dst)))
return _wrap(dst, idx, f"SUPER_{period}", "dynamics", offset)
def ttm_squeeze(open: object, high: object, low: object, close: object, volume: object, bbPeriod: int = 20, bbMult: float = 2.0, kcPeriod: int = 10, kcMult: float = 1.5, momPeriod: int = 12, offset: int = 0, **kwargs) -> object:
"""TTM Squeeze."""
bbPeriod = int(bbPeriod)
bbMult = float(bbMult)
kcPeriod = int(kcPeriod)
kcMult = float(kcMult)
momPeriod = int(momPeriod)
offset = int(offset)
o, idx = _arr(open); h, _ = _arr(high); l, _ = _arr(low)
c, _ = _arr(close); v, _ = _arr(volume)
n = len(o)
dst = _out(n)
_check(_lib.qtl_ttmsqueeze(_ptr(o), _ptr(h), _ptr(l), _ptr(c), _ptr(v), bbPeriod, bbMult, kcPeriod, kcMult, momPeriod, n, _ptr(dst)))
return _wrap(dst, idx, f"TTM_SQUEEZE_{bbPeriod}", "dynamics", offset)
def ttm_trend(open: object, high: object, low: object, close: object, volume: object, period: int = 14, offset: int = 0, **kwargs) -> object:
"""TTM Trend."""
period = int(kwargs.get("length", period))
offset = int(offset)
o, idx = _arr(open); h, _ = _arr(high); l, _ = _arr(low)
c, _ = _arr(close); v, _ = _arr(volume)
n = len(o)
dst = _out(n)
_check(_lib.qtl_ttmtrend(_ptr(o), _ptr(h), _ptr(l), _ptr(c), _ptr(v), period, n, _ptr(dst)))
return _wrap(dst, idx, f"TTM_TREND_{period}", "dynamics", offset)
def vhf(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
"""Vertical Horizontal Filter."""
period = int(kwargs.get("length", period))
offset = int(offset)
src, idx = _arr(close)
n = len(src)
output = _out(n)
_check(_lib.qtl_vhf(_ptr(src), _ptr(output), n, period))
return _wrap(output, idx, f"VHF_{period}", "dynamics", offset)
def vortex(high: object, low: object, close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
"""Vortex Indicator."""
period = int(kwargs.get("length", period))
offset = int(offset)
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
n = len(h)
viPlus = _out(n)
viMinus = _out(n)
_check(_lib.qtl_vortex(_ptr(h), _ptr(l), _ptr(c), period, _ptr(viPlus), n, _ptr(viMinus)))
return _wrap_multi({"viPlus": viPlus, "viMinus": viMinus}, idx, "dynamics", offset)