"""Type stubs for MyTT technical indicator library. Provides type annotations for the MyTT functions used in easy_tdx. All indicator functions accept numpy arrays and return numpy arrays. """ from __future__ import annotations import numpy as np import numpy.typing as npt NDArray = npt.NDArray[np.float64] # ── Moving Averages ────────────────────────────────────────────────────────── def MA(S: npt.ArrayLike, N: int) -> NDArray: ... def EMA(S: npt.ArrayLike, N: int) -> NDArray: ... def SMA(S: npt.ArrayLike, N: int, M: int = ...) -> NDArray: ... def WMA(S: npt.ArrayLike, N: int) -> NDArray: ... def DMA(S: npt.ArrayLike, A: npt.ArrayLike) -> NDArray: ... # ── MACD / Momentum ───────────────────────────────────────────────────────── def MACD( CLOSE: npt.ArrayLike, SHORT: int = ..., LONG: int = ..., M: int = ..., ) -> tuple[NDArray, NDArray, NDArray]: ... def RSI(CLOSE: npt.ArrayLike, N: int = ...) -> NDArray: ... def MTM(CLOSE: npt.ArrayLike, N: int = ...) -> NDArray: ... def ROC(CLOSE: npt.ArrayLike, N: int = ...) -> NDArray: ... def OBV(CLOSE: npt.ArrayLike, VOL: npt.ArrayLike) -> NDArray: ... # ── Bollinger / Envelope ──────────────────────────────────────────────────── def BOLL( CLOSE: npt.ArrayLike, N: int = ..., P: float = ..., ) -> tuple[NDArray, NDArray, NDArray]: ... # ── Trend Indicators ──────────────────────────────────────────────────────── def ATR(CLOSE: npt.ArrayLike, HIGH: npt.ArrayLike, LOW: npt.ArrayLike, N: int = ...) -> NDArray: ... def DMI( CLOSE: npt.ArrayLike, HIGH: npt.ArrayLike, LOW: npt.ArrayLike, M: int = ..., N: int = ..., ) -> tuple[NDArray, NDArray, NDArray, NDArray]: ... def KDJ( CLOSE: npt.ArrayLike, HIGH: npt.ArrayLike, LOW: npt.ArrayLike, N: int = ..., M1: int = ..., M2: int = ..., ) -> tuple[NDArray, NDArray, NDArray]: ... def WR(CLOSE: npt.ArrayLike, HIGH: npt.ArrayLike, LOW: npt.ArrayLike, N: int = ...) -> NDArray: ... def CCI(CLOSE: npt.ArrayLike, HIGH: npt.ArrayLike, LOW: npt.ArrayLike, N: int = ...) -> NDArray: ... def TRIX(CLOSE: npt.ArrayLike, N: int = ...) -> NDArray: ... # ── Volume Indicators ─────────────────────────────────────────────────────── def VR( CLOSE: npt.ArrayLike, VOL: npt.ArrayLike, N: int = ..., ) -> NDArray: ... def MFI(CLOSE: npt.ArrayLike, HIGH: npt.ArrayLike, LOW: npt.ArrayLike, VOL: npt.ArrayLike, N: int = ...) -> NDArray: ... def EMV(HIGH: npt.ArrayLike, LOW: npt.ArrayLike, VOL: npt.ArrayLike, N: int = ...) -> NDArray: ... # ── Other Indicators ──────────────────────────────────────────────────────── def ASI(CLOSE: npt.ArrayLike, HIGH: npt.ArrayLike, LOW: npt.ArrayLike, OPEN: npt.ArrayLike, N: int = ...) -> NDArray: ... def BBI(CLOSE: npt.ArrayLike, N1: int = ..., N2: int = ..., N3: int = ..., N4: int = ...) -> NDArray: ... def BIAS(CLOSE: npt.ArrayLike, N1: int = ..., N2: int = ..., N3: int = ...) -> tuple[NDArray, NDArray, NDArray]: ... def BIAS_SIGNAL(CLOSE: npt.ArrayLike, N: int = ...) -> NDArray: ... def BRAR(OPEN: npt.ArrayLike, CLOSE: npt.ArrayLike, HIGH: npt.ArrayLike, LOW: npt.ArrayLike, N: int = ...) -> tuple[NDArray, NDArray]: ... def CR(HIGH: npt.ArrayLike, LOW: npt.ArrayLike, CLOSE: npt.ArrayLike, N: int = ...) -> NDArray: ... def DFMA(CLOSE: npt.ArrayLike, N1: int = ..., N2: int = ...) -> tuple[NDArray, NDArray]: ... def DPO(CLOSE: npt.ArrayLike, N: int = ...) -> NDArray: ... def EXPMA(CLOSE: npt.ArrayLike, N1: int = ..., N2: int = ...) -> tuple[NDArray, NDArray]: ... def KTN(CLOSE: npt.ArrayLike, HIGH: npt.ArrayLike, LOW: npt.ArrayLike, N: int = ..., M: int = ...) -> tuple[NDArray, NDArray, NDArray]: ... def MASS(HIGH: npt.ArrayLike, LOW: npt.ArrayLike, N1: int = ..., N2: int = ...) -> NDArray: ... def PSY(CLOSE: npt.ArrayLike, N: int = ...) -> NDArray: ... def TAQ(CLOSE: npt.ArrayLike, N: int = ...) -> NDArray: ... def XSII(CLOSE: npt.ArrayLike, HIGH: npt.ArrayLike, LOW: npt.ArrayLike, N: int = ...) -> NDArray: ... def ZHUOYAO(CLOSE: npt.ArrayLike, HIGH: npt.ArrayLike, LOW: npt.ArrayLike, VOL: npt.ArrayLike) -> NDArray: ... def SAR(HIGH: npt.ArrayLike, LOW: npt.ArrayLike, AF_STEP: float = ..., AF_MAX: float = ...) -> NDArray: ... def VWAP( CLOSE: npt.ArrayLike, HIGH: npt.ArrayLike, LOW: npt.ArrayLike, VOL: npt.ArrayLike, N: int = ..., ) -> NDArray: ... def AROON( HIGH: npt.ArrayLike, LOW: npt.ArrayLike, N: int = ..., ) -> tuple[NDArray, NDArray, NDArray]: ... def FK(CLOSE: npt.ArrayLike) -> NDArray: ... def FSL( CLOSE: npt.ArrayLike, VOL: npt.ArrayLike, CAPITAL: float, ) -> tuple[NDArray, NDArray]: ... # ── V4.3 无未来函数指标 ───────────────────────────────────────────────────── def HMA(S: npt.ArrayLike, N: int = ...) -> NDArray: ... def KAMA(S: npt.ArrayLike, N: int = ..., FAST: int = ..., SLOW: int = ...) -> NDArray: ... def SUPERTREND( CLOSE: npt.ArrayLike, HIGH: npt.ArrayLike, LOW: npt.ArrayLike, N: int = ..., M: float = ..., ) -> tuple[NDArray, npt.NDArray[np.int32]]: ... def CHANDELIER( CLOSE: npt.ArrayLike, HIGH: npt.ArrayLike, LOW: npt.ArrayLike, N: int = ..., M: int = ..., K: float = ..., ) -> tuple[NDArray, NDArray]: ... def ICHIMOKU( HIGH: npt.ArrayLike, LOW: npt.ArrayLike, CLOSE: npt.ArrayLike, P1: int = ..., P2: int = ..., P3: int = ..., SHIFT: int = ..., ) -> tuple[NDArray, NDArray, NDArray, NDArray, NDArray]: ... def UOS( CLOSE: npt.ArrayLike, HIGH: npt.ArrayLike, LOW: npt.ArrayLike, P1: int = ..., P2: int = ..., P3: int = ..., M: int = ..., ) -> tuple[NDArray, NDArray]: ... def CMO(CLOSE: npt.ArrayLike, N: int = ...) -> NDArray: ... def TSI( CLOSE: npt.ArrayLike, R: int = ..., S: int = ..., M: int = ..., ) -> tuple[NDArray, NDArray]: ... def FISHER( HIGH: npt.ArrayLike, LOW: npt.ArrayLike, N: int = ..., ) -> tuple[NDArray, NDArray]: ... def SQUEEZE( CLOSE: npt.ArrayLike, HIGH: npt.ArrayLike, LOW: npt.ArrayLike, N: int = ..., BB: float = ..., KC: float = ..., ) -> tuple[npt.NDArray[np.bool_], NDArray]: ... def CHOP(HIGH: npt.ArrayLike, LOW: npt.ArrayLike, CLOSE: npt.ArrayLike, N: int = ...) -> NDArray: ... def AD(CLOSE: npt.ArrayLike, HIGH: npt.ArrayLike, LOW: npt.ArrayLike, VOL: npt.ArrayLike) -> NDArray: ... def CMF( CLOSE: npt.ArrayLike, HIGH: npt.ArrayLike, LOW: npt.ArrayLike, VOL: npt.ArrayLike, N: int = ..., ) -> NDArray: ... def EFI(CLOSE: npt.ArrayLike, VOL: npt.ArrayLike, N: int = ...) -> NDArray: ... def BBP(CLOSE: npt.ArrayLike, N: int = ..., P: float = ...) -> NDArray: ... def BBW(CLOSE: npt.ArrayLike, N: int = ..., P: float = ...) -> NDArray: ... # ── Utility Functions ──────────────────────────────────────────────────────── def CROSS(A: npt.ArrayLike, B: npt.ArrayLike) -> NDArray: ... def HHV(S: npt.ArrayLike, N: int) -> NDArray: ... def LLV(S: npt.ArrayLike, N: int) -> NDArray: ... def REF(S: npt.ArrayLike, N: int) -> NDArray: ... def SUM(S: npt.ArrayLike, N: int) -> NDArray: ... def COUNT(S: npt.ArrayLike, N: int) -> NDArray: ... def STD(S: npt.ArrayLike, N: int) -> NDArray: ...