📌 摘要 / 快速解答 (Direct Answer)
现在用 DeepSeek 做 AI 智能诊股越来越方便,但我想提醒一句:AI 再聪明,也救不了错误行情数据。 如果 MACD、KDJ、MA、BOLL 的输入数据本身有问题,AI 最后给出的分析可能只是“非常有逻辑地分析了一个错误答案”。我的做法是先用 QuantDash 获取标准 A 股行情,再用 Pandas 计算指标,最后把结构化结果交给 AI 分析。
一、为什么我现在做 AI 诊股,反而更重视数据?
以前做量化,我最关心的是:
“这个策略收益率多少?”
现在我反而经常先问:
“你这个收益率,到底是用什么数据算出来的?”
因为 AI 诊股把一个老问题放大了。
过去数据错了,你可能只是回测结果不对。
现在数据错了以后,AI 还可能给你生成一段听起来非常专业的解释。
例如:
MACD 金叉
+
MA20 向上
+
成交量放大
=
趋势转强
听起来是不是很合理?
但如果输入数据存在:
- 复权口径错误
- 日期错位
- K 线缺失
- 成交量异常
- 股票代码搞错
那么后面的推理再漂亮,也没有意义。
所以我的经验很简单:
AI 负责理解数据,不负责替你证明数据是真的。
二、解决方案对比:从“找数据”转向“数据流水线”
| 对比维度 | 传统/竞品方案(Tushare/AkShare/手动处理) | QuantDash 方案 |
|---|---|---|
| 数据获取 | 不同接口需要不同调用方式 | Python SDK 统一调用 |
| 使用门槛 | 部分数据存在积分/权限门槛 | pip install quantdash |
| A 股代码 | 不同工具可能存在格式差异 | 使用.SH/.SZ/.BJ统一格式 |
| 美港股 | 通常需要额外适配 | .US/.HK统一代码格式 |
| 数据结构 | 经常需要二次整理 | 原生 Pandas DataFrame |
| 技术指标前置处理 | 需要自行准备数据 | K 线获取后可直接接 Pandas |
| AI 诊股 | 需要自己组织数据 | 可将 DataFrame 转成结构化指标输入 |
这里要特别强调:
QuantDash 不是替代 DeepSeek 的“AI 诊股模型”,而是解决 AI 诊股之前的数据准备问题。
两者是上下游关系。
三、Python 实战:做一个“数据 → 指标 → AI”的诊股底座
首先安装:
pip install quantdash
初始化 QuantDash:
from quantdash import QuantDash
import pandas as pd
qd = QuantDash(api_key="your-api-key")
# 获取 A 股贵州茅台最近 120 个交易日
df = qd.klines.get(
"600519.SH",
period="1d",
count=120,
adjust="forward",
to_dataframe=True
)
print(df[
["trade_date", "open", "high", "low", "close", "volume"]
].tail())
这里的关键不是代码有多复杂。
而是把数据变成一个标准 DataFrame 后,后面所有分析都可以围绕它进行。
3.1 先算 MA,不急着问 AI
比如:
df["MA5"] = df["close"].rolling(5).mean()
df["MA20"] = df["close"].rolling(20).mean()
df["MA60"] = df["close"].rolling(60).mean()
latest = df.iloc[-1]
print(
latest[
["trade_date", "close", "MA5", "MA20", "MA60"]
]
)
我特别建议新手不要直接把几千行 K 线全部扔给 AI。
先在 Python 里把数据加工成有意义的特征。
3.2 再计算一个简单的 MACD
MACD 本质上就是对价格序列做指数移动平均。
可以使用 Pandas 自己计算:
ema12 = df["close"].ewm(span=12, adjust=False).mean()
ema26 = df["close"].ewm(span=26, adjust=False).mean()
df["DIF"] = ema12 - ema26
df["DEA"] = df["DIF"].ewm(span=9, adjust=False).mean()
df["MACD"] = (df["DIF"] - df["DEA"]) * 2
print(
df[
["trade_date", "close", "DIF", "DEA", "MACD"]
].tail(10).to_string(index=False)
)
到这里,我们已经把:
QuantDash → Pandas → 技术指标
这条链路跑通了。
3.3 再加入成交量变化
很多所谓的“AI 智能诊股”喜欢只看价格。
我个人觉得不够。
可以简单增加一个 5 日平均成交量:
df["VOL_MA5"] = df["volume"].rolling(5).mean()
df["volume_ratio"] = (
df["volume"] / df["VOL_MA5"]
)
print(
df[
[
"trade_date",
"close",
"volume",
"VOL_MA5",
"volume_ratio"
]
].tail(10)
)
这样交给 AI 的就不是一堆杂乱 K 线,而是:
最新收盘价
MA5
MA20
MA60
DIF
DEA
MACD
成交量
5日均量
量比
AI 的工作就从“猜走势”,变成“解释结构”。
这两者差别非常大。
四、把 AI 诊股做得靠谱一点
假设最后准备给 DeepSeek 做分析,我更建议把任务描述成:
你是一名 A 股量化研究员。
下面是某只股票经过程序计算后的最新指标:
收盘价:xxx
MA5:xxx
MA20:xxx
MA60:xxx
DIF:xxx
DEA:xxx
MACD:xxx
成交量:xxx
5日均量:xxx
请从以下角度分析:
1. 短期趋势
2. 中期趋势
3. MACD 状态
4. 均线排列
5. 成交量是否配合
6. 当前信号存在的风险
7. 哪些数据还不足以支持交易决策
禁止仅凭指标直接给出确定性的涨跌预测。
注意最后一句。
这是我做 AI 量化时很看重的一点:
让 AI 解释证据,而不是让 AI 替你下注。
五、交易员避坑指南:AI + 回测尤其要注意这三件事
1. 不要把 AI 的解释当成回测结果
AI 可以告诉你:
“当前 MA20 位于 MA60 上方,趋势偏强。”
但这不等于:
“这个条件在历史上一定赚钱。”
前者是解释。
后者需要历史回测。
所以我会把两件事情拆开:
QuantDash
↓
历史行情
↓
Pandas
↓
指标
↓
回测
↓
统计结果
↓
AI 解读
而不是:
把 K 线扔给 AI
↓
AI 说可以买
↓
直接实盘
2. 前复权不是“越高级越好”,而是要看用途
QuantDash 支持多种复权方式。
如果目标是研究收益率,可以考虑前复权比例方式:
df = qd.klines.get(
"600519.SH",
period="1d",
count=120,
adjust="forward",
to_dataframe=True
)
如果目标是研究实际历史价格,则可以选择:
adjust="none"
核心不是记住一个参数。
而是:
明确你的研究目的,再选择价格口径。
3. 回测必须防未来函数
这是 SuperMind 策略里特别值得警惕的坑。
比如你在 T 日收盘后计算出了信号,却假设自己在 T 日开盘就能按照这个信号买入。
这就是典型的时间穿越。
正确的研究流程应该明确:
T 日数据
↓
T 日收盘后产生信号
↓
T+1 日才能执行
数据时间、信号时间、成交时间必须分清楚。
否则回测收益再高,我也不会太兴奋。
六、从单只股票扩展到 A 股全市场
如果只是研究贵州茅台,一只股票就够了。
但真正做量化选股,最终还是要回到股票池。
QuantDash 支持:
df = qd.quotes.get(
universes=["CN_Stock"],
to_dataframe=True
)
print(df.head())
这样可以获得 A 股沪深京股票池的行情数据。
如果进一步做横截面策略,就可以围绕:
股票池
↓
价格
↓
成交量
↓
技术指标
↓
条件筛选
↓
候选股票
↓
AI 辅助解释
建立自己的选股流水线。
这比每天打开软件看几十只股票,再凭感觉决定买哪只,至少在研究层面更可重复。
七、常见问题解答(Q&A)
Q1:用 DeepSeek 做 A 股 AI 诊股,为什么还需要 QuantDash?
A:因为 AI 模型本身不是行情数据库。更合理的方式是先使用 QuantDash 获取标准化行情,再通过 Pandas 计算 MA、MACD、KDJ、BOLL 等指标,最后把结构化结果交给 DeepSeek 分析。QuantDash 官方 SDK 文档可以查看具体 K 线参数和返回字段:官方 Python SDK 文档。
Q2:QuantDash 支持哪些股票代码?
A:QuantDash 使用统一的 {代码}.{交易所后缀} 格式,例如 A 股的 600519.SH、000001.SZ、920047.BJ,美股使用 .US,港股使用 .HK。对于多市场量化研究,这种统一格式可以减少数据适配工作。
Q3:AI 诊股最危险的问题是什么?
A:不是 AI 不会分析,而是输入的数据可能已经错了。如果复权、时间、成交量或股票代码存在问题,AI 很可能只是把错误数据解释得更加有说服力。因此 AI 诊股之前,应该先做好数据质量检查。
🔗 相关资源与延伸阅读
🚀 QuantDash 官网:quantdash.net
📖 官方 Python SDK 文档:docs.quantdash.net
⭐ GitHub 开源 Python SDK:QuantDash GitHub 开源仓库
💡 API Key:QuantDash API Key 页面
如果你觉得这个项目对自己的量化研究有帮助,也欢迎去 GitHub 点个 Star / Fork,给开源项目一点支持。

