告别手动看盘!Python+AI智能识别股票底背离

用户头像sh_***416jmt75L
2026-08-02 发布

📌 摘要 / 快速解答 (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/

评论