Indicators Reference

Most indicators have a sequential=False parameter. When set to True, it returns an array of values; which is helpful if you're doing research Jupyter Notebooks.

When developing strategies however, you probably want to keep it as False to return only the indicator value for current trading candle.

@cached

The @cached decorator can increase performance a lot if applied to indicators - especially those called a lot in your strategy. See hereopen in new window.

Performance and sequential

With sequential=False the indicators will slice the candle array behind the scene to the warmup_candles_num you defined. That doesn't happen if you use sequential=True, as Jesse doesn't now how much lookback you need from your sequential indicator. To keep things fast you should slice the candles yourself before passing them to a indicator function to avoid unnecessary computation time: self.candles[-60:] - change the number accordingly.

matype

In few indicators you can set a moving average type:

  • 0: sma (simple)
  • 1: ema (exponential)
  • 2: wma (weighted)
  • 3: dema (double exponential)
  • 4: tema (triple exponential)
  • 5: trima (triangular)
  • 6: kama (Kaufman adaptive)
  • 7: mama (Mesa adaptive)
  • 8: T3 (triple exponential T3)
  • 9: fwma (Fibonacci's Weighted Moving Average)
  • 10: hma (Hull Moving Average)
  • 11: linearreg (Linear Regression)
  • 12: wilders (Wilders Smoothing)
  • 13: sinwma (Sine Weighted Moving Average)
  • 14: supersmoother (Super Smoother Filter 2pole Butterworth)
  • 15: supersmoother_3_pole(Super Smoother Filter 3pole Butterworth)
  • 16: gauss (Gaussian Filter)
  • 17: high_pass (1-pole High Pass Filter by John F. Ehlers)
  • 18: high_pass_2_pole (2-pole High Pass Filter by John F. Ehlers)
  • 19: ht_trendline (Hilbert Transform - Instantaneous Trendline)
  • 20: jma (Jurik Moving Average)
  • 21: reflex (Reflex indicator by John F. Ehlers)
  • 22: trendflex (Trendflex indicator by John F. Ehlers)
  • 23: smma (Smoothed Moving Average)
  • 24: vwma (Volume Weighted Moving Average)
  • 25: pwma (Pascals Weighted Moving Average)
  • 26: swma (Symmetric Weighted Moving Average)
  • 27: alma (Arnaud Legoux Moving Average)
  • 28: hwma (Holt-Winter Moving Average)
  • 29: vwap (Volume weighted average price)
  • 30: nma (Natural Moving Average)
  • 31: edcf (Ehlers Distance Coefficient Filter)
  • 32: mwdx (MWDX Average)
  • 33: maaq (Moving Average Adaptive Q)
  • 34: srwma (Square Root Weighted Moving Average)
  • 35: sqwma (Square Weighted Moving Average)
  • 36: vpwma (Variable Power Weighted Moving Average)
  • 37: cwma (Cubed Weighted Moving Average)
  • 38: jsa (Jsa Moving Average)
  • 39: epma (End Point Moving Average)

devtype

In few indicators you can set a deviation type:

  • 0: standard deviation
  • 1: mean absolute deviation
  • 2: median absolute deviation

source_type

In some indicators you can set the source type:

  • "close"
  • "high"
  • "low"
  • "open"
  • "volume"
  • "hl2"
  • "hlc3"
  • "ohlc4"

acosc

acosc(candles: np.ndarray, sequential=False) -> AC  
1

Acceleration / Deceleration Oscillator (AC)

Arguments:

  • candles: np.ndarray
  • sequential: bool - default=False

Returns:

AC(osc, change)

ad(candles: np.ndarray, sequential=False) -> Union[float, np.ndarray]  
1

AD - Chaikin A/D Line

Arguments:

  • candles: np.ndarray
  • sequential: bool - default=False

Returns:

float | np.ndarray

adosc

adosc(candles: np.ndarray, fast_period=3, slow_period=10, sequential=False) -> Union[float, np.ndarray]  
1

ADOSC - Chaikin A/D Oscillator

Arguments:

  • candles: np.ndarray
  • fast_period: int - default=3
  • slow_period: int - default=10
  • sequential: bool - default=False

Returns:

float | np.ndarray

adx

adx(candles: np.ndarray, period=14, sequential=False) -> Union[float, np.ndarray]  
1

ADX - Average Directional Movement Index

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • sequential: bool - default=False

Returns:

float | np.ndarray

adxr

adxr(candles: np.ndarray, period=14, sequential=False) -> Union[float, np.ndarray]  
1

ADXR - Average Directional Movement Index Rating

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • sequential: bool - default=False

Returns:

float | np.ndarray

alligator

alligator(candles: np.ndarray, source_type="close", sequential=False) -> AG  
1

Alligator

Arguments:

  • candles: np.ndarray
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

AG(jaw, teeth, lips)

alma

alma(candles: np.ndarray, period: int = 9, sigma: float = 6.0, distribution_offset: float = 0.85, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]
1

ALMA - Arnaud Legoux Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=9
  • sigma: float - default=6.0
  • distribution_offset: float - default=0.85
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

ao

ao(candles: np.ndarray, sequential=False) -> AO  
1

Awesome Oscillator

Arguments:

  • candles: np.ndarray
  • sequential: bool - default=False

Returns:

AO(osc, change)

apo

apo(candles: np.ndarray, fast_period=12, slow_period=26, matype=0, source_type="close", sequential=False) -> Union[  
  float, np.ndarray]  
1
2

APO - Absolute Price Oscillator

Arguments:

  • candles: np.ndarray
  • fast_period: int - default=12
  • slow_period: int - default=26
  • matype: int - default=0
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

aroon

aroon(candles: np.ndarray, period=14, sequential=False) -> AROON  
1

AROON - Aroon

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • sequential: bool - default=False

Returns:

AROON(down, up)

aroonosc

aroonosc(candles: np.ndarray, period=14, sequential=False) -> Union[float, np.ndarray]  
1

AROONOSC - Aroon Oscillator

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • sequential: bool - default=False

Returns:

float | np.ndarray

atr

atr(candles: np.ndarray, period=14, sequential=False) -> Union[float, np.ndarray]  
1

ATR - Average True Range

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • sequential: bool - default=False

Returns:

float | np.ndarray

avgprice

avgprice(candles: np.ndarray, sequential=False) -> Union[float, np.ndarray]  
1

AVGPRICE - Average Price

Arguments:

  • candles: np.ndarray
  • sequential: bool - default=False

Returns:

float | np.ndarray

beta

beta(candles: np.ndarray, period=5, sequential=False) -> Union[float, np.ndarray]  
1

BETA - Beta

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • sequential: bool - default=False

Returns:

float | np.ndarray

bandpass

bandpass(candles: np.ndarray, period: int = 20, bandwidth: float = 0.3, source_type: str = "close", sequential: bool = False) -> BandPass
1

BandPass Filter

Arguments:

  • candles: np.ndarray
  • period: int - default=20
  • bandwidth: float - default=0.3
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

BandPass(bp, bp_normalized, signal, trigger)

bollinger_bands

bollinger_bands(candles: np.ndarray, period=20, devup=2, devdn=2, matype=0, source_type="close", sequential=False) -> BollingerBands  
1

BBANDS - Bollinger Bands

Arguments:

  • candles: np.ndarray
  • period: int - default=20
  • devup: float - default=2
  • devdn: float - default=2
  • matype: int - default=0
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

BollingerBands(upperband, middleband, lowerband)

bollinger_bands_width

bollinger_bands_width(candles: np.ndarray, period=20, devup=2, devdn=2, matype=0, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

BBW - Bollinger Bands Width - Bollinger Bands Bandwidth

Arguments:

  • candles: np.ndarray
  • period: int - default=20
  • devup: float - default=2
  • devdn: float - default=2
  • matype: int - default=0
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

bop

bop(candles: np.ndarray, sequential=False) -> Union[float, np.ndarray]  
1

BOP - Balance Of Power

Arguments:

  • candles: np.ndarray
  • sequential: bool - default=False

Returns:

float | np.ndarray

cc

cc(candles: np.ndarray, wma_period=10, roc_short_period=11, roc_long_period=14, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

Coppock Curve

Arguments:

  • candles: np.ndarray
  • wma_period: int - default=10
  • roc_short_period: int - default=11
  • roc_long_period: int - default=14
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

cci

cci(candles: np.ndarray, period=14, sequential=False) -> Union[float, np.ndarray]  
1

CCI - Commodity Channel Index

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • sequential: bool - default=False

Returns:

float | np.ndarray

cfo

cfo(candles: np.ndarray, period: int = 14, scalar: float = 100, source_type: str = "close", squential: bool = False) -> Union[float, np.ndarray]:
1

CFO - Chande Forcast Oscillator

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • scalar: float- default=100
  • sequential: bool - default=False

Returns:

float | np.ndarray

cg

cg(candles: np.ndarray, period: int = 10, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]
1

Center of Gravity (CG)

Arguments:

  • candles: np.ndarray
  • period: int - default=10
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

cksp

cksp(candles: np.ndarray, p: int = 10, x: float = 1.0, q: int = 9, sequential: bool = False) -> CKSP
1

Chande Kroll Stop (CKSP)

Arguments:

  • candles: np.ndarray
  • p: int - default=10
  • x: float - default=1.0
  • q: int - default=9
  • sequential: bool - default=False

Returns:

CKSP(long, short)

chande

chande(candles: np.ndarray, period=22, mult=3.0, direction="long", sequential=False) -> Union[float, np.ndarray]
1

Chandelier Exits

Arguments:

  • candles: np.ndarray
  • period: int - default=22
  • mult: float - default=3.0
  • direction: str - default="long" | "short"
  • sequential: bool - default=False

Returns:

float | np.ndarray

chop

chop(candles: np.ndarray, period: int = 14, scalar: float = 100, drift: int = 1, sequential: bool = False) -> Union[float, np.ndarray]
1

Choppiness Index (CHOP)

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • scalar: float- default=100
  • drift: int - default=1
  • sequential: bool - default=False

Returns:

float | np.ndarray

cmo

cmo(candles: np.ndarray, period=14, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

CMO - Chande Momentum Oscillator

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

correlation_cycle

correlation_cycle(candles: np.ndarray, period=20, threshold=9, source_type="close", sequential=False) -> CC
1

Correlation Cycle, Correlation Angle, Market State - John Ehlers

Arguments:

  • candles: np.ndarray
  • period: int - default=20
  • threshold: int - default=9
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

CC(real, imag, angle, state)

correl

correl(candles: np.ndarray, period=5, sequential=False) -> Union[float, np.ndarray]  
1

CORREL - Pearson's Correlation Coefficient (r)

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • sequential: bool - default=False

Returns:

float | np.ndarray

cvi

cvi(candles: np.ndarray, period=5, sequential=False) -> Union[float, np.ndarray]  
1

CVI - Chaikins Volatility

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • sequential: bool - default=False

Returns:

float | np.ndarray

cwma

cwma(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]
1

Cubed Weighted Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

damiani_volatmeter

damiani_volatmeter(candles: np.ndarray, vis_atr=13, vis_std=20, sed_atr=40, sed_std=100, threshold=1.4, source_type="close", sequential=False) -> DamianiVolatmeter
1

Damiani Volatmeter

Arguments:

  • candles: np.ndarray
  • vis_atr: int - default=13
  • vis_std: int - default=20
  • sed_atr: int - default=40
  • sed_std: int - default=100
  • threshold: float - default=1.4
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

DamianiVolatmeter(vol, anti)

decycler

decycler(candles: np.ndarray, hp_period=125, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

Ehlers Simple Decycler

Arguments:

  • candles: np.ndarray
  • hp_period: int - default=125
  • sequential: bool - default=False

Returns:

float | np.ndarray

dec_osc

dec_osc(candles: np.ndarray, hp_period=125, k=1, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

Ehlers Decycler Oscillator

Arguments:

  • candles: np.ndarray
  • hp_period: int - default=125
  • k: float - default=1
  • sequential: bool - default=False

Returns:

float | np.ndarray

dema

dema(candles: np.ndarray, period=30, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

DEMA - Double Exponential Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=30
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

devstop

devstop(candles: np.ndarray, period:int=20, mult: float = 0, devtype: int = 0, direction: str = "long", sequential: bool = False) -> Union[float, np.ndarray]
1

Kase Dev Stops

Arguments:

  • candles: np.ndarray
  • period: int - default=20
  • mult: float - default=0
  • devtype: int - default=0
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

di

di(candles: np.ndarray, period=14, sequential=False) -> DI  
1

DI - Directional Indicator

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • sequential: bool - default=False

Returns:

DI(plus, minus)

dm

dm(candles: np.ndarray, period=14, sequential=False) -> DM  
1

DM - Directional Movement

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • sequential: bool - default=False

Returns:

DM(plus, minus)

donchian

donchian(candles: np.ndarray, period=20, sequential=False) -> DonchianChannel  
1

Donchian Channels

Arguments:

  • candles: np.ndarray
  • period: int - default=20
  • sequential: bool - default=False

Returns:

DonchianChannel(upperband, middleband, lowerband)

dpo

dpo(candles: np.ndarray, period=5, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

DPO - Detrended Price Oscillator

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

dti

dti(candles: np.ndarray, r=14, s=10, u=5, sequential=False) -> Union[float, np.ndarray]
1

DTI by William Blau

Arguments:

  • candles: np.ndarray
  • r: int - default=14
  • s: int - default=10
  • u: int - default=5
  • sequential: bool - default=False

Returns:

float | np.ndarray

dx

dx(candles: np.ndarray, period=14, sequential=False) -> Union[float, np.ndarray]  
1

DX - Directional Movement Index

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • sequential: bool - default=False

Returns:

float | np.ndarray

edcf

edcf(candles: np.ndarray, period: int = 15, source_type: str = "hl2", sequential: bool = False) -> Union[float, np.ndarray]
1

Ehlers Distance Coefficient Filter

Arguments:

  • candles: np.ndarray
  • period: int - default=15
  • source_type: str - default="hl2"
  • sequential: bool - default=False

Returns:

float | np.ndarray

efi

efi(candles: np.ndarray, period=13, source_type="close", sequential=False) -> Union[float, np.ndarray]
1

EFI - Elders Force Index

Arguments:

  • candles: np.ndarray
  • period: int - default=13
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

ema

ema(candles: np.ndarray, period=5, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

EMA - Exponential Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

emd

emd(candles: np.ndarray, period=20, delta=0.5, fraction=0.1, sequential=False) -> EMD  
1

Empirical Mode Decomposition by John F. Ehlers and Ric Way

Arguments:

  • candles: np.ndarray
  • period: int - default=20
  • delta: float - default=0.5
  • fraction: float - default=0.1
  • sequential: bool - default=False

Returns:

EMD(upperband, middleband, lowerband)

emv

emv(candles: np.ndarray, sequential=False) -> Union[float, np.ndarray]  
1

EMV - Ease of Movement

Arguments:

  • candles: np.ndarray
  • sequential: bool - default=False

Returns:

float | np.ndarray

epma

epma(candles: np.ndarray, period: int = 11, offset: int = 4, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]
1

End Point Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=11
  • offset: int - default=4
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

er

er(candles: np.ndarray, period: int = 5, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]:
1

ER - The Kaufman Efficiency indicator

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • sequential: bool - default=False

Returns:

float | np.ndarray

eri

eri(candles: np.ndarray, period: int = 13, matype: int = 1, source_type: str = "close", sequential: bool = False) -> ERI
1

Elder Ray Index (ERI)

Arguments:

  • candles: np.ndarray
  • period: int - default=13
  • matype: int - default=1
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

ERI(bull, bear)

fisher

fisher(candles: np.ndarray, period=9, sequential=False) -> FisherTransform  
1

The Fisher Transform helps identify price reversals.

Arguments:

  • candles: np.ndarray
  • period: int - default=9
  • sequential: bool - default=False

Returns:

FisherTransform(fisher, signal)

fosc

fosc(candles: np.ndarray, period=5, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

FOSC - Forecast Oscillator

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

frama

frama(candles: np.ndarray, window=10, FC=1, SC=300, sequential=False) -> Union[float, np.ndarray]  
1

Fractal Adaptive Moving Average (FRAMA)

Arguments:

  • candles: np.ndarray
  • window: int - default=10
  • FC: int - default=1
  • SC: int - default=300
  • sequential: bool - default=False

Returns:

float | np.ndarray

fwma

fwma(candles: np.ndarray, period: int = 5, source_type: str = "close",sequential: bool = False) -> Union[float, np.ndarray]
1

Fibonacci's Weighted Moving Average (FWMA)

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

gatorosc

gatorosc(candles: np.ndarray, source_type="close", sequential=False) -> GATOR  
1

Gator Oscillator by Bill M. Williams

Arguments:

  • candles: np.ndarray
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

GATOR(upper, lower, upper_change, lower_change)

gauss

gauss(candles: np.ndarray, period=14, poles=4, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

Gaussian Filter

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • poles: int - default=4
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

high_pass

high_pass(candles: np.ndarray, period=48, source_type="close", sequential=False) -> Union[float, np.ndarray]
1

1-pole High Pass Filter by John F. Ehlers

Arguments:

  • candles: np.ndarray
  • period: int - default=48
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

high_pass_2_pole

high_pass_2_pole(candles: np.ndarray, period=48, source_type="close", sequential=False) -> Union[float, np.ndarray]
1

2-pole High Pass Filter by John F. Ehlers

Arguments:

  • candles: np.ndarray
  • period: int - default=48
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

hma

hma(candles: np.ndarray, period=5, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

Hull Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

ht_dcperiod

ht_dcperiod(candles: np.ndarray, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

HT_DCPERIOD - Hilbert Transform - Dominant Cycle Period

Arguments:

  • candles: np.ndarray
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

ht_dcphase

ht_dcphase(candles: np.ndarray, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

HT_DCPHASE - Hilbert Transform - Dominant Cycle Phase

Arguments:

  • candles: np.ndarray
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

ht_phasor

ht_phasor(candles: np.ndarray, source_type="close", sequential=False) -> IQ  
1

HT_PHASOR - Hilbert Transform - Phasor Components

Arguments:

  • candles: np.ndarray
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

IQ(inphase, quadrature)

ht_sine

ht_sine(candles: np.ndarray, source_type="close", sequential=False) -> SINEWAVE  
1

HT_SINE - Hilbert Transform - SineWave

Arguments:

  • candles: np.ndarray
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

SINEWAVE(sine, lead)

ht_trendline

ht_trendline(candles: np.ndarray, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

HT_TRENDLINE - Hilbert Transform - Instantaneous Trendline

Arguments:

  • candles: np.ndarray
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

ht_trendmode

ht_trendmode(candles: np.ndarray, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

HT_TRENDMODE - Hilbert Transform - Trend vs Cycle Mode

Arguments:

  • candles: np.ndarray
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

int | np.ndarray

hurst_exponent

hurst_exponent(candles: np.ndarray, min_chunksize: int = 8, max_chunksize: int = 200, num_chunksize: int = 5, method: int = 1, source_type: str = "close") -> float
1

Hurst Exponent

methods

  • RS (only available with numba): Estimates the Hurst (H) exponent using the R/S method from the time series. The R/S method consists of dividing the series into pieces of equal size series_len and calculating the rescaled range. This repeats the process for several series_len values and adjusts data regression to obtain the H. series_len will take values between min_chunksize and max_chunksize, the step size from min_chunksize to max_chunksize can be controlled through the parameter step_chunksize.
  • DMA: Estimates the Hurst (H) exponent using the DMA method from the time series. The DMA method consists on calculate the moving average of size series_len and subtract it to the original series and calculating the standard deviation of that result. This repeats the process for several series_lenvalues and adjusts data regression to obtain the H. series_len will take values between min_chunksize and max_chunksize, the step size frommin_chunksize to max_chunksize can be controlled through the parameterstep_chunksize.
  • DSOD: The estimation is based on the discrete second order derivative. Consists on get two different noise of the original series and calculate the standard deviation and calculate the slope of two point with that values.

Arguments:

  • candles: np.ndarray
  • min_chunksize: int - default=8
  • max_chunksize: int - default=200
  • num_chunksize: int - default=5
  • method: int - default=1 - 0: RS | 1: DMA | 2: DSOD
  • source_type: str - default="close"

Returns:

float

hwma

hwma(candles: np.ndarray, na: float = 0.2, nb: float = 0.1, nc: float = 0.1, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]
1

Holt-Winter Moving Average

Arguments:

  • candles: np.ndarray
  • na: float - default=0.2
  • nb: float - default=0.1
  • nc: float - default=0.1
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

int | np.ndarray

ichimoku_cloud

ichimoku_cloud(candles: np.ndarray, conversion_line_period=9, base_line_period=26, lagging_line_period=52, displacement=26) -> IchimokuCloud  
1

Ichimoku Cloud

Arguments:

  • candles: np.ndarray
  • conversion_line_period: int - default=9
  • base_line_period: int - default=26
  • lagging_line_period: int - default=52
  • displacement: - default=26

Returns:

IchimokuCloud(conversion_line, base_line, span_a, span_b)

ichimoku_cloud_seq

ichimoku_cloud_seq(candles: np.ndarray, conversion_line_period=9, base_line_period=26, lagging_line_period=52,displacement=26, sequential=False) -> IchimokuCloud
1

Ichimoku Cloud Sequential

Arguments:

  • candles: np.ndarray
  • conversion_line_period: int - default=9
  • base_line_period: int - default=26
  • lagging_line_period: int - default=52
  • displacement: - default=26

Returns:

IchimokuCloud(conversion_line, base_line, span_a, span_b, lagging_line, future_span_a, future_span_b)

ift_rsi

ift_rsi(candles: np.ndarray, rsi_period: int = 5, wma_period: int =9, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]
1

Modified Inverse Fisher Transform applied on RSI

Arguments:

  • candles: np.ndarray
  • rsi_period: int - default=5
  • wma_period: int - default=9
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

itrend

itrend(candles: np.ndarray, alpha=0.07, source_type="hl2", sequential=False) -> ITREND  
1

Instantaneous Trendline

Arguments:

  • candles: np.ndarray
  • alpha: float - default=0.07
  • source_type: str - default="hl2"
  • sequential: bool - default=False

Returns:

ITREND(signal, it, trigger)

jma

jma(candles: np.ndarray, period:int=7, phase:float=50, power:int=2, source_type:str='close', sequential:bool=False) -> Union[float, np.ndarray]
1

Jurik Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=7
  • phase: float - default=50
  • power: int - default=2
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

jsa

jsa(candles: np.ndarray, period: int = 30, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]
1

Jsa Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=30
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

kama

kama(candles: np.ndarray, period=30, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

KAMA - Kaufman Adaptive Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=30
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

kaufmanstop

kaufmanstop(candles: np.ndarray, period: int = 22, mult: float = 2, direction: str = "long", matype: int = 0,  sequential: bool = False) -> Union[ float, np.ndarray]
1

Perry Kaufman's Stops

Arguments:

  • candles: np.ndarray
  • period: int - default=22
  • mult: float - default=2
  • direction: str - default="long" | "short"
  • matype: int - default=0
  • sequential: bool - default=False

Returns:

float | np.ndarray

kdj

kdj(candles: np.ndarray, fastk_period: int = 9, slowk_period: int = 3, slowk_matype: int = 0, slowd_period: int = 3, slowd_matype: int = 0, sequential: bool = False) -> KDJ
1

The KDJ Oscillator

Arguments:

  • candles: np.ndarray
  • fastk_period: int - default=9
  • slowk_period: int - default=3
  • slowk_matype: int - default=0
  • slowd_period: int - default=3
  • slowd_matype: int - default=0
  • sequential: bool - default=False

Returns:

KDJ(k, d, j)

keltner

keltner(candles: np.ndarray, period=20, multiplier=2, matype=1, source_type="close", sequential=False) -> KeltnerChannel  
1

Keltner Channels

Arguments:

  • candles: np.ndarray
  • period: int - default=20
  • multiplier: float - default=2
  • matype: int - default=1
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

KeltnerChannel(upperband, middleband, lowerband)

kst

kst(candles: np.ndarray, sma_period1=10, sma_period2=10, sma_period3=10, sma_period4=15, roc_period1=10, roc_period2=15, roc_period3=20, roc_period4=30, signal_period=9, source_type="close", sequential=False) -> KST: 
1

Know Sure Thing (KST)

Arguments:

  • candles: np.ndarray
  • sma_period1: int - default=10
  • sma_period2: int - default=10
  • sma_period3: int - default=10
  • sma_period4: int - default=15
  • roc_period1: int - default=10
  • roc_period2: int - default=15
  • roc_period3: int - default=20
  • roc_period4: int - default=30
  • signal_period: int - default=9
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

KST(line, signal)

kurtosis

kurtosis(candles: np.ndarray, period: int = 5, source_type: str = "hl2", sequential: bool = False) -> Union[float, np.ndarray]
1

Kurtosis

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • source_type: str - default="hl2"
  • sequential: bool - default=False

Returns:

float | np.ndarray

kvo

kvo(candles: np.ndarray, short_period=2, long_period=5, sequential=False) -> Union[float, np.ndarray]  
1

KVO - Klinger Volume Oscillator

Arguments:

  • candles: np.ndarray
  • short_period: int - default=2
  • long_period: int - default=5
  • sequential: bool - default=False

Returns:

float | np.ndarray

linearreg

linearreg(candles: np.ndarray, period=14, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

LINEARREG - Linear Regression

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

linearreg_angle

linearreg_angle(candles: np.ndarray, period=14, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

LINEARREG_ANGLE - Linear Regression Angle

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

linearreg_intercept

linearreg_intercept(candles: np.ndarray, period=14, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

LINEARREG_INTERCEPT - Linear Regression Intercept

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

linearreg_slope

linearreg_slope(candles: np.ndarray, period=14, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

LINEARREG_SLOPE - Linear Regression Slope

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

lrsi

lrsi(candles: np.ndarray, alpha=0.2, sequential=False) -> Union[float, np.ndarray]  
1

RSI Laguerre Filter

Arguments:

  • candles: np.ndarray
  • alpha: float - default=0.2
  • sequential: bool - default=False

Returns:

float | np.ndarray

ma

ma(candles: np.ndarray, period: int = 30, matype: int = 0,  source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]:
1

MA - (nearly) All Moving Averages of Jesse

Arguments:

  • candles: np.ndarray
  • period: int - default=30
  • matype: int - default=0
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

maaq

maaq(candles: np.ndarray, period: int = 11, fast_period: int = 2, slow_period: int = 30, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]
1

Moving Average Adaptive Q

Arguments:

  • candles: np.ndarray
  • period: int - default=11
  • fast_period: int - default=2
  • slow_period: int - default=30
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

mab

mab(candles: np.ndarray, fast_period: int = 10, slow_period: int = 50, devup: float = 1, devdn: float = 1, fast_matype: int = 0, slow_matype: int = 0, source_type: str = "close", sequential: bool = False) -> MAB
1

Moving Average Bands

Arguments:

  • candles: np.ndarray
  • fast_period: int - default=10
  • slow_period: int - default=50
  • devup: float - default=1
  • devdn: float - default=1
  • fast_matype: int - default=0
  • slow_matype: int - default=0
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

MAB(upperband, middleband, lowerband)

macd

macd(candles: np.ndarray, fast_period=12, slow_period=26, signal_period=9, source_type="close", sequential=False) -> MACD  
1

MACD - Moving Average Convergence/Divergence

Arguments:

  • candles: np.ndarray
  • fast_period: int - default=12
  • slow_period: int - default=26
  • signal_period: int - default=9
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

MACD(macd, signal, hist)

macdext

macdext(candles: np.ndarray, fast_period=12, fast_matype=0, slow_period=26, slow_matype=0, signal_period=9, signal_matype=0, source_type="close", sequential=False) -> MACDEXT  
1

MACDEXT - MACD with controllable MA type

Arguments:

  • candles: np.ndarray
  • fast_period: int - default=12
  • fast_matype: int - default=0
  • slow_period: int - default=26
  • slow_matype: int - default=0
  • signal_period: int - default=9
  • signal_matype: int - default=0
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

MACDEXT(macd, signal, hist)

mama

mama(candles: np.ndarray, fastlimit=0.5, slowlimit=0.05, source_type="close", sequential=False) -> MAMA  
1

MAMA - MESA Adaptive Moving Average

Arguments:

  • candles: np.ndarray
  • fastlimit: float - default=0.5
  • slowlimit: float - default=0.05
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

MAMA(mama, fama)

marketfi

marketfi(candles: np.ndarray, sequential=False) -> Union[float, np.ndarray]  
1

MARKETFI - Market Facilitation Index

Arguments:

  • candles: np.ndarray
  • sequential: bool - default=False

Returns:

float | np.ndarray

mass

mass(candles: np.ndarray, period=5, sequential=False) -> Union[float, np.ndarray]  
1

MASS - Mass Index

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • sequential: bool - default=False

Returns:

float | np.ndarray

mcginley_dynamic

mcginley_dynamic(candles: np.ndarray, period=10, k=0.6, source_type="close", sequential=False) -> Union[float, np.ndarray]
1

McGinley Dynamic

Arguments:

  • candles: np.ndarray
  • period: int - default=10
  • k: float - default=0.6
  • sequential: bool - default=False

Returns:

float | np.ndarray

mean_ad

mean_ad(candles: np.ndarray, period: int = 5, source_type: str = "hl2", sequential: bool = False) -> Union[float, np.ndarray]
1

Mean Absolute Deviation

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • source_type: str - default="hl2"
  • sequential: bool - default=False

Returns:

float | np.ndarray

median_ad

median_ad(candles: np.ndarray, period: int = 5, source_type: str = "hl2", sequential: bool = False) -> Union[float, np.ndarray]
1

Median Absolute Deviation

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • source_type: str - default="hl2"
  • sequential: bool - default=False

Returns:

float | np.ndarray

medprice

medprice(candles: np.ndarray, sequential=False) -> Union[float, np.ndarray]  
1

MEDPRICE - Median Price

Arguments:

  • candles: np.ndarray
  • sequential: bool - default=False

Returns:

float | np.ndarray

mfi

mfi(candles: np.ndarray, period=14, sequential=False) -> Union[float, np.ndarray]  
1

MFI - Money Flow Index

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • sequential: bool - default=False

Returns:

float | np.ndarray

midpoint

midpoint(candles: np.ndarray, period=14, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

MIDPOINT - MidPoint over period

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

midprice

midprice(candles: np.ndarray, period=14, sequential=False) -> Union[float, np.ndarray]  
1

MIDPRICE - Midpoint Price over period

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • sequential: bool - default=False

Returns:

float | np.ndarray

minmax

minmax(candles: np.ndarray, order=3, sequential=False) -> EXTREMA  
1

minmax - Get extrema

Also called ZigZag sometimes.

Signal delayed

Due to the nature of extrema detection signals are always delayed by the amount of order. Meaning you will never get the signal at the time of occurence. This means this is not working for is_min and is_max: [-1], as this will always be false. Working: [-(order+1)].

Arguments:

  • candles: np.ndarray
  • order: int - default = 3
  • sequential: bool - default=False

Returns:

EXTREMA(is_min, is_max, last_min, last_max)

mom

mom(candles: np.ndarray, period=10, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

MOM - Momentum

Arguments:

  • candles: np.ndarray
  • period: int - default=10
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

mwdx

mwdx(candles: np.ndarray, factor: float = 0.2, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]
1

MWDX Average

Arguments:

  • candles: np.ndarray
  • factor: float - default=0.2
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

msw

msw(candles: np.ndarray, period=5, source_type="close", sequential=False) -> MSW  
1

MSW - Mesa Sine Wave

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

MSW(sine, lead)

natr

natr(candles: np.ndarray, period=14, sequential=False) -> Union[float, np.ndarray]  
1

NATR - Normalized Average True Range

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • sequential: bool - default=False

Returns:

float | np.ndarray

nma

nma(candles: np.ndarray, period: int = 40, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray] 
1

Natural Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=40
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

nvi

nvi(candles: np.ndarray, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

NVI - Negative Volume Index

Arguments:

  • candles: np.ndarray
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

obv

obv(candles: np.ndarray, sequential=False) -> Union[float, np.ndarray]  
1

OBV - On Balance Volume

Arguments:

  • candles: np.ndarray
  • sequential: bool - default=False

Returns:

float | np.ndarray

pattern_recognition

pattern_recognition(candles: np.ndarray, pattern_type, penetration=0, sequential=False) -> Union[int, np.ndarray]  
1

Pattern Recognition

Arguments:

  • candles: np.ndarray
  • penetration: int - default = 0
  • pattern_type: str
  • sequential: bool - default=False

Returns:

int | np.ndarray

Return values

  • +2 bullish pattern with confirmation
  • +1 bullish pattern (most cases)
  • 0 no pattern
  • -1 bearish pattern
  • -2 bearish pattern with confirmation

Penetration

The penetration parameter only affects:

  • CDLABANDONEDBABY
  • CDLDARKCLOUDCOVER
  • CDLEVENINGDOJISTAR
  • CDLEVENINGSTAR
  • CDLMATHOLD
  • CDLMORNINGDOJISTAR
  • CDLMORNINGSTAR

Available pattern_type

  • CDL2CROWS - Two Crows
  • CDL3BLACKCROWS - Three Black Crows
  • CDL3INSIDE - Three Inside Up/Down
  • CDL3LINESTRIKE - Three-Line Strike
  • CDL3OUTSIDE - Three Outside Up/Down
  • CDL3STARSINSOUTH - Three Stars In The South
  • CDL3WHITESOLDIERS - Three Advancing White Soldiers
  • CDLABANDONEDBABY - Abandoned Baby
  • CDLADVANCEBLOCK - Advance Block
  • CDLBELTHOLD - Belt-hold
  • CDLBREAKAWAY - Breakaway
  • CDLCLOSINGMARUBOZU - Closing Marubozu
  • CDLCONCEALBABYSWALL - Concealing Baby Swallow
  • CDLCOUNTERATTACK - Counterattack
  • CDLDARKCLOUDCOVER - Dark Cloud Cover
  • CDLDOJI - Doji
  • CDLDOJISTAR - Doji Star
  • CDLDRAGONFLYDOJI - Dragonfly Doji
  • CDLENGULFING - Engulfing Pattern
  • CDLEVENINGDOJISTAR - Evening Doji Star
  • CDLEVENINGSTAR - Evening Star
  • CDLGAPSIDESIDEWHITE - Up/Down-gap side-by-side white lines
  • CDLGRAVESTONEDOJI - Gravestone Doji
  • CDLHAMMER - Hammer
  • CDLHANGINGMAN - Hanging Man
  • CDLHARAMI - Harami Pattern
  • CDLHARAMICROSS - Harami Cross Pattern
  • CDLHIGHWAVE - High-Wave Candle
  • CDLHIKKAKE - Hikkake Pattern
  • CDLHIKKAKEMOD - Modified Hikkake Pattern
  • CDLHOMINGPIGEON - Homing Pigeon
  • CDLIDENTICAL3CROWS - Identical Three Crows
  • CDLINNECK - In-Neck Pattern
  • CDLINVERTEDHAMMER - Inverted Hammer
  • CDLKICKING - Kicking
  • CDLKICKINGBYLENGTH - Kicking - bull/bear determined by the longer marubozu
  • CDLLADDERBOTTOM - Ladder Bottom
  • CDLLONGLEGGEDDOJI - Long Legged Doji
  • CDLLONGLINE - Long Line Candle
  • CDLMARUBOZU - Marubozu
  • CDLMATCHINGLOW - Matching Low
  • CDLMATHOLD - Mat Hold
  • CDLMORNINGDOJISTAR - Morning Doji Star
  • CDLMORNINGSTAR - Morning Star
  • CDLONNECK - On-Neck Pattern
  • CDLPIERCING - Piercing Pattern
  • CDLRICKSHAWMAN - Rickshaw Man
  • CDLSEPARATINGLINES - Separating Lines
  • CDLSHOOTINGSTAR - Shooting Star
  • CDLSHORTLINE - Short Line Candle
  • CDLSTALLEDPATTERN - Stalled Pattern
  • CDLTAKURI - Takuri (Dragonfly Doji with very long lower shadow)
  • CDLTHRUSTING - Thrusting Pattern
  • CDLUNIQUE3RIVER - Unique 3 River
  • CDLXSIDEGAP3METHODS - Upside/Downside Gap Three Methods

pfe

pfe(candles: np.ndarray, period: int = 10, smoothing: int = 5, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]
1

Polarized Fractal Efficiency (PFE)

Arguments:

  • candles: np.ndarray
  • period: int - default=10
  • smoothing: int - default=5
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

pivot

pivot(candles: np.ndarray, mode=0, sequential=False) -> PIVOT  
1

Pivot Points

Arguments:

  • candles: np.ndarray
  • mode: int - default = 0
  • sequential: bool - default=False

Returns:

PIVOT(r4, r3, r2, r1, pp, s1, s2, s3, s4)

Available mode and levels

  • 0: Standard Pivot Points / Floor Pivot Points - r2, r1, pp, s1, s2
  • 1: Fibonacci Pivot Points - r3, r2, r1, pp, s1, s2, s3
  • 2: Demark Pivot Points - r1, pp, s1
  • 3: Camarilla Pivot Points - r4, r3, r2, r1, pp, s1, s2, s3, s4
  • 4: Woodie's Pivot Points - r4, r3, r2, r1, pp, s1, s2, s3, s4

pma

pma(candles: np.ndarray, source_type: str = "hl2", sequential: bool = False) -> PMA
1

Ehlers Predictive Moving Average

Arguments:

  • candles: np.ndarray
  • source_type: str - default="hl2"
  • sequential: bool - default=False

Returns:

PMA(predict, trigger)

ppo

ppo(candles: np.ndarray, fast_period=12, slow_period=26, matype=0, source_type="close", sequential=False) -> Union[  
  float, np.ndarray]  
1
2

PPO - Percentage Price Oscillator

Arguments:

  • candles: np.ndarray
  • fast_period: int - default=12
  • slow_period: int - default=26
  • matype: int - default=0
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

pvi

pvi(candles: np.ndarray, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

PVI - Positive Volume Index

Arguments:

  • candles: np.ndarray
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

pwma

pwma(candles: np.ndarray, period: int = 5, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]
1

Pascals Weighted Moving Average (PWMA)

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

qstick

qstick(candles: np.ndarray, period=5, sequential=False) -> Union[float, np.ndarray]  
1

Qstick

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • sequential: bool - default=False

Returns:

float | np.ndarray

reflex

reflex(candles: np.ndarray, period=20, source_type="close", sequential=False) -> Union[float, np.ndarray]
1

Reflex indicator by John F. Ehlers

Arguments:

  • candles: np.ndarray
  • period: int - default=20
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

roc

roc(candles: np.ndarray, period=10, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

ROC - Rate of change : ((price/prevPrice)-1)*100

Arguments:

  • candles: np.ndarray
  • period: int - default=10
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

rocp

rocp(candles: np.ndarray, period=10, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

ROCP - Rate of change Percentage: (price-prevPrice)/prevPrice

Arguments:

  • candles: np.ndarray
  • period: int - default=10
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

rocr

rocr(candles: np.ndarray, period=10, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

ROCR - Rate of change ratio: (price/prevPrice)

Arguments:

  • candles: np.ndarray
  • period: int - default=10
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

rocr100

rocr100(candles: np.ndarray, period=10, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

ROCR100 - Rate of change ratio 100 scale: (price/prevPrice)*100

Arguments:

  • candles: np.ndarray
  • period: int - default=10
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

roofing

roofing(candles: np.ndarray, hp_period=48, lp_period=10, source_type="close", sequential=False) -> Union[float, np.ndarray]
1

Roofing Filter indicator by John F. Ehlers

Arguments:

  • candles: np.ndarray
  • hp_period: int - default=48
  • lp_period: int - default=10
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

rsi

rsi(candles: np.ndarray, period=14, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

RSI - Relative Strength Index

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

rsmk

rsmk(candles: np.ndarray, candles_compare: np.ndarray, lookback: int = 90, period: int = 3, signal_period: int = 20, matype: int = 1, signal_matype: int = 1, source_type: str = "close", sequential: bool = False) -> RSMK  
1

RSMK - Relative Strength

Arguments:

  • candles: np.ndarray
  • lookback: int - default=90
  • period: int - default=3
  • signal_period: int - default=20
  • matype: int - default=1
  • signal_matype: int - default=1
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

RSMK(indicator, signal)

rsx

rsx(candles: np.ndarray, period=14, source_type="close", sequential=False) -> Union[float, np.ndarray]
1

RSX - Relative Strength Xtra

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

rvi

rvi(candles: np.ndarray, period: int = 10, ma_len: int = 14, matype: int = 1, devtype: int = 0, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]
1

RVI - Relative Volatility Index

Arguments:

  • candles: np.ndarray
  • period: int - default=10
  • ma_len: int - default=14
  • matype: int - default=1
  • devtype: int - default=0
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

safezonestop

safezonestop(candles: np.ndarray, period: int = 22, mult: float = 2.5, max_lookback: int = 3, direction: str = "long", sequential: bool = False) -> Union[float, np.ndarray]:
1

Safezone Stops

Arguments:

  • candles: np.ndarray
  • period: int - default=22
  • mult: float - default=2.5
  • max_lookback: int - default=3
  • direction: str - default="long" ("short")
  • sequential: bool - default=False

Returns:

float | np.ndarray

sar

sar(candles: np.ndarray, acceleration=0.02, maximum=0.2, sequential=False) -> Union[float, np.ndarray]  
1

SAR - Parabolic SAR

Arguments:

  • candles: np.ndarray
  • acceleration: float - default=0.02
  • maximum: float - default=0.2
  • sequential: bool - default=False

Returns:

float | np.ndarray

sarext

sarext(candles: np.ndarray, startvalue=0, offsetonreverse=0, accelerationinitlong=0, accelerationlong=0, accelerationmaxlong=0, accelerationinitshort=0, accelerationshort=0, accelerationmaxshort=0, sequential=False) -> Union[float, np.ndarray]  
1

SAREXT - Parabolic SAR - Extended

Arguments:

  • candles: np.ndarray
  • startvalue: float - default=0
  • offsetonreverse: float - default=0
  • accelerationinitlong: float - default=0
  • accelerationlong: float - default=0
  • accelerationmaxlong: float - default=0
  • accelerationinitshort: float - default=0
  • accelerationshort: float - default=0
  • accelerationmaxshort: float - default=0
  • sequential: bool - default=False

Returns:

float | np.ndarray

sinwma

sinwma(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray] 
1

Sine Weighted Moving Average (SINWMA)

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

skew

skew(candles: np.ndarray, period: int = 5, source_type: str = "hl2", sequential: bool = False) -> Union[float, np.ndarray]
1

Skewness

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • source_type: str - default="hl2"
  • sequential: bool - default=False

Returns:

float | np.ndarray

sma

sma(candles: np.ndarray, period=5, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

SMA - Simple Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

smma

smma(candles: np.ndarray, period=5, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

SMMA - Smoothed Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

sqwma

sqwma(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]
1

Square Weighted Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

float | np.ndarray

srsi

srsi(candles: np.ndarray, period=14, source_type="close", sequential=False) -> StochasticRSI  
1

Stochastic RSI

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

StochasticRSI(k, d)

srwma

srwma(candles: np.ndarray, period: int = 14, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]
1

Square Root Weighted Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

stc

stc(candles: np.ndarray, fast_period: int = 23, fast_matype: int = 1, slow_period: int = 50, slow_matype: int = 1, k_period: int = 10, d_period: int = 3, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]
1

STC - Schaff Trend Cycle (Oscillator)

Arguments:

  • candles: np.ndarray
  • fast_period: int - default=23
  • fast_matype: int - default=1
  • slow_period: int - default=50
  • slow_matype: int - default=1
  • k_period: int - default=10
  • d_period: int - default=3
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

stddev

stddev(candles: np.ndarray, period=5, nbdev=1, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

STDDEV - Standard Deviation

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • nbdev: int - default=1
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

stoch

stoch(candles: np.ndarray, fastk_period=14, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0, sequential=False) -> Stochastic  
1

The Stochastic Oscillator

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • sequential: bool - default=False

Returns:

Stochastic(k, d)

stochf

stochf(candles: np.ndarray, fastk_period=5, fastd_period=3, fastd_matype=0, sequential=False) -> StochasticFast  
1

Stochastic Fast

Arguments:

  • candles: np.ndarray
  • fastk_period: int - default=5
  • fastd_period: int - default=3
  • fastd_matype: int - default=0
  • sequential: bool - default=False

Returns:

StochasticFast(k, d)

supersmoother

supersmoother(candles: np.ndarray, period=14, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

Super Smoother Filter 2pole Butterworth
This indicator was described by John F. Ehlers

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

supersmoother_3_pole

supersmoother_3_pole(candles: np.ndarray, period=14, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

Super Smoother Filter 3pole Butterworth
This indicator was described by John F. Ehlers

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

swma

swma(candles: np.ndarray, period: int = 5, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]
1

Symmetric Weighted Moving Average (SWMA)

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

supertrend

supertrend(candles: np.ndarray, period=10, factor=3, sequential=False) -> SuperTrend  
1

SuperTrend

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • factor: int - default=3
  • sequential: bool - default=False

Returns:

SuperTrend(trend, changed)

t3

t3(candles: np.ndarray, period=5, vfactor=0, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

T3 - Triple Exponential Moving Average (T3)

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • vfactor: float - default=0
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

tema

tema(candles: np.ndarray, period=9, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

TEMA - Triple Exponential Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=9
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

trange

trange(candles: np.ndarray, sequential=False) -> Union[float, np.ndarray]  
1

TRANGE - True Range

Arguments:

  • candles: np.ndarray
  • sequential: bool - default=False

Returns:

float | np.ndarray

trendflex

trendflex(candles: np.ndarray, period=20, source_type="close", sequential=False) -> Union[float, np.ndarray]
1

Trendflex indicator by John F. Ehlers

Arguments:

  • candles: np.ndarray
  • period: int - default=20
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

trima

trima(candles: np.ndarray, period=30, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

TRIMA - Triangular Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=30
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

trix

trix(candles: np.ndarray, period=18, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

TRIX - 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA

Arguments:

  • candles: np.ndarray
  • period: int - default=18
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

tsf

tsf(candles: np.ndarray, period=14, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

TSF - Time Series Forecast

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

tsi

tsi(candles: np.ndarray, long_period=25, short_period=13, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

True strength index (TSI)

Arguments:

  • candles: np.ndarray
  • long_period: int - default=25
  • short_period: int - default=13
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

ttm_trend

ttm_trend(candles: np.ndarray, period: int = 5, source_type: str = "hl2", sequential: bool = False) -> Union[float, np.ndarray]
1

TTM Trend

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • source_type: str - default="hl2"
  • sequential: bool - default=False

Returns:

float | np.ndarray

typprice

typprice(candles: np.ndarray, sequential=False) -> Union[float, np.ndarray]  
1

TYPPRICE - Typical Price

Arguments:

  • candles: np.ndarray
  • sequential: bool - default=False

Returns:

float | np.ndarray

ui

ui(candles: np.ndarray, period: int = 14, scalar: float = 100, source_type: str = "close",  sequential: bool = False) -> Union[float, np.ndarray]
1

Ulcer Index (UI)

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • scalar: float - default=100
  • sequential: bool - default=False

Returns:

float | np.ndarray

ultosc

ultosc(candles: np.ndarray, timeperiod1=7, timeperiod2=14, timeperiod3=28, sequential=False) -> Union[  
  float, np.ndarray]  
1
2

ULTOSC - Ultimate Oscillator

Arguments:

  • candles: np.ndarray
  • timeperiod1: int - default=7
  • timeperiod2: int - default=14
  • timeperiod3: int - default=28
  • sequential: bool - default=False

Returns:

float | np.ndarray

var

var(candles: np.ndarray, period=14, nbdev=1, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

VAR - Variance

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • nbdev: int - default=1
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

vi

vi(candles: np.ndarray, period=14, sequential=False) -> VI  
1

Vortex Indicator (VI)

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • sequential: bool - default=False

Returns:

VI(plus, minus)

vidya

vidya(candles: np.ndarray, short_period=2, long_period=5, alpha=0.2, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

VIDYA - Variable Index Dynamic Average

Arguments:

  • candles: np.ndarray
  • short_period: int - default=2
  • long_period: int - default=5
  • alpha: float - default=0.2
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

vpci

vpci(candles: np.ndarray, short_range=5, long_range=25, sequential=False) -> VPCI
1

VPCI - Volume Price Confirmation Indicator

Arguments:

  • candles: np.ndarray
  • short_range: int - default=5
  • long_range: int - default=25
  • sequential: bool - default=False

Returns:

VPCI(vpci, vpcis)

vlma

vlma(candles: np.ndarray, min_period: int = 5, max_period: int = 50, matype: int = 0, devtype: int = 0, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]
1

Variable Length Moving Average

Arguments:

  • candles: np.ndarray
  • min_period: int - default=5
  • max_period: int - default=50
  • matype: int - default=0
  • devtype: int - default=0
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

vosc

vosc(candles: np.ndarray, short_period=2, long_period=5, sequential=False) -> Union[float, np.ndarray]  
1

VOSC - Volume Oscillator

Arguments:

  • candles: np.ndarray
  • short_period: int - default=2
  • long_period: int - default=5
  • sequential: bool - default=False

Returns:

float | np.ndarray

voss

voss(candles: np.ndarray, period=20, predict=3, bandwith=0.25, source_type="close", sequential=False) -> VossFilter
1

Voss - Voss Filter indicator by John Ehlers

Arguments:

  • candles: np.ndarray
  • period: int - default=20
  • predict: int - default=3
  • bandwith: float - default=0.25
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

VossFilter(voss, filt)

vpt

vpt(candles: np.ndarray, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

VPT - Volume Price Trend

Arguments:

  • candles: np.ndarray
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

vpwma

vpwma(candles: np.ndarray, period: int = 14, power: float = 0.382, source_type: str = "close", sequential: bool = False) -> Union[float, np.ndarray]
1

Variable Power Weighted Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • power: float - default=0.382
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

vwap

vwap(candles: np.ndarray, source_type: str = "hlc3", anchor: str = "D", sequential: bool = False) -> Union[float, np.ndarray]
1

VWAP - Volume weighted average price

Arguments:

  • candles: np.ndarray
  • source_type: str - default="close"
  • anchor: str - ‘D‘ - (‘Y’), months (‘M’), weeks (‘W’), days (‘D’), hours (‘h’), minutes (‘m’)
  • sequential: bool - default=False

Returns:

float | np.ndarray

vwma

vwma(candles: np.ndarray, period=20, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

VWMA - Volume Weighted Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=20
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

vwmacd

vwmacd(candles: np.ndarray, fast_period=12, slow_period=26, signal_period=9, sequential=False) -> VWMACD  
1

VWMACD - Volume Weighted Moving Average Convergence/Divergence

Arguments:

  • candles: np.ndarray
  • fast_period: int - default=12
  • slow_period: int - default=26
  • signal_period: int - default=9
  • sequential: bool - default=False

Returns:

VWMACD(macd, signal, hist)

wad

wad(candles: np.ndarray, sequential=False) -> Union[float, np.ndarray]  
1

WAD - Williams Accumulation/Distribution

Arguments:

  • candles: np.ndarray
  • sequential: bool - default=False

Returns:

float | np.ndarray

wclprice

wclprice(candles: np.ndarray, sequential=False) -> Union[float, np.ndarray]  
1

WCLPRICE - Weighted Close Price

Arguments:

  • candles: np.ndarray
  • sequential: bool - default=False

Returns:

float | np.ndarray

wilders

wilders(candles: np.ndarray, period=5, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

WILDERS - Wilders Smoothing

Arguments:

  • candles: np.ndarray
  • period: int - default=5
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

willr

willr(candles: np.ndarray, period=14, sequential=False) -> Union[float, np.ndarray]  
1

WILLR - Williams' %R

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • sequential: bool - default=False

Returns:

float | np.ndarray

wma

wma(candles: np.ndarray, period=30, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

WMA - Weighted Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=30
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

wt

wt(candles: np.ndarray, wtchannellen: int = 9, wtaveragelen: int = 12, wtmalen: int = 3, oblevel: int = 53,  oslevel: int = -53, source_type: str = "hlc3", sequential: bool = False) -> Wavetrend
1

Wavetrend indicator

Arguments:

  • candles: np.ndarray
  • wtchannellen: int - period=9
  • wtaveragelen: int - period=12
  • wtmalen: int - period=3
  • oblevel: int - period=53
  • oslevel: int - period=-53
  • source_type: str - period="hlc3"
  • sequential: bool - period=False

Returns:

Wavetrend(wt1, wt2, wtCrossUp, wtCrossDown, wtOversold, wtOverbought, wtVwap)

zlema

zlema(candles: np.ndarray, period=20, source_type="close", sequential=False) -> Union[float, np.ndarray]  
1

Zero-Lag Exponential Moving Average

Arguments:

  • candles: np.ndarray
  • period: int - default=20
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray

zscore

zscore(candles: np.ndarray, period=14, matype=0, nbdev=1, devtype: int = 0, source_type="close", sequential=False) -> Union[  
  float, np.ndarray]  
1
2

zScore

Arguments:

  • candles: np.ndarray
  • period: int - default=14
  • matype: int - default=0
  • nbdev: int - default=1
  • devtype: int - default=1
  • source_type: str - default="close"
  • sequential: bool - default=False

Returns:

float | np.ndarray