这个仓库名为 MyTT
,它是一个精炼且高效的量化工具箱,可将通达信、同花顺、文华麦语言等指标公式最简移植到 Python 中。以下是对该仓库的详细介绍:
功能特点
- 核心库轻量化:项目核心库仅一个文件
MyTT.py
,无需安装设置,可自由裁剪,使用时只需from MyTT import *
即可。 - 代码易读:代码逻辑简单易懂,即使是初学者也能轻松理解,还可自行添加指标并应用到项目中。
- 无需安装 ta - lib 库:采用纯 Python 代码实现核心逻辑,避免了安装 ta - lib 库可能遇到的问题。
- 指标写法兼容:与通达信、同花顺的指标写法完全兼容,新指标基本无需修改即可直接使用。
- 高性能:主要依靠 numpy 和 pandas 的内置函数实现各种指标,基本不用循环,性能卓越。
- 多参数输出:和 Talib 库一样,支持多天参数输入,多天指标输出(序列进,序列出),便于画图和观察趋势。
- 指标一致性:实现的各种指标与通达信、同花顺、雪球等软件的技术指标在小数点后 2 位保持一致。
- 高级进阶版本:仓库中包含
MyTT_plus.py
文件,收录了高级复杂用法的函数和实验验证函数。 - Python2 兼容性:提供
MyTT_python2.py
文件,可在 Python2 的老版本 pandas 中使用。
安装方法
- 直接拷贝:将
MyTT.py
拷贝到项目目录下,使用from MyTT import *
即可调用文件中的所有函数。 - 传统标准库安装:使用
pip install MyTT
进行安装。
示例代码
以下是一个数字货币行情获取和指标计算的演示代码:
# 数字货币行情获取和指标计算演示
from hb_hq_api import * # 数字货币行情库
from MyTT import * # myTT 麦语言工具函数指标库
# 获取 btc.usdt 交易对 120 日的数据
df = get_price('btc.usdt', count=120, frequency='1d') # '1d' 是 1 天, '4h' 是 4 小时
# 基础数据定义,只要传入的是序列都可以
CLOSE = df.close.values
OPEN = df.open.values
HIGH = df.high.values
LOW = df.low.values
MA5 = MA(CLOSE, 5) # 获取 5 日均线序列
MA10 = MA(CLOSE, 10) # 获取 10 日均线序列
print('BTC5 日均线', MA5[-1]) # 只取最后一个数
print('BTC10 日均线', RET(MA10)) # RET(MA10) == MA10[-1]
print('今天 5 日线是否上穿 10 日线', RET(CROSS(MA5, MA10)))
print('最近 5 天收盘价全都大于 10 日线吗?', EVERY(CLOSE > MA10, 5))
教程和案例应用
仓库提供了多个教程和案例应用链接,涵盖了通达信公式转 Python、指标公式整合、计算精度验证、在聚宽研究环境中建立库文件、编写 Python 版通达信指标以及 EMA 指数平均公式推导等内容。
部分工具函数
- n 天前的数据:
REF
REF(CLOSE, 1) # 截止到昨天收盘价 序列
- 移动平均线计算:
MA
MA(CLOSE, 5) # 取得收盘价 5 日平均线
- 加权移动平均计算:
EMA
EMA(CLOSE, 5) # 为了精度 , EMA 至少需要 120 周期
文件结构
.gitignore
MyTT.py
MyTT_plus.py
MyTT_python2.py
README.md
example1.py
hb_hq_api.py
img/
boll.png
taq.jpg
.vscode/
settings.json
这些文件和文件夹包含了核心库文件、高级进阶版本文件、Python2 兼容版本文件、示例代码、行情获取代码以及相关图片和配置文件等。