mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-07-28 01:37:43 +00:00
feat: add length->period kwargs alias across all 168 indicator functions for pandas-ta compat
This commit is contained in:
@@ -36,7 +36,7 @@ __all__ = [
|
||||
|
||||
def aberr(close: object, period: int = 14, multiplier: float = 2.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Aberration Bands."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
multiplier = float(multiplier)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -50,7 +50,7 @@ def aberr(close: object, period: int = 14, multiplier: float = 2.0, offset: int
|
||||
|
||||
def accbands(high: object, low: object, close: object, period: int = 14, factor: float = 2.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Acceleration Bands."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
factor = float(factor)
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
|
||||
@@ -64,7 +64,7 @@ def accbands(high: object, low: object, close: object, period: int = 14, factor:
|
||||
|
||||
def apz(open: object, high: object, low: object, close: object, volume: object, period: int = 14, multiplier: float = 2.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Adaptive Price Zone."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
multiplier = float(multiplier)
|
||||
offset = int(offset)
|
||||
o, idx = _arr(open); h, _ = _arr(high); l, _ = _arr(low)
|
||||
@@ -79,7 +79,7 @@ def apz(open: object, high: object, low: object, close: object, volume: object,
|
||||
|
||||
def dchannel(high: object, low: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Donchian Channel."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low)
|
||||
n = len(h)
|
||||
@@ -92,7 +92,7 @@ def dchannel(high: object, low: object, period: int = 14, offset: int = 0, **kwa
|
||||
|
||||
def decaychannel(high: object, low: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Decay Channel."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low)
|
||||
n = len(h)
|
||||
@@ -105,7 +105,7 @@ def decaychannel(high: object, low: object, period: int = 14, offset: int = 0, *
|
||||
|
||||
def fcb(high: object, low: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Fractal Chaos Bands."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low)
|
||||
n = len(h)
|
||||
@@ -118,7 +118,7 @@ def fcb(high: object, low: object, period: int = 14, offset: int = 0, **kwargs)
|
||||
|
||||
def jbands(close: object, period: int = 14, phase: int = 0, offset: int = 0, **kwargs) -> object:
|
||||
"""J-Line Bands."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
phase = int(phase)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -132,7 +132,7 @@ def jbands(close: object, period: int = 14, phase: int = 0, offset: int = 0, **k
|
||||
|
||||
def kchannel(high: object, low: object, close: object, period: int = 14, multiplier: float = 2.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Keltner Channel."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
multiplier = float(multiplier)
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
|
||||
@@ -146,7 +146,7 @@ def kchannel(high: object, low: object, close: object, period: int = 14, multipl
|
||||
|
||||
def maenv(close: object, period: int = 14, percentage: float = 2.5, maType: int = 0, offset: int = 0, **kwargs) -> object:
|
||||
"""Moving Average Envelope."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
percentage = float(percentage)
|
||||
maType = int(maType)
|
||||
offset = int(offset)
|
||||
@@ -161,7 +161,7 @@ def maenv(close: object, period: int = 14, percentage: float = 2.5, maType: int
|
||||
|
||||
def mmchannel(high: object, low: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Min-Max Channel."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low)
|
||||
n = len(h)
|
||||
@@ -173,7 +173,7 @@ def mmchannel(high: object, low: object, period: int = 14, offset: int = 0, **kw
|
||||
|
||||
def pchannel(high: object, low: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Price Channel."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low)
|
||||
n = len(h)
|
||||
@@ -186,7 +186,7 @@ def pchannel(high: object, low: object, period: int = 14, offset: int = 0, **kwa
|
||||
|
||||
def regchannel(close: object, period: int = 14, multiplier: float = 2.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Regression Channel."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
multiplier = float(multiplier)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -200,7 +200,7 @@ def regchannel(close: object, period: int = 14, multiplier: float = 2.0, offset:
|
||||
|
||||
def sdchannel(close: object, period: int = 14, multiplier: float = 2.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Standard Deviation Channel."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
multiplier = float(multiplier)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -214,7 +214,7 @@ def sdchannel(close: object, period: int = 14, multiplier: float = 2.0, offset:
|
||||
|
||||
def starchannel(high: object, low: object, close: object, period: int = 14, multiplier: float = 2.0, atrPeriod: int = 22, offset: int = 0, **kwargs) -> object:
|
||||
"""Stoller Average Range Channel (STARC)."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
multiplier = float(multiplier)
|
||||
atrPeriod = int(atrPeriod)
|
||||
offset = int(offset)
|
||||
@@ -229,7 +229,7 @@ def starchannel(high: object, low: object, close: object, period: int = 14, mult
|
||||
|
||||
def stbands(high: object, low: object, close: object, period: int = 14, multiplier: float = 2.0, offset: int = 0, **kwargs) -> object:
|
||||
"""SuperTrend Bands."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
multiplier = float(multiplier)
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
|
||||
@@ -243,7 +243,7 @@ def stbands(high: object, low: object, close: object, period: int = 14, multipli
|
||||
|
||||
def ttm_lrc(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""TTM Linear Regression Channel."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -258,7 +258,7 @@ def ttm_lrc(close: object, period: int = 14, offset: int = 0, **kwargs) -> objec
|
||||
|
||||
def ubands(close: object, period: int = 14, multiplier: float = 2.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Upper/Lower Bands."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
multiplier = float(multiplier)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
|
||||
@@ -34,7 +34,7 @@ def ha(open: object, high: object, low: object, close: object, offset: int = 0,
|
||||
|
||||
def midpoint(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Midpoint = src[i] over period."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -45,7 +45,7 @@ def midpoint(close: object, period: int = 14, offset: int = 0, **kwargs) -> obje
|
||||
|
||||
def midprice(high: object, low: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Mid Price = (High+Low)/2 over period."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low)
|
||||
n = len(h)
|
||||
|
||||
@@ -100,7 +100,7 @@ def solar(close: object, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def ssfdsp(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Supersmoother DSP."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
|
||||
@@ -34,7 +34,7 @@ __all__ = [
|
||||
|
||||
def adx(high: object, low: object, close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Average Directional Index."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
|
||||
n = len(h)
|
||||
@@ -45,7 +45,7 @@ def adx(high: object, low: object, close: object, period: int = 14, offset: int
|
||||
|
||||
def adxr(high: object, low: object, close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""ADX Rating."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
|
||||
n = len(h)
|
||||
@@ -86,7 +86,7 @@ def amat(close: object, fastPeriod: int = 12, slowPeriod: int = 26, offset: int
|
||||
|
||||
def aroon(high: object, low: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Aroon."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low)
|
||||
n = len(h)
|
||||
@@ -97,7 +97,7 @@ def aroon(high: object, low: object, period: int = 14, offset: int = 0, **kwargs
|
||||
|
||||
def aroonosc(high: object, low: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Aroon Oscillator."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low)
|
||||
n = len(h)
|
||||
@@ -108,7 +108,7 @@ def aroonosc(high: object, low: object, period: int = 14, offset: int = 0, **kwa
|
||||
|
||||
def chop(open: object, high: object, low: object, close: object, volume: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Choppiness Index."""
|
||||
period = int(period)
|
||||
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)
|
||||
@@ -120,7 +120,7 @@ def chop(open: object, high: object, low: object, close: object, volume: object,
|
||||
|
||||
def dmx(high: object, low: object, close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Directional Movement Extended."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
|
||||
n = len(h)
|
||||
@@ -131,7 +131,7 @@ def dmx(high: object, low: object, close: object, period: int = 14, offset: int
|
||||
|
||||
def dx(high: object, low: object, close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Directional Movement Index."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
|
||||
n = len(h)
|
||||
@@ -142,7 +142,7 @@ def dx(high: object, low: object, close: object, period: int = 14, offset: int =
|
||||
|
||||
def ghla(high: object, low: object, close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Gann Hi-Lo Activator."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
|
||||
n = len(h)
|
||||
@@ -196,7 +196,7 @@ def impulse(close: object, emaPeriod: int = 13, macdFast: int = 12, macdSlow: in
|
||||
|
||||
def pfe(close: object, period: int = 14, smoothPeriod: int = 5, offset: int = 0, **kwargs) -> object:
|
||||
"""Polarized Fractal Efficiency."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
smoothPeriod = int(smoothPeriod)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -208,7 +208,7 @@ def pfe(close: object, period: int = 14, smoothPeriod: int = 5, offset: int = 0,
|
||||
|
||||
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(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
useEma = int(useEma)
|
||||
offset = int(offset)
|
||||
o, idx = _arr(open); h, _ = _arr(high); l, _ = _arr(low)
|
||||
@@ -233,7 +233,7 @@ def ravi(close: object, shortPeriod: int = 12, longPeriod: int = 26, offset: int
|
||||
|
||||
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(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
multiplier = float(multiplier)
|
||||
offset = int(offset)
|
||||
o, idx = _arr(open); h, _ = _arr(high); l, _ = _arr(low)
|
||||
@@ -262,7 +262,7 @@ def ttm_squeeze(open: object, high: object, low: object, close: object, volume:
|
||||
|
||||
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(period)
|
||||
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)
|
||||
@@ -274,7 +274,7 @@ def ttm_trend(open: object, high: object, low: object, close: object, volume: ob
|
||||
|
||||
def vhf(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Vertical Horizontal Filter."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -285,7 +285,7 @@ def vhf(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def vortex(high: object, low: object, close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Vortex Indicator."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
|
||||
n = len(h)
|
||||
|
||||
+22
-22
@@ -39,7 +39,7 @@ __all__ = [
|
||||
|
||||
def huber(actual: object, predicted: object, period: int = 14, delta: float = 1.35, offset: int = 0, **kwargs) -> object:
|
||||
"""Huber Loss."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
delta = float(delta)
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
@@ -51,7 +51,7 @@ def huber(actual: object, predicted: object, period: int = 14, delta: float = 1.
|
||||
|
||||
def logcosh(actual: object, predicted: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Log-Cosh Loss."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
n = len(a)
|
||||
@@ -62,7 +62,7 @@ def logcosh(actual: object, predicted: object, period: int = 14, offset: int = 0
|
||||
|
||||
def maape(actual: object, predicted: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Mean Arctangent Absolute Percentage Error."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
n = len(a)
|
||||
@@ -73,7 +73,7 @@ def maape(actual: object, predicted: object, period: int = 14, offset: int = 0,
|
||||
|
||||
def mapd(actual: object, predicted: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Mean Absolute Percentage Deviation."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
n = len(a)
|
||||
@@ -84,7 +84,7 @@ def mapd(actual: object, predicted: object, period: int = 14, offset: int = 0, *
|
||||
|
||||
def mase(actual: object, predicted: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Mean Absolute Scaled Error."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
n = len(a)
|
||||
@@ -95,7 +95,7 @@ def mase(actual: object, predicted: object, period: int = 14, offset: int = 0, *
|
||||
|
||||
def mdae(actual: object, predicted: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Median Absolute Error."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
n = len(a)
|
||||
@@ -106,7 +106,7 @@ def mdae(actual: object, predicted: object, period: int = 14, offset: int = 0, *
|
||||
|
||||
def mdape(actual: object, predicted: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Median Absolute Percentage Error."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
n = len(a)
|
||||
@@ -117,7 +117,7 @@ def mdape(actual: object, predicted: object, period: int = 14, offset: int = 0,
|
||||
|
||||
def me(actual: object, predicted: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Mean Error."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
n = len(a)
|
||||
@@ -128,7 +128,7 @@ def me(actual: object, predicted: object, period: int = 14, offset: int = 0, **k
|
||||
|
||||
def mpe(actual: object, predicted: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Mean Percentage Error."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
n = len(a)
|
||||
@@ -139,7 +139,7 @@ def mpe(actual: object, predicted: object, period: int = 14, offset: int = 0, **
|
||||
|
||||
def mrae(actual: object, predicted: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Mean Relative Absolute Error."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
n = len(a)
|
||||
@@ -150,7 +150,7 @@ def mrae(actual: object, predicted: object, period: int = 14, offset: int = 0, *
|
||||
|
||||
def msle(actual: object, predicted: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Mean Squared Logarithmic Error."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
n = len(a)
|
||||
@@ -161,7 +161,7 @@ def msle(actual: object, predicted: object, period: int = 14, offset: int = 0, *
|
||||
|
||||
def pseudohuber(actual: object, predicted: object, period: int = 14, delta: float = 1.35, offset: int = 0, **kwargs) -> object:
|
||||
"""Pseudo-Huber Loss."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
delta = float(delta)
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
@@ -173,7 +173,7 @@ def pseudohuber(actual: object, predicted: object, period: int = 14, delta: floa
|
||||
|
||||
def quantileloss(actual: object, predicted: object, period: int = 14, quantile: float = 0.5, offset: int = 0, **kwargs) -> object:
|
||||
"""Quantile Loss (Pinball Loss)."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
quantile = float(quantile)
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
@@ -185,7 +185,7 @@ def quantileloss(actual: object, predicted: object, period: int = 14, quantile:
|
||||
|
||||
def rae(actual: object, predicted: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Relative Absolute Error."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
n = len(a)
|
||||
@@ -196,7 +196,7 @@ def rae(actual: object, predicted: object, period: int = 14, offset: int = 0, **
|
||||
|
||||
def rmsle(actual: object, predicted: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Root Mean Squared Logarithmic Error."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
n = len(a)
|
||||
@@ -207,7 +207,7 @@ def rmsle(actual: object, predicted: object, period: int = 14, offset: int = 0,
|
||||
|
||||
def rse(actual: object, predicted: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Relative Squared Error."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
n = len(a)
|
||||
@@ -218,7 +218,7 @@ def rse(actual: object, predicted: object, period: int = 14, offset: int = 0, **
|
||||
|
||||
def rsquared(actual: object, predicted: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""R-Squared (Coefficient of Determination)."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
n = len(a)
|
||||
@@ -229,7 +229,7 @@ def rsquared(actual: object, predicted: object, period: int = 14, offset: int =
|
||||
|
||||
def smape(actual: object, predicted: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Symmetric Mean Absolute Percentage Error."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
n = len(a)
|
||||
@@ -240,7 +240,7 @@ def smape(actual: object, predicted: object, period: int = 14, offset: int = 0,
|
||||
|
||||
def theilu(actual: object, predicted: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Theil U Statistic (Error)."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
n = len(a)
|
||||
@@ -251,7 +251,7 @@ def theilu(actual: object, predicted: object, period: int = 14, offset: int = 0,
|
||||
|
||||
def tukeybiweight(actual: object, predicted: object, period: int = 14, c: float = 4.685, offset: int = 0, **kwargs) -> object:
|
||||
"""Tukey Biweight Loss."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
c = float(c)
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
@@ -263,7 +263,7 @@ def tukeybiweight(actual: object, predicted: object, period: int = 14, c: float
|
||||
|
||||
def wmape(actual: object, predicted: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Weighted Mean Absolute Percentage Error."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
n = len(a)
|
||||
@@ -274,7 +274,7 @@ def wmape(actual: object, predicted: object, period: int = 14, offset: int = 0,
|
||||
|
||||
def wrmse(actual: object, predicted: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Weighted Root Mean Squared Error."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
a, idx = _arr(actual); p, _ = _arr(predicted)
|
||||
n = len(a)
|
||||
|
||||
+11
-11
@@ -127,7 +127,7 @@ def lms(close: object, order: int = 16, mu: float = 0.5, offset: int = 0, **kwar
|
||||
|
||||
def loess(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""LOESS Smoother."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -138,7 +138,7 @@ def loess(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def modf(close: object, period: int = 14, beta: float = 0.8, feedback: int = 0, fbWeight: float = 0.5, offset: int = 0, **kwargs) -> object:
|
||||
"""Modified Filter."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
beta = float(beta)
|
||||
feedback = int(feedback)
|
||||
fbWeight = float(fbWeight)
|
||||
@@ -152,7 +152,7 @@ def modf(close: object, period: int = 14, beta: float = 0.8, feedback: int = 0,
|
||||
|
||||
def notch(close: object, period: int = 14, q: float = 1.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Notch Filter."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
q = float(q)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -164,7 +164,7 @@ def notch(close: object, period: int = 14, q: float = 1.0, offset: int = 0, **kw
|
||||
|
||||
def nw(close: object, period: int = 64, bandwidth: float = 8.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Nadaraya-Watson Filter."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
bandwidth = float(bandwidth)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -201,7 +201,7 @@ def rls(close: object, order: int = 16, lam: float = 0.99, offset: int = 0, **kw
|
||||
|
||||
def rmed(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Running Median Filter."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -224,7 +224,7 @@ def roofing(close: object, hpLength: int = 48, ssLength: int = 10, offset: int =
|
||||
|
||||
def sgf(close: object, period: int = 14, polyOrder: int = 2, offset: int = 0, **kwargs) -> object:
|
||||
"""Savitzky-Golay Filter."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
polyOrder = int(polyOrder)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -249,7 +249,7 @@ def spbf(close: object, shortPeriod: int = 40, longPeriod: int = 60, rmsPeriod:
|
||||
|
||||
def ssf2(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Super Smoother (2-pole)."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -260,7 +260,7 @@ def ssf2(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def ssf3(close: object, period: int = 14, initialLast: float = 0.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Super Smoother (3-pole)."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
initialLast = float(initialLast)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -272,7 +272,7 @@ def ssf3(close: object, period: int = 14, initialLast: float = 0.0, offset: int
|
||||
|
||||
def usf(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Universal Smoother Filter."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -283,7 +283,7 @@ def usf(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def voss(close: object, period: int = 14, predict: int = 3, bandwidth: float = 0.25, offset: int = 0, **kwargs) -> object:
|
||||
"""Voss Predictor."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
predict = int(predict)
|
||||
bandwidth = float(bandwidth)
|
||||
offset = int(offset)
|
||||
@@ -308,7 +308,7 @@ def wavelet(close: object, levels: int = 4, threshMult: float = 1.0, offset: int
|
||||
|
||||
def wiener(close: object, period: int = 14, smoothPeriod: int = 10, offset: int = 0, **kwargs) -> object:
|
||||
"""Wiener Filter."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
smoothPeriod = int(smoothPeriod)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
|
||||
@@ -43,7 +43,7 @@ def bop(open: object, high: object, low: object, close: object, offset: int = 0,
|
||||
|
||||
def cci(open: object, high: object, low: object, close: object, volume: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Commodity Channel Index."""
|
||||
period = int(period)
|
||||
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)
|
||||
@@ -103,7 +103,7 @@ def prs(x: object, y: object, smoothPeriod: int = 5, offset: int = 0, **kwargs)
|
||||
|
||||
def rocp(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Rate of Change (Percentage)."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -114,7 +114,7 @@ def rocp(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def rocr(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Rate of Change (Ratio)."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -137,7 +137,7 @@ def sam(close: object, alpha: float = 0.07, cutoff: int = 8, offset: int = 0, **
|
||||
|
||||
def vel(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Velocity."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
|
||||
@@ -52,7 +52,7 @@ def fdist(close: object, d1: int = 1, d2: int = 1, period: int = 14, offset: int
|
||||
"""F-Distribution."""
|
||||
d1 = int(d1)
|
||||
d2 = int(d2)
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -78,7 +78,7 @@ def gammadist(close: object, alpha: float = 2.0, beta: float = 1.0, period: int
|
||||
"""Gamma Distribution."""
|
||||
alpha = float(alpha)
|
||||
beta = float(beta)
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -89,7 +89,7 @@ def gammadist(close: object, alpha: float = 2.0, beta: float = 1.0, period: int
|
||||
|
||||
def highest(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Highest Value."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -136,7 +136,7 @@ def lognormdist(close: object, mu: float = 0.0, sigma: float = 1.0, period: int
|
||||
"""Log-Normal Distribution."""
|
||||
mu = float(mu)
|
||||
sigma = float(sigma)
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -157,7 +157,7 @@ def logtrans(close: object, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def lowest(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Lowest Value."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -168,7 +168,7 @@ def lowest(close: object, period: int = 14, offset: int = 0, **kwargs) -> object
|
||||
|
||||
def normalize(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Normalization."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -181,7 +181,7 @@ def normdist(close: object, mu: float = 0.0, sigma: float = 1.0, period: int = 1
|
||||
"""Normal Distribution."""
|
||||
mu = float(mu)
|
||||
sigma = float(sigma)
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -193,7 +193,7 @@ def normdist(close: object, mu: float = 0.0, sigma: float = 1.0, period: int = 1
|
||||
def poissondist(close: object, lam: float = 1.0, period: int = 14, threshold: int = 5, offset: int = 0, **kwargs) -> object:
|
||||
"""Poisson Distribution."""
|
||||
lam = float(lam)
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
threshold = int(threshold)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -248,7 +248,7 @@ def sqrttrans(close: object, offset: int = 0, **kwargs) -> object:
|
||||
def tdist(close: object, nu: int = 10, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Student's t-Distribution."""
|
||||
nu = int(nu)
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -261,7 +261,7 @@ def weibulldist(close: object, k: float = 1.5, lam: float = 1.0, period: int = 1
|
||||
"""Weibull Distribution."""
|
||||
k = float(k)
|
||||
lam = float(lam)
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
|
||||
@@ -108,7 +108,7 @@ def coppock(close: object, longRoc: int = 14, shortRoc: int = 11, wmaPeriod: int
|
||||
|
||||
def eri(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Elder Ray Index."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -119,7 +119,7 @@ def eri(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def fi(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Force Index."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -146,7 +146,7 @@ def gator(close: object, jawPeriod: int = 13, jawShift: int = 8, teethPeriod: in
|
||||
|
||||
def imi(open: object, high: object, low: object, close: object, volume: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Intraday Momentum Index."""
|
||||
period = int(period)
|
||||
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)
|
||||
@@ -215,7 +215,7 @@ def mstoch(close: object, stochLength: int = 20, hpLength: int = 48, ssLength: i
|
||||
|
||||
def pgo(high: object, low: object, close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Pretty Good Oscillator."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
|
||||
n = len(h)
|
||||
@@ -239,7 +239,7 @@ def qqe(close: object, rsiPeriod: int = 14, smoothFactor: int = 5, qqeFactor: fl
|
||||
|
||||
def reverseema(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Reverse EMA."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -250,7 +250,7 @@ def reverseema(close: object, period: int = 14, offset: int = 0, **kwargs) -> ob
|
||||
|
||||
def rvgi(open: object, high: object, low: object, close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Relative Vigor Index."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
o, idx = _arr(open); h, _ = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
|
||||
n = len(o)
|
||||
@@ -277,7 +277,7 @@ def smi(high: object, low: object, close: object, kPeriod: int = 14, kSmooth: in
|
||||
|
||||
def squeeze(high: object, low: object, close: object, period: int = 14, bbMult: float = 2.0, kcMult: float = 1.5, offset: int = 0, **kwargs) -> object:
|
||||
"""Squeeze Momentum."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
bbMult = float(bbMult)
|
||||
kcMult = float(kcMult)
|
||||
offset = int(offset)
|
||||
@@ -369,7 +369,7 @@ def ultosc(high: object, low: object, close: object, period1: int = 14, period2:
|
||||
|
||||
def willr(high: object, low: object, close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Williams %R."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
|
||||
n = len(h)
|
||||
|
||||
@@ -25,7 +25,7 @@ __all__ = [
|
||||
|
||||
def chandelier(open: object, high: object, low: object, close: object, period: int = 14, multiplier: float = 2.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Chandelier Exit."""
|
||||
period = int(period)
|
||||
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)
|
||||
|
||||
@@ -45,7 +45,7 @@ __all__ = [
|
||||
|
||||
def acf(close: object, period: int = 14, lag: int = 10, offset: int = 0, **kwargs) -> object:
|
||||
"""Autocorrelation Function."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
lag = int(lag)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -57,7 +57,7 @@ def acf(close: object, period: int = 14, lag: int = 10, offset: int = 0, **kwarg
|
||||
|
||||
def geomean(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Geometric Mean."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -68,7 +68,7 @@ def geomean(close: object, period: int = 14, offset: int = 0, **kwargs) -> objec
|
||||
|
||||
def granger(x: object, y: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Granger Causality."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
xarr, idx = _arr(x); yarr, _ = _arr(y)
|
||||
n = len(xarr)
|
||||
@@ -79,7 +79,7 @@ def granger(x: object, y: object, period: int = 14, offset: int = 0, **kwargs) -
|
||||
|
||||
def harmean(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Harmonic Mean."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -90,7 +90,7 @@ def harmean(close: object, period: int = 14, offset: int = 0, **kwargs) -> objec
|
||||
|
||||
def hurst(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Hurst Exponent."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -101,7 +101,7 @@ def hurst(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def iqr(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Interquartile Range."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -112,7 +112,7 @@ def iqr(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def jb(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Jarque-Bera Test."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -123,7 +123,7 @@ def jb(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def kendall(x: object, y: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Kendall Rank Correlation."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
xarr, idx = _arr(x); yarr, _ = _arr(y)
|
||||
n = len(xarr)
|
||||
@@ -134,7 +134,7 @@ def kendall(x: object, y: object, period: int = 14, offset: int = 0, **kwargs) -
|
||||
|
||||
def kurtosis(close: object, period: int = 14, isPopulation: int = 0, offset: int = 0, **kwargs) -> object:
|
||||
"""Kurtosis."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
isPopulation = int(isPopulation)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -146,7 +146,7 @@ def kurtosis(close: object, period: int = 14, isPopulation: int = 0, offset: int
|
||||
|
||||
def linreg(close: object, period: int = 14, initialLastValid: float = 0.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Linear Regression."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
initialLastValid = float(initialLastValid)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -158,7 +158,7 @@ def linreg(close: object, period: int = 14, initialLastValid: float = 0.0, offse
|
||||
|
||||
def meandev(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Mean Deviation."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -169,7 +169,7 @@ def meandev(close: object, period: int = 14, offset: int = 0, **kwargs) -> objec
|
||||
|
||||
def median(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Rolling Median."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -180,7 +180,7 @@ def median(close: object, period: int = 14, offset: int = 0, **kwargs) -> object
|
||||
|
||||
def mode(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Rolling Mode."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -191,7 +191,7 @@ def mode(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def pacf(close: object, period: int = 14, lag: int = 10, offset: int = 0, **kwargs) -> object:
|
||||
"""Partial Autocorrelation Function."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
lag = int(lag)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -203,7 +203,7 @@ def pacf(close: object, period: int = 14, lag: int = 10, offset: int = 0, **kwar
|
||||
|
||||
def percentile(close: object, period: int = 14, percent: float = 50.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Rolling Percentile."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
percent = float(percent)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -215,7 +215,7 @@ def percentile(close: object, period: int = 14, percent: float = 50.0, offset: i
|
||||
|
||||
def polyfit(close: object, period: int = 14, degree: int = 2, initialLastValid: float = 0.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Polynomial Fit."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
degree = int(degree)
|
||||
initialLastValid = float(initialLastValid)
|
||||
offset = int(offset)
|
||||
@@ -228,7 +228,7 @@ def polyfit(close: object, period: int = 14, degree: int = 2, initialLastValid:
|
||||
|
||||
def quantile(close: object, period: int = 14, quantileLevel: float = 0.5, offset: int = 0, **kwargs) -> object:
|
||||
"""Rolling Quantile."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
quantileLevel = float(quantileLevel)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -240,7 +240,7 @@ def quantile(close: object, period: int = 14, quantileLevel: float = 0.5, offset
|
||||
|
||||
def skew(close: object, period: int = 14, isPopulation: int = 0, offset: int = 0, **kwargs) -> object:
|
||||
"""Skewness."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
isPopulation = int(isPopulation)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -252,7 +252,7 @@ def skew(close: object, period: int = 14, isPopulation: int = 0, offset: int = 0
|
||||
|
||||
def spearman(x: object, y: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Spearman Rank Correlation."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
xarr, idx = _arr(x); yarr, _ = _arr(y)
|
||||
n = len(xarr)
|
||||
@@ -263,7 +263,7 @@ def spearman(x: object, y: object, period: int = 14, offset: int = 0, **kwargs)
|
||||
|
||||
def stderr(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Standard Error."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -274,7 +274,7 @@ def stderr(close: object, period: int = 14, offset: int = 0, **kwargs) -> object
|
||||
|
||||
def sum(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Rolling Sum."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -285,7 +285,7 @@ def sum(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def theil(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Theil U Statistic."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -296,7 +296,7 @@ def theil(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def trim(close: object, period: int = 14, trimPct: float = 0.1, offset: int = 0, **kwargs) -> object:
|
||||
"""Trimmed Mean."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
trimPct = float(trimPct)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -308,7 +308,7 @@ def trim(close: object, period: int = 14, trimPct: float = 0.1, offset: int = 0,
|
||||
|
||||
def wavg(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Weighted Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -319,7 +319,7 @@ def wavg(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def wins(close: object, period: int = 14, winPct: float = 0.05, offset: int = 0, **kwargs) -> object:
|
||||
"""Winsorized Mean."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
winPct = float(winPct)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -331,7 +331,7 @@ def wins(close: object, period: int = 14, winPct: float = 0.05, offset: int = 0,
|
||||
|
||||
def ztest(close: object, period: int = 14, mu0: float = 0.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Z-Test."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
mu0 = float(mu0)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
|
||||
@@ -47,7 +47,7 @@ __all__ = [
|
||||
|
||||
def fwma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Fibonacci Weighted Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -58,7 +58,7 @@ def fwma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def gwma(close: object, period: int = 14, sigma: float = 0.4, offset: int = 0, **kwargs) -> object:
|
||||
"""Gaussian Weighted Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
sigma = float(sigma)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -70,7 +70,7 @@ def gwma(close: object, period: int = 14, sigma: float = 0.4, offset: int = 0, *
|
||||
|
||||
def hamma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Hamming Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -81,7 +81,7 @@ def hamma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def hend(close: object, period: int = 14, nanValue: float = 0.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Henderson Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
nanValue = float(nanValue)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -93,7 +93,7 @@ def hend(close: object, period: int = 14, nanValue: float = 0.0, offset: int = 0
|
||||
|
||||
def ilrs(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Integral of Linear Regression Slope."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -104,7 +104,7 @@ def ilrs(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def kaiser(close: object, period: int = 14, beta: float = 3.0, nanValue: float = 0.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Kaiser Window Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
beta = float(beta)
|
||||
nanValue = float(nanValue)
|
||||
offset = int(offset)
|
||||
@@ -117,7 +117,7 @@ def kaiser(close: object, period: int = 14, beta: float = 3.0, nanValue: float =
|
||||
|
||||
def lanczos(close: object, period: int = 14, nanValue: float = 0.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Lanczos Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
nanValue = float(nanValue)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -129,7 +129,7 @@ def lanczos(close: object, period: int = 14, nanValue: float = 0.0, offset: int
|
||||
|
||||
def nlma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Non-Lag Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -140,7 +140,7 @@ def nlma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def nyqma(close: object, period: int = 14, nyquistPeriod: int = 2, offset: int = 0, **kwargs) -> object:
|
||||
"""Nyquist Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
nyquistPeriod = int(nyquistPeriod)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -152,7 +152,7 @@ def nyqma(close: object, period: int = 14, nyquistPeriod: int = 2, offset: int =
|
||||
|
||||
def pma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Predictive Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -164,7 +164,7 @@ def pma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def pwma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Pascal Weighted Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -175,7 +175,7 @@ def pwma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def qrma(close: object, period: int = 14, initialLastValid: float = 0.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Quick Reaction Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
initialLastValid = float(initialLastValid)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -187,7 +187,7 @@ def qrma(close: object, period: int = 14, initialLastValid: float = 0.0, offset:
|
||||
|
||||
def rwma(high: object, low: object, close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Range Weighted Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
|
||||
n = len(h)
|
||||
|
||||
@@ -53,7 +53,7 @@ __all__ = [
|
||||
|
||||
def adxvma(open: object, high: object, low: object, close: object, volume: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""ADX Variable Moving Average."""
|
||||
period = int(period)
|
||||
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)
|
||||
@@ -65,7 +65,7 @@ def adxvma(open: object, high: object, low: object, close: object, volume: objec
|
||||
|
||||
def frama(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Fractal Adaptive Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -76,7 +76,7 @@ def frama(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def holt(close: object, period: int = 14, gamma: float = 0.0, offset: int = 0, **kwargs) -> object:
|
||||
"""Holt Exponential Smoothing."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
gamma = float(gamma)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -98,7 +98,7 @@ def htit(close: object, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def hwma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Holt-Winter Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -121,7 +121,7 @@ def jma(close: object, period: int = 14, phase: int = 0, offset: int = 0, **kwar
|
||||
|
||||
def kama(close: object, period: int = 14, fastPeriod: int = 12, slowPeriod: int = 26, offset: int = 0, **kwargs) -> object:
|
||||
"""Kaufman Adaptive Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
fastPeriod = int(fastPeriod)
|
||||
slowPeriod = int(slowPeriod)
|
||||
offset = int(offset)
|
||||
@@ -134,7 +134,7 @@ def kama(close: object, period: int = 14, fastPeriod: int = 12, slowPeriod: int
|
||||
|
||||
def ltma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Low-Lag Triple Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -170,7 +170,7 @@ def mavp(x: object, periods: object, minPeriod: int = 6, maxPeriod: int = 48, of
|
||||
|
||||
def mcnma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""McNicholl Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -181,7 +181,7 @@ def mcnma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def mgdi(close: object, period: int = 14, k: float = 0.6, offset: int = 0, **kwargs) -> object:
|
||||
"""McGinley Dynamic."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
k = float(k)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -193,7 +193,7 @@ def mgdi(close: object, period: int = 14, k: float = 0.6, offset: int = 0, **kwa
|
||||
|
||||
def mma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Modified Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -204,7 +204,7 @@ def mma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def nma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Normalized Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -215,7 +215,7 @@ def nma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def qema(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Quadruple EMA."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -226,7 +226,7 @@ def qema(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def rema(close: object, period: int = 14, lam: float = 0.5, offset: int = 0, **kwargs) -> object:
|
||||
"""Regularized EMA."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
lam = float(lam)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -238,7 +238,7 @@ def rema(close: object, period: int = 14, lam: float = 0.5, offset: int = 0, **k
|
||||
|
||||
def rgma(close: object, period: int = 14, passes: int = 3, offset: int = 0, **kwargs) -> object:
|
||||
"""Recursive Gaussian Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
passes = int(passes)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -250,7 +250,7 @@ def rgma(close: object, period: int = 14, passes: int = 3, offset: int = 0, **kw
|
||||
|
||||
def rma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Rolling Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -261,7 +261,7 @@ def rma(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def t3(close: object, period: int = 14, vfactor: float = 0.7, offset: int = 0, **kwargs) -> object:
|
||||
"""Tillson T3."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
vfactor = float(vfactor)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
@@ -273,7 +273,7 @@ def t3(close: object, period: int = 14, vfactor: float = 0.7, offset: int = 0, *
|
||||
|
||||
def trama(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Triangular Adaptive Moving Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -300,7 +300,7 @@ def vama(open: object, high: object, low: object, close: object, volume: object,
|
||||
|
||||
def vidya(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Variable Index Dynamic Average."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -327,7 +327,7 @@ def yzvama(open: object, high: object, low: object, close: object, volume: objec
|
||||
|
||||
def zldema(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Zero-Lag Double EMA."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -338,7 +338,7 @@ def zldema(close: object, period: int = 14, offset: int = 0, **kwargs) -> object
|
||||
|
||||
def zlema(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Zero-Lag EMA."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -349,7 +349,7 @@ def zlema(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
|
||||
def zltema(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Zero-Lag Triple EMA."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
|
||||
@@ -41,7 +41,7 @@ __all__ = [
|
||||
|
||||
def adr(open: object, high: object, low: object, close: object, volume: object, period: int = 14, method: int = 0, offset: int = 0, **kwargs) -> object:
|
||||
"""Average Daily Range."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
method = int(method)
|
||||
offset = int(offset)
|
||||
o, idx = _arr(open); h, _ = _arr(high); l, _ = _arr(low)
|
||||
@@ -54,7 +54,7 @@ def adr(open: object, high: object, low: object, close: object, volume: object,
|
||||
|
||||
def atr(open: object, high: object, low: object, close: object, volume: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Average True Range."""
|
||||
period = int(period)
|
||||
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)
|
||||
@@ -66,7 +66,7 @@ def atr(open: object, high: object, low: object, close: object, volume: object,
|
||||
|
||||
def atrn(open: object, high: object, low: object, close: object, volume: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Normalized ATR."""
|
||||
period = int(period)
|
||||
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)
|
||||
@@ -78,7 +78,7 @@ def atrn(open: object, high: object, low: object, close: object, volume: object,
|
||||
|
||||
def gkv(open: object, high: object, low: object, close: object, period: int = 14, annualize: int = 1, annualPeriods: int = 252, offset: int = 0, **kwargs) -> object:
|
||||
"""Garman-Klass Volatility."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
annualize = int(annualize)
|
||||
annualPeriods = int(annualPeriods)
|
||||
offset = int(offset)
|
||||
@@ -91,7 +91,7 @@ def gkv(open: object, high: object, low: object, close: object, period: int = 14
|
||||
|
||||
def hlv(high: object, low: object, period: int = 14, annualize: int = 1, annualPeriods: int = 252, offset: int = 0, **kwargs) -> object:
|
||||
"""High-Low Volatility."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
annualize = int(annualize)
|
||||
annualPeriods = int(annualPeriods)
|
||||
offset = int(offset)
|
||||
@@ -104,7 +104,7 @@ def hlv(high: object, low: object, period: int = 14, annualize: int = 1, annualP
|
||||
|
||||
def hv(close: object, period: int = 14, annualize: int = 1, annualPeriods: int = 252, offset: int = 0, **kwargs) -> object:
|
||||
"""Historical Volatility."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
annualize = int(annualize)
|
||||
annualPeriods = int(annualPeriods)
|
||||
offset = int(offset)
|
||||
@@ -117,7 +117,7 @@ def hv(close: object, period: int = 14, annualize: int = 1, annualPeriods: int =
|
||||
|
||||
def jvolty(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Jurik Volatility."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -128,7 +128,7 @@ def jvolty(close: object, period: int = 14, offset: int = 0, **kwargs) -> object
|
||||
|
||||
def jvoltyn(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Jurik Volatility Normalized."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -151,7 +151,7 @@ def massi(close: object, emaLength: int = 9, sumLength: int = 25, offset: int =
|
||||
|
||||
def natr(open: object, high: object, low: object, close: object, volume: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Normalized ATR."""
|
||||
period = int(period)
|
||||
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)
|
||||
@@ -163,7 +163,7 @@ def natr(open: object, high: object, low: object, close: object, volume: object,
|
||||
|
||||
def rsv(open: object, high: object, low: object, close: object, period: int = 14, annualize: int = 1, annualPeriods: int = 252, offset: int = 0, **kwargs) -> object:
|
||||
"""Rogers-Satchell Volatility."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
annualize = int(annualize)
|
||||
annualPeriods = int(annualPeriods)
|
||||
offset = int(offset)
|
||||
@@ -176,7 +176,7 @@ def rsv(open: object, high: object, low: object, close: object, period: int = 14
|
||||
|
||||
def rv(close: object, period: int = 14, smoothingPeriod: int = 14, annualize: int = 1, annualPeriods: int = 252, offset: int = 0, **kwargs) -> object:
|
||||
"""Realized Volatility."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
smoothingPeriod = int(smoothingPeriod)
|
||||
annualize = int(annualize)
|
||||
annualPeriods = int(annualPeriods)
|
||||
@@ -202,7 +202,7 @@ def rvi(close: object, stdevLength: int = 10, rmaLength: int = 14, offset: int =
|
||||
|
||||
def ui(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Ulcer Index."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -225,7 +225,7 @@ def vov(close: object, volatilityPeriod: int = 20, vovPeriod: int = 20, offset:
|
||||
|
||||
def vr(high: object, low: object, close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Volatility Ratio."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
|
||||
n = len(h)
|
||||
@@ -236,7 +236,7 @@ def vr(high: object, low: object, close: object, period: int = 14, offset: int =
|
||||
|
||||
def yzv(open: object, high: object, low: object, close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Yang-Zhang Volatility."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
o, idx = _arr(open); h, _ = _arr(high); l, _ = _arr(low); c, _ = _arr(close)
|
||||
n = len(o)
|
||||
|
||||
@@ -62,7 +62,7 @@ def adosc(high: object, low: object, close: object, volume: object, fastPeriod:
|
||||
|
||||
def iii(high: object, low: object, close: object, volume: object, period: int = 14, cumulative: int = 0, offset: int = 0, **kwargs) -> object:
|
||||
"""Intraday Intensity Index."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
cumulative = int(cumulative)
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close); v, _ = _arr(volume)
|
||||
@@ -88,7 +88,7 @@ def kvo(high: object, low: object, close: object, volume: object, fastPeriod: in
|
||||
|
||||
def twap(close: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Time Weighted Average Price."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
src, idx = _arr(close)
|
||||
n = len(src)
|
||||
@@ -121,7 +121,7 @@ def vo(volume: object, shortPeriod: int = 12, longPeriod: int = 26, offset: int
|
||||
|
||||
def vroc(volume: object, period: int = 14, usePercent: int = 1, offset: int = 0, **kwargs) -> object:
|
||||
"""Volume Rate of Change."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
usePercent = int(usePercent)
|
||||
offset = int(offset)
|
||||
src, idx = _arr(volume)
|
||||
@@ -133,7 +133,7 @@ def vroc(volume: object, period: int = 14, usePercent: int = 1, offset: int = 0,
|
||||
|
||||
def vwad(high: object, low: object, close: object, volume: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Volume Weighted Accumulation/Distribution."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close); v, _ = _arr(volume)
|
||||
n = len(h)
|
||||
@@ -144,7 +144,7 @@ def vwad(high: object, low: object, close: object, volume: object, period: int =
|
||||
|
||||
def vwap(high: object, low: object, close: object, volume: object, period: int = 14, offset: int = 0, **kwargs) -> object:
|
||||
"""Volume Weighted Average Price."""
|
||||
period = int(period)
|
||||
period = int(kwargs.get("length", period))
|
||||
offset = int(offset)
|
||||
h, idx = _arr(high); l, _ = _arr(low); c, _ = _arr(close); v, _ = _arr(volume)
|
||||
n = len(h)
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
"""Add length→period alias to all old-style Python wrapper functions.
|
||||
|
||||
Replaces: period = int(period)
|
||||
With: period = int(kwargs.get("length", period))
|
||||
|
||||
Only targets exact standalone `period = int(period)` lines (4-space indent).
|
||||
Does NOT touch compound names like fastPeriod, slowPeriod, etc.
|
||||
"""
|
||||
import re
|
||||
import os
|
||||
import glob
|
||||
|
||||
base = os.path.join(os.path.dirname(__file__), '..', 'quantalib')
|
||||
base = os.path.normpath(base)
|
||||
files = sorted(glob.glob(os.path.join(base, '*.py')))
|
||||
total = 0
|
||||
|
||||
for fpath in files:
|
||||
fname = os.path.basename(fpath)
|
||||
if fname.startswith('_'):
|
||||
continue
|
||||
with open(fpath, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
|
||||
# Match exactly ' period = int(period)' (4-space indent, standalone)
|
||||
pattern = r'^( )period = int\(period\)$'
|
||||
matches = re.findall(pattern, content, re.MULTILINE)
|
||||
count = len(matches)
|
||||
if count > 0:
|
||||
new_content = re.sub(
|
||||
pattern,
|
||||
r'\1period = int(kwargs.get("length", period))',
|
||||
content,
|
||||
flags=re.MULTILINE,
|
||||
)
|
||||
with open(fpath, 'w', encoding='utf-8') as f:
|
||||
f.write(new_content)
|
||||
print(f'{fname}: {count} replacements')
|
||||
total += count
|
||||
else:
|
||||
print(f'{fname}: 0 (skipped)')
|
||||
|
||||
print(f'\nTotal: {total} replacements across {len(files)} files')
|
||||
Reference in New Issue
Block a user