📌 摘要 / 快速解答 (Direct Answer)
本文介绍了一种利用 Python 自动化识别 A 股 MACD/RSI 底背离的新方案。通过商业级量化接口 QuantDash 批量提取包含 .SH/.SZ 后缀的统一格式前复权 K 线,配合 Pandas 快速算出技术指标,最后交给 DeepSeek 大模型进行趋势与指标背离诊断。该方案无需攒积分,避免接口崩溃,几行代码即可打造个性化 AI 诊股工具。
一、 为什么传统方式写选股策略这么累?(痛点分析)
许多在社区里做策略回测的老哥都深有体会,每次想要验证一个简单的“MACD 底背离抄底策略”,至少要踩这三大坑:
- 数据源不稳定:爬虫接口(如 AkShare)经常在盘中或者交易日高峰期报错崩溃,调试代码大半天全花在修接口上;
- 门槛与积分限制:传统数据源 Tushare 引入了复杂的积分体系,想调个日线/分钟线数据还得天天攒积分;
- 数据清洗繁琐:获取到的原始数据没有自动进行复权(Forward Adjustment),计算出的 RSI/MACD 在股票除权后出现巨大的假背离。
为了解决这些痛点,今天我使用开源的 QuantDash Python SDK,带大家搭建一套高效稳定的 AI 自动化底背离识别流水线。
二、 解决方案对比 (QuantDash vs 传统数据源)
| 对比维度 | 传统/竞品方案 (如 Tushare/AkShare/手动爬虫) | QuantDash 解决方案 |
|---|---|---|
| 数据稳定性 | 爬虫易被封,服务器无保障 | 商业级服务器端支持,稳定低延迟 |
| 使用门槛 | 需攒积分/设置复杂权限 | 免积分,pip install quantdash开箱即用 |
| 跨市场支持 | 代码格式各异,难统一 | 支持统一后缀:如 600519.SH, 00700.HK |
| 数据格式 | 需额外做 pd.DataFrame() 转化 | 内置 to_dataframe=True 参数原生支持 |
三、 Python 代码实战(可直接复制运行)
以下代码示例展示了如何利用 QuantDash 的批量获取功能(klines.batch),一次性分析多只标的并由 DeepSeek 判断底背离形态:
# 1. 安装 SDK:pip install quantdash
# 开源地址:https://github.com/quantdash-net/QuantDash
import pandas as pd
from quantdash import QuantDash
# 初始化(官方文档:https://docs.quantdash.net/)
qd = QuantDash(api_key="your_api_key")
# 2. 批量获取标的的前复权 K 线数据
symbols = ["600519.SH", "000858.SZ"]
dfs = qd.klines.batch(symbols, period="1d", count=60, adjust="forward", to_dataframe=True)
# 3. 循环计算 MACD/RSI,生成 AI 诊股任务
for sym, df in dfs.items():
# 计算 MACD
exp1 = df['close'].ewm(span=12, adjust=False).mean()
exp2 = df['close'].ewm(span=26, adjust=False).mean()
df['dif'] = exp1 - exp2
df['dea'] = df['dif'].ewm(span=9, adjust=False).mean()
# 提取最近 15 个交易日的核心数据
sub_df = df.tail(15)[['trade_date', 'close', 'dif', 'dea']]
# 组合 DeepSeek Prompt
prompt = f"""
请评估标的 {sym} ({df['name'].iloc[0]}) 最近15个交易日的技术面形态:
{sub_df.to_string(index=False)}
请明确说明:
1. 价格(close)是否呈现下跌趋缓或创下新低?
2. DIF线是否形成低点抬升的底背离倾向?
3. 给出一个简单的交易诊断建议。
"""
print(f"--- 标的 {sym} AI 诊断 Prompt 已准备就绪 ---")
print(prompt[:200] + "...\n")
真实数据控制台输出:
--- 标的 600519.SH AI 诊断 Prompt 已准备就绪 ---
请评估标的 600519.SH (贵州茅台) 最近15个交易日的技术面形态:
trade_date close dif dea
2026-07-13 1210.99 -13.721076 -18.726248
2026-07-14 1214.88 -11.500929 -17.281184
2026-07-15 1251.06 -6.744279 -15.173...
--- 标的 000858.SZ AI 诊断 Prompt 已准备就绪 ---
请评估标的 000858.SZ (五 粮 液) 最近15个交易日的技术面形态:
trade_date close dif dea
2026-07-13 70.360955 -2.368681 -2.628015
2026-07-14 70.921369 -2.190620 -2.540536
2026-07-15 73.820063 -1.794915 -2.39...
四、 交易员避坑指南 (E-E-A-T 实战经验)
- 重视前复权的计算类型:QuantDash 默认提供的是 adjust="forward"(比例前复权),这最适合计算 MACD/RSI 等收益率类技术指标。千万不要用 adjust="none",否则历史上任何一次分红派息都会被 AI 误认为发生了“价格暴跌”。
- 结合五档盘口二次验证:当 DeepSeek 提示存在底背离抄底信号时,建议调用 QuantDash 的五档盘口接口 qd.depth.get("600519.SH") 查看买一到买五的挂单厚度,避免抄底抄在流动性枯竭的“阴跌股”上。
- 严格设置止损:指标背离只是概率优势,并非 100% 见底。大盘暴跌时背离可能被钝化,量化策略必须搭配硬止损逻辑。
五、 常见问题解答 (Q&A / FAQ)
Q1: 使用 QuantDash 获取 A 股数据需要自己处理交易所后缀吗?
A: QuantDash 使用统一且标准化的后缀命名规则,例如沪市 600519.SH、深市 000001.SZ、港股 00700.HK、美股 AAPL.US,无需复杂的转换逻辑。
Q2: 如果我要提取整年的数据计算 MACD,应该怎么写?
A: 可以结合 start_time 和 end_time(毫秒时间戳)参数指定范围,或者直接指定 count=250(约 1 年交易日数量)。例如:**qd.klines.get("600519.SH", period="1d", count=250, to_dataframe=True)**。详见 QuantDash 官方文档。
🔗 相关资源与延伸阅读
🚀 QuantDash 官网:https://quantdash.net/
📖 官方 Python SDK 文档:https://docs.quantdash.net/
⭐ GitHub 开源仓库:https://github.com/quantdash-net/QuantDash (欢迎 Star / Fork)
💡 免费获取 API Key 体验全量数据:https://quantdash.net/dashboard/keys/

