Skip to main content

基于 NumPy 的通达信、同花顺和文华财经公式函数库

Project description

MyTT_plus

MyTT_plus 是一个基于 NumPy 的通达信、同花顺和文华财经技术分析公式函数库。 它提供常用指标、序列计算、条件判断、统计、日期时间和字符串函数,适合公式迁移、 行情研究、量化回测和策略原型开发。

项目不依赖 TA-Lib 和 pandas,支持 Python 3.12 及以上版本。

PyPI 发行包名是 MyTT_plus,安装后的 Python 导入名仍为 MyTT。 保留原导入名是为了兼容已有代码。

安装

python -m pip install MyTT_plus

升级到最新版本:

python -m pip install --upgrade MyTT_plus

确认安装结果:

import MyTT

print(MyTT.__version__)

快速开始

import numpy as np
import MyTT

close = np.array([10.0, 10.5, 11.0, 10.8, 11.4, 11.9])
high = close + 0.3
low = close - 0.3

# 常用指标
dif, dea, macd = MyTT.MACD(close)
k, d, j = MyTT.KDJ(close, high, low)

# 通达信式序列公式
ma5 = MyTT.MA(close, 5)
signal = MyTT.CROSS(ma5, MyTT.MA(close, 10))

# 动态引用周期
previous = MyTT.REF(close, [0, 1, 1, 2, 2, 3])

# N=0 表示从第一个有效值累计
history_high = MyTT.HHV(close, 0)

API 约定

  • 输入一般是一维 list、tuple 或 numpy.ndarray
  • 序列函数返回与输入等长的 numpy.ndarray
  • 窗口历史不足时返回 nan,不会把不完整窗口误当成有效结果。
  • 除数为零时返回 nan,不会生成无限值。
  • 函数不会原地修改输入数组。
  • 非法周期、长度不一致或无效平滑参数会抛出明确的 TypeErrorValueError
  • OPENHIGHLOWCLOSEVOL 等行情数据需要调用者显式传入。

主要能力

基础序列和条件函数

包括 MAEMASMAWMADMAREFSUMHHVLLVCOUNTEVERYEXISTFILTERCROSSLONGCROSSBARSLASTVALUEWHENBETWEEN 等。

常用技术指标

包括 MACDKDJRSIBOLLCCIATRDMITRIXMFIOBVASIBIASWRPSYBBIVRCREMVROCSARTDX_SAR 等。

通达信兼容扩展

4.1.0 新增 77 个可独立计算的通达信函数,主要包括:

  • 数学与逻辑:ACOSASINATANEXPLOGCEILINGFLOORINTPARTFRACPARTROUNDROUND2SIGNMODMAX6MIN6REVERSERANGEIFFIFNNOTISVALID
  • 窗口与定位:BARSCOUNTCURRBARSCOUNTTOTALBARSCOUNTBARSTATUSBARSSINCEBARSLASTSMULARFILTERXSUMBARSSUMBARSXHODLODHHVLLVFINDHIGHFINDLOW 及其位置函数。
  • 条件与趋势:UPDOWNUPNDAYDOWNNDAYNDAYEXISTR
  • 均线与统计:TMAMEMAAMAEXPMEMATRDEVSQSTDPSTDDEVVARVARPCOVARRELATEBETAEX
  • 日期和字符串:DATETODAYDAYTODATETIMETOSECSECTOTIMECON2STRVAR2STRSTR2CONSTRCATVARCATSUBSTRFINDSTR 等。

当前公开 152 个公式和指标名称,其中 119 个名称与通达信官网函数表直接对应。

4.1.0 改动说明

新增函数

  • 新增独立的通达信兼容层 MyTT.tdx,并从 MyTT 顶层统一导出。
  • 增加数学、统计、周期定位、条件、日期时间和字符串共 77 个函数。
  • 增加 BACKSETBARSNEXTREFX 三个显式未来函数,便于迁移和核对旧公式。
  • EXPMA(X, N) 现在可作为通达信 EMA(X, N) 的别名使用。
  • EXPMA(X) 仍返回 MyTT 传统的 12/50 双线指标,保持旧代码兼容。

兼容性修复

  • REF(X, N) 支持动态周期数组,并支持 N=0 返回当前值。
  • HHVLLVHHVBARSLLVBARS 支持 N=0 的历史累计语义。
  • STD 按通达信定义修正为样本标准差。
  • BETWEEN 修正为包含上下边界的闭区间判断。
  • SUMBARSSUMBARSX 分别实现累计不足时返回已有周期数和无效值的语义。
  • 增加输入长度、周期、平滑参数、除零和缺失数据检查。

工程化改进

  • 使用 src/ 包布局和 pyproject.toml 构建。
  • 提供类型标记,支持 mypy 检查。
  • 使用 Ruff 统一代码检查和格式。
  • 测试覆盖基础函数、条件、指标、状态函数和兼容扩展,分支覆盖率超过 90%。
  • 可同时构建 wheel 和 sdist 安装包。

未来函数警告

BACKSETBARSNEXTREFX 会使用当前周期之后才能确定的数据。 它们只应用于公式迁移、图形复现或离线研究,不得用于历史回测中的可交易信号, 更不能直接用于实盘决策。

尚不能由本库独立实现的功能

以下能力依赖通达信客户端、外部数据库或专有算法,不能只靠 OHLCV 数组等价实现:

  • DYNAINFO(*)FINANCE(*)、Level-2 和实时盘口数据。
  • 行业、概念、地域、自定义板块及横向统计。
  • 跨品种、跨周期、其他公式输出和云公式引用。
  • COSTWINNER 等筹码分布模型及除权除息数据库。
  • DRAWKLINEDRAWTEXTSTICKLINE 等客户端绘图指令。
  • 账户、下单、撤单、DLL 和客户端交易状态机。
  • 部分算法细节未公开的未来函数,如 ZIGPEAKTROUGH

详细审计结果见 通达信函数覆盖审计

开发和测试

git clone https://github.com/dbx192/MyTT.git
cd MyTT
python -m pip install -e '.[dev]'
pytest
ruff check src tests
ruff format --check src tests
mypy src
python -m build

许可证

本项目采用 GPL-3.0-or-later 许可证。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mytt_plus-4.1.0.tar.gz (112.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mytt_plus-4.1.0-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file mytt_plus-4.1.0.tar.gz.

File metadata

  • Download URL: mytt_plus-4.1.0.tar.gz
  • Upload date:
  • Size: 112.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for mytt_plus-4.1.0.tar.gz
Algorithm Hash digest
SHA256 4595dddc2c4254c540d8b91d2143571e04a49a8050d22d78dcfaf3a6c1cb2960
MD5 9920687b0f5c1b26ca54a4be248443b6
BLAKE2b-256 a684e850ee4492011b296dd0446c6fa4b83a2459c31d8bd6b683fe8775de6f71

See more details on using hashes here.

File details

Details for the file mytt_plus-4.1.0-py3-none-any.whl.

File metadata

  • Download URL: mytt_plus-4.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for mytt_plus-4.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1e930a6b46b0081d1eeecc609f43f58feb709b29e8ab9db616b79bc94dfef08b
MD5 24d3f9a726d7b5cacbb5ac4c410879d0
BLAKE2b-256 ea9fd46ccf4a99b271933103df4923471c2bcae5641b28a0fd5bf6ed76551cae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page