mirror of
https://ghfast.top/https://github.com/aeroxw/easy_tdx_max.git
synced 2026-09-12 16:54:20 +08:00
feat: add MyTT.pyi type stubs, enable strict mypy
- Create type stub file for 50+ MyTT indicator functions - Covers all 31 functions used in the project + common utilities - Remove mypy disallow_untyped_defs/calls override for MyTT - MyTT now covered by strict mypy via .pyi stubs
This commit is contained in:
+1
-2
@@ -29,8 +29,7 @@ ignore_missing_imports = true
|
|||||||
|
|
||||||
[[tool.mypy.overrides]]
|
[[tool.mypy.overrides]]
|
||||||
module = "easy_tdx.MyTT"
|
module = "easy_tdx.MyTT"
|
||||||
disallow_untyped_defs = false
|
# Type stubs provided via MyTT.pyi — keep strict checks enabled
|
||||||
disallow_untyped_calls = false
|
|
||||||
|
|
||||||
[tool.ruff]
|
[tool.ruff]
|
||||||
target-version = "py310"
|
target-version = "py310"
|
||||||
|
|||||||
@@ -0,0 +1,105 @@
|
|||||||
|
"""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,
|
||||||
|
LOW: npt.ArrayLike,
|
||||||
|
HIGH: 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: ...
|
||||||
|
|
||||||
|
# ── 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: ...
|
||||||
Reference in New Issue
Block a user