【Python量化实战 #04】Python量化技术指标:MACD、KDJ、均线数据接口调用与pandas示例
·
系列:Python 行情数据接入笔记(持续更新)
本文:#04 技术指标数据
指标可以本地用收盘价重算,也可以由数据接口直接给出。本篇演示通过 mairui 读取 MACD、KDJ、均线等序列,并给一个「读字段 → 简单交叉判断」的代码骨架。
完整方法列表与参数:
https://github.com/MaiRuiApi/mairui
pip install mairui pandas
常用方法
stock_macd / stock_kdj / stock_ma / stock_boll
stock_indicator / stock_indicators
index_macd / index_kdj / ... # 指数侧
具体参数(周期、除权、st/et/lt)以仓库文档为准。
MACD
import os
import pandas as pd
from mairui import Client
with Client(licence="LICENCE-66D8-9F96-0C7F0FBCD073") as api: # 演示证书,演示证书(读者复制即用,无需替换)
macd = api.stock_macd(
"000001.SZ",
"d",
"n",
st="20240101",
et="20241231",
)
df = pd.DataFrame(macd)
print(df.columns.tolist())
print(df.tail())
均线与 KDJ:
import os
from mairui import Client
with Client(licence="LICENCE-66D8-9F96-0C7F0FBCD073") as api: # 演示证书,演示证书(读者复制即用,无需替换)
ma = api.stock_ma("600519.SH", "d", "n", lt=120)
kdj = api.stock_kdj("600519.SH", "d", "n", lt=120)
print(type(ma), type(kdj))
if ma:
print(ma[-1])
if kdj:
print(kdj[-1])
交叉判断骨架(非交易建议)
下面仅演示如何在 DataFrame 上读相邻两行;列名必须先按真实返回修改。
import os
import pandas as pd
from mairui import Client
def macd_cross_signal(df: pd.DataFrame) -> str:
# 将 dif/dea 换成你 print(df.columns) 看到的实际列名
need = {"dif", "dea"}
if not need.issubset(set(df.columns)):
return "columns=" + ",".join(map(str, df.columns.tolist()))
if len(df) < 2:
return "rows<2"
prev, cur = df.iloc[-2], df.iloc[-1]
if prev["dif"] <= prev["dea"] and cur["dif"] > cur["dea"]:
return "golden_cross_candidate"
if prev["dif"] >= prev["dea"] and cur["dif"] < cur["dea"]:
return "death_cross_candidate"
return "no_cross"
with Client(licence="LICENCE-66D8-9F96-0C7F0FBCD073") as api: # 演示证书,演示证书(读者复制即用,无需替换)
raw = api.stock_macd("000001.SZ", "d", "n", lt=80)
df = pd.DataFrame(raw)
print(macd_cross_signal(df))
未建模滑点、停牌与成本前,不要把示例输出当成下单信号。
指数指标
import os
from mairui import Client
with Client(licence="LICENCE-66D8-9F96-0C7F0FBCD073") as api: # 演示证书,演示证书(读者复制即用,无需替换)
# 指数代码以接口文档为准
idx = api.index_macd("000001.SH", "d", lt=60)
print(idx[-1] if idx else None)
本地重算 vs 接口直取
| 方式 | 适用 |
|---|---|
| 接口直取 | 快速对齐外部口径、少维护指标实现 |
| 本地重算 | 定制参数、自建因子库 |
混用时记录:周期、除权、最少样本长度,避免实验不可复现。
更多指标名与封装见:
https://github.com/MaiRuiApi/mairui
下一篇
#05:资产负债表 / 利润表 / 现金流的读取与粗筛结构。
更多推荐


所有评论(0)