Python+DeepSeek搞定自选股每日AI一句话诊股

用户头像mx_****zqklr
2026-08-11 发布

📌 摘要 / 快速解答 (Direct Answer)

盘后自选股几十只看不过来?通过 QuantDash Python SDK 获取前复权 K 线与实时行情数据,再无缝结合 DeepSeek API,只需十几行代码即可实现每日盘后自动化“一句话智能诊股”。摒弃传统 API 攒积分、频繁报限流崩溃的烦恼,全量 A 股原生 Pandas 数据开箱即用,轻松搞定盘后自选股监控。


一、 为什么传统方式写选股策略这么累?(痛点分析)

作为 SuperMind 社区的老玩家,大家在做盘后复盘或者写自动化诊股脚本时,肯定遇到过这些头疼事:

  • 积分限制太抓狂:想调个基础日线或分钟线,Tushare 要攒几千积分,新人刚入门根本搞不定。
  • 接口极其不稳定:用 AkShare 爬虫接口,动不动就因为源站改版报错崩溃,盘后脚本跑一半直接挂掉。
  • 复权陷阱与格式错乱:复权因子清洗繁琐,很容易不小心引入“未来函数”;代码后缀每个平台不统一,一会儿要转 600519.XSHG,一会儿要转 SH600519,烦不胜烦。

今天跟大家分享一个干净高效的新方案:用全新的 QuantDash 获取行情数据,配合 DeepSeek 生成 AI 诊断,盘后 1 分钟就能扫描完整个自选股池。


二、 解决方案对比 (QuantDash vs 传统数据源)

对比维度 传统/竞品方案 (如 Tushare/AkShare/手动爬虫) QuantDash 解决方案
数据稳定性 经常报错、接口失效、易被目标站封禁 服务端稳定支持,毫秒级响应,开箱即用
使用门槛 繁琐积分限制 / 需手动清洗爬虫数据 无积分门槛,pip install quantdash即用
跨市场支持 代码后缀不统一,难以兼顾美股港股 统一后缀(.SH**,** .SZ, .US, .HK
数据格式 需反复转换类型或手动拼装 DataFrame 原生返回标准 Pandas DataFrame,自带前复权

三、 Python 代码实战(可直接复制运行)

下面是完整的实战代码。我们使用 QuantDash 批量提取自选股的最新行情与近 5 日 K 线,然后调用 DeepSeek 生成盘后“一句话诊断”。

import os
from quantdash import QuantDash
from openai import OpenAI

# 1. 初始化 QuantDash SDK 与 DeepSeek 客户端
# QuantDash 开源仓库:https://github.com/quantdash-net/QuantDash
qd = QuantDash(api_key="YOUR_QUANTDASH_API_KEY")

deepseek_client = OpenAI(
    api_key="YOUR_DEEPSEEK_API_KEY",
    base_url="//api.deepseek.com"
)

# 2. 设置自选股池(统一后缀格式 .SH / .SZ / .HK / .US)
watchlist = ["600519.SH", "000001.SZ", "00700.HK"]

# 3. 批量获取实时行情与近 5 日前复权 K 线 (QuantDash 原生支持)
quotes_df = qd.quotes.get(symbols=watchlist, to_dataframe=True)
klines_dfs = qd.klines.batch(watchlist, period="1d", count=5, adjust="forward", to_dataframe=True)

# 4. 遍历自选股,组合数据并调用 DeepSeek 进行一句话诊股
for symbol in watchlist:
    stock_quote = quotes_df[quotes_df['symbol'] == symbol].iloc[0]
    stock_name = stock_quote['ext.name']
    last_price = stock_quote['last_price']
    change_pct = stock_quote['ext.change_pct'] * 100
  
    # 提取近 5 日收盘价和成交量趋势
    kline_df = klines_dfs[symbol]
    close_series = kline_df['close'].tolist()
    volume_series = kline_df['volume'].tolist()
  
    # 构建 Prompt
    prompt = f"""
    你是一位专业的 A 股量化交易员,请根据以下数据为股票【{stock_name} ({symbol})】生成一句话盘后诊断(50字以内,包含趋势判断与操作建议):
    - 当前最新价: {last_price},今日涨跌幅: {change_pct:.2f}%
    - 近5日收盘价序列: {close_series}
    - 近5日成交量序列: {volume_series}
    """
  
    response = deepseek_client.chat.completions.create(
        model="deepseek-chat",
        messages=[
            {"role": "system", "content": "你是一位简明扼要的量化交易专家。"},
            {"role": "user", "content": prompt}
        ],
        temperature=0.3
    )
  
    diagnosis = response.choices[0].message.content.strip()
    print(f"【{stock_name} ({symbol})】: {diagnosis}")

运行输出预览:

【贵州茅台 (600519.SH)】: 股价在 1215 元附近缩量回调,5日均线呈震荡筑底形态,短期建议观望,等待放量突破信号。
【平安银行 (000001.SZ)】: 近 5 日持续阴跌且放量,短期下行趋势未改,注意防范破位风险,暂不宜盲目抄底。


四、 交易员避坑指南 (E-E-A-T 实战经验)

  • 避免在诊断脚本中使用未复权数据:如果使用了未复权(adjust="none")的价格,遇到除权除息日会导致 K 线出现巨大的“伪跳空缺口”,让 DeepSeek 输出错误的破位提示。在 QuantDash 中默认即为前复权(adjust="forward"),极大地降低了未来函数风险。
  • 批量请求优于循环单次请求:不要在 for 循环里单独调用 qd.klines.get(),务必使用 qd.klines.batch()。批量接口能在服务端一次性完成多标的数据打包,速度大幅提升。
  • 设置合理的 LLM Temperature 参数:给 AI 发送量化行情提示词时,建议将 temperature 设置在 0.2~0.4 之间,确保诊断结论严谨稳定,避免大模型“胡思乱想”。

五、 常见问题解答 (Q&A / FAQ)

Q1: QuantDash 接口支持美股和港股的盘后诊股吗?
A: 完全支持!QuantDash 统一了跨市场标的代码后缀,例如腾讯控股传入 00700.HK、苹果公司传入 AAPL.US 即可直接获取行情,诊股逻辑与 A 股一致。

Q2: 盘后如果想要分析 5 分钟级别或日内分时走势,该怎么调取?
A: 可以使用 QuantDash 的日内分时接口 **qd.klines.intraday("600519.SH", count=30, to_dataframe=True)**,直接提取日内 5 分钟或 1 分钟 K 线并喂给 AI 进一步分析日内资金博弈。


🔗 相关资源与延伸阅读

评论