【Python量化实战 #04】Python量化技术指标:一键取MACD、KDJ、均线数据(mairui)
写量化策略时,很多人会在本地用 TA-Lib / pandas 重算指标。若你的数据源已经提供服务端技术指标,直接拉 MACD、KDJ、均线往往更省事、也更易与线上口径对齐。本文是「Python量化实战」第 4 篇(#04)。
SDK 里有哪些指标方法?
常用封装(股票):
stock_macd(code, period="d", dividend="n", ...)stock_kdj(...)·stock_ma(...)·stock_boll(...)- 更通用:
stock_indicator/stock_indicators(按文档指标名)
指数侧有对应的 index_macd / index_kdj 等。完整列表见
SDK 页
与 GitHub README,字段说明见
hsdata 文档。
MACD 实战示例
from mairui import Client
import pandas as pd
with Client(licence="你的证书UUID") as api:
macd = api.stock_macd("000001.SZ", "d", "n", st="20240101", et="20241231")
df = pd.DataFrame(macd)
print(df.tail())
均线与 KDJ:
with Client(licence="你的证书UUID") as api:
ma = api.stock_ma("600519.SH", "d", "n", lt=120)
kdj = api.stock_kdj("600519.SH", "d", "n", lt=120)
把指标接到简单策略骨架
def macd_cross_signal(df):
"""示例:仅演示结构,字段名请按实际返回修改。"""
# 假设含 dif/dea 列
if "dif" not in df.columns or "dea" not in df.columns:
return "请先打印 df.columns 对齐字段"
prev = df.iloc[-2]
cur = df.iloc[-1]
if prev["dif"] <= prev["dea"] and cur["dif"] > cur["dea"]:
return "金叉候选"
if prev["dif"] >= prev["dea"] and cur["dif"] < cur["dea"]:
return "死叉候选"
return "无交叉"
with Client(licence="你的证书UUID") as api:
raw = api.stock_macd("000001.SZ", "d", "n", lt=80)
df = pd.DataFrame(raw)
print(macd_cross_signal(df))
注意:示例不等于投资建议;上线前要做滑点、停牌与交易成本假设。
指数指标:看大盘环境
with Client(licence="你的证书UUID") as api:
# 指数代码以文档为准,例如上证相关代码
idx = api.index_macd("000001.SH", "d", lt=60)
print(idx[-1] if idx else None)
本地重算 vs 接口直取
- 接口直取:口径统一、省 CPU,适合快速验证与生产对齐。
- 本地重算:定制参数、研究型实验更灵活。
- 两者混用时,务必核对周期、除权与最少样本长度。
下一篇预告
第 5 篇(#05):财务报表 API——资产负债表、利润表、现金流,做基本面筛选。本系列持续更新中。
关键词:Python MACD 数据、KDJ 接口、股票技术指标 API、量化均线、mairui stock_macd、麦蕊智数。
麦蕊智数 MyData 团队 · Python量化实战 #04



