"""
Expressions Module

This module contains polars expression factory functions with names in upper caps like `SMA`, `EMA`, etc

Series based expressions accept an expression as their first parameter `src`.
For prices/multi-column based expressions the parameter is optional.
"""

# Do not edit! This file was generated.

from mintalib import core
from mintalib.model.expression import wrap_expression


@wrap_expression(core.calc_abs)
def ABS(src): ...

@wrap_expression(core.calc_adx)
def ADX(period: int = 14, *, src='*'): ...

@wrap_expression(core.calc_alma)
def ALMA(src, period: int = 9, offset: float = 0.85, sigma: float = 6.0): ...

@wrap_expression(core.calc_atr)
def ATR(period: int = 14, *, src='*'): ...

@wrap_expression(core.calc_avgprice)
def AVGPRICE(*, src='*'): ...

@wrap_expression(core.calc_bbands)
def BBANDS(period: int = 20, nbdev: float = 2.0, *, src='*'): ...

@wrap_expression(core.calc_bbp)
def BBP(period: int = 20, nbdev: float = 2.0, *, src='*'): ...

@wrap_expression(core.calc_bbw)
def BBW(period: int = 20, nbdev: float = 2.0, *, src='*'): ...

@wrap_expression(core.calc_bop)
def BOP(period: int = 20, *, src='*'): ...

@wrap_expression(core.calc_cci)
def CCI(period: int = 20, *, src='*'): ...

@wrap_expression(core.calc_clag)
def CLAG(src, period: int = 1): ...

@wrap_expression(core.calc_cmf)
def CMF(period: int = 20, *, src='*'): ...

@wrap_expression(core.calc_crossover)
def CROSSOVER(src, level: float = 0.0): ...

@wrap_expression(core.calc_crossunder)
def CROSSUNDER(src, level: float = 0.0): ...

@wrap_expression(core.calc_curve)
def CURVE(src, period: int = 20): ...

@wrap_expression(core.calc_dema)
def DEMA(src, period: int): ...

@wrap_expression(core.calc_diff)
def DIFF(src, period: int = 1): ...

@wrap_expression(core.calc_dmi)
def DMI(period: int = 14, *, src='*'): ...

@wrap_expression(core.calc_ema)
def EMA(src, period: int, *, adjust: bool = False): ...

@wrap_expression(core.calc_exp)
def EXP(src): ...

@wrap_expression(core.calc_flag)
def FLAG(src): ...

@wrap_expression(core.calc_hma)
def HMA(src, period: int): ...

@wrap_expression(core.calc_kama)
def KAMA(src, period: int = 10, fastn: int = 2, slown: int = 30): ...

@wrap_expression(core.calc_keltner)
def KELTNER(period: int = 20, nbatr: float = 2.0, *, src='*'): ...

@wrap_expression(core.calc_ker)
def KER(src, period: int = 10): ...

@wrap_expression(core.calc_lag)
def LAG(src, period: int): ...

@wrap_expression(core.calc_log)
def LOG(src): ...

@wrap_expression(core.calc_lroc)
def LROC(src, period: int = 1): ...

@wrap_expression(core.calc_macd)
def MACD(src, n1: int = 12, n2: int = 26, n3: int = 9): ...

@wrap_expression(core.calc_macdv)
def MACDV(n1: int = 12, n2: int = 26, n3: int = 9, *, src='*'): ...

@wrap_expression(core.calc_mad)
def MAD(src, period: int = 14): ...

@wrap_expression(core.calc_mav)
def MAV(src, period: int = 20, *, ma_type: str = 'SMA'): ...

@wrap_expression(core.calc_max)
def MAX(src, period: int): ...

@wrap_expression(core.calc_mdi)
def MDI(period: int = 14, *, src='*'): ...

@wrap_expression(core.calc_mfi)
def MFI(period: int = 14, *, src='*'): ...

@wrap_expression(core.calc_midprice)
def MIDPRICE(*, src='*'): ...

@wrap_expression(core.calc_min)
def MIN(src, period: int): ...

@wrap_expression(core.calc_natr)
def NATR(period: int = 14, *, src='*'): ...

@wrap_expression(core.calc_pdi)
def PDI(period: int = 14, *, src='*'): ...

@wrap_expression(core.calc_ppo)
def PPO(src, n1: int = 12, n2: int = 26, n3: int = 9): ...

@wrap_expression(core.calc_price)
def PRICE(item: str = None, *, src='*'): ...

@wrap_expression(core.calc_qsf)
def QSF(src, period: int = 20, offset: int = 0): ...

@wrap_expression(core.calc_rma)
def RMA(src, period: int): ...

@wrap_expression(core.calc_roc)
def ROC(src, period: int = 1): ...

@wrap_expression(core.calc_rsi)
def RSI(src, period: int = 14): ...

@wrap_expression(core.calc_rvalue)
def RVALUE(src, period: int = 20): ...

@wrap_expression(core.calc_sar)
def SAR(afs: float = 0.02, maxaf: float = 0.2, *, src='*'): ...

@wrap_expression(core.calc_shift)
def SHIFT(src, period: int): ...

@wrap_expression(core.calc_sign)
def SIGN(src): ...

@wrap_expression(core.calc_slope)
def SLOPE(src, period: int = 20): ...

@wrap_expression(core.calc_sma)
def SMA(src, period: int): ...

@wrap_expression(core.calc_stdev)
def STDEV(src, period: int = 20): ...

@wrap_expression(core.calc_step)
def STEP(src, threshold: 'float' = 1.0): ...

@wrap_expression(core.calc_stoch)
def STOCH(period: int = 14, fastn: int = 3, slown: int = 3, *, src='*'): ...

@wrap_expression(core.calc_streak)
def STREAK(src): ...

@wrap_expression(core.calc_sum)
def SUM(src, period: int): ...

@wrap_expression(core.calc_tema)
def TEMA(src, period: int = 20): ...

@wrap_expression(core.calc_trange)
def TRANGE(*, log_prices: bool = False, percent: bool = False, src='*'): ...

@wrap_expression(core.calc_tsf)
def TSF(src, period: int = 20, offset: int = 0): ...

@wrap_expression(core.calc_typprice)
def TYPPRICE(*, src='*'): ...

@wrap_expression(core.calc_updown)
def UPDOWN(src, up_level: float = 0.0, down_level: float = 0.0): ...

@wrap_expression(core.calc_wclprice)
def WCLPRICE(*, src='*'): ...

@wrap_expression(core.calc_wma)
def WMA(src, period: int): ...

__all__ = [
    'ABS', 'ADX', 'ALMA', 'ATR', 'AVGPRICE', 'BBANDS', 'BBP', 'BBW', 'BOP',
    'CCI', 'CLAG', 'CMF', 'CROSSOVER', 'CROSSUNDER', 'CURVE', 'DEMA',
    'DIFF', 'DMI', 'EMA', 'EXP', 'FLAG', 'HMA', 'KAMA', 'KELTNER', 'KER',
    'LAG', 'LOG', 'LROC', 'MACD', 'MACDV', 'MAD', 'MAV', 'MAX', 'MDI',
    'MFI', 'MIDPRICE', 'MIN', 'NATR', 'PDI', 'PPO', 'PRICE', 'QSF', 'RMA',
    'ROC', 'RSI', 'RVALUE', 'SAR', 'SHIFT', 'SIGN', 'SLOPE', 'SMA',
    'STDEV', 'STEP', 'STOCH', 'STREAK', 'SUM', 'TEMA', 'TRANGE', 'TSF',
    'TYPPRICE', 'UPDOWN', 'WCLPRICE', 'WMA'
]
