AlphaFeed Blog

把行情 DataFrame 喂给 ChatGPT/Claude 分析:prompt 工作流(含代码)

AI 工作流 · 代码验证于 2026-10-26

把行情 DataFrame 喂给 ChatGPT/Claude 分析:prompt 工作流

一句话回答: 别把几百行原始 K 线整段贴给大模型——正确做法是:用 AlphaFeed 取前复权日线成 DataFrame,先在本地算好指标/统计(或只截最近 N 行),再用 to_csv() 压成紧凑文本放进结构化 prompt,并要求模型”只基于给定数据、给出可核对的数字与依据”。这样既省 token、又能显著降低幻觉。LLM 擅长”解读与归纳”,不擅长”精确计算”,所以数值一律本地算、让模型解释。

为什么会有这个问题 / 传统做法的痛点

直接把原始行情丢给 ChatGPT/Claude 常见三个坑:

  1. 太长:几百行 OHLCV 挤爆上下文、烧 token;
  2. 算错:让模型”心算”涨跌幅/均线/夏普,结果经常不准(LLM 不是计算器);
  3. 幻觉:模型会脑补数据里没有的”利好消息""主力动向”。

解决思路就一句:本地取数+算数,模型只做解读。

分步骤解决(每步配可运行代码)

第 1 步:取前复权日线并在本地算好要点

from alphafeed import AlphaFeed

af = AlphaFeed(api_key="your-api-key")  # 或 export ALPHAFEED_API_KEY 后 AlphaFeed()
df = af.klines.get("600519.SH", period="1d", count=120,
                   adjust="forward", to_dataframe=True).sort_values("trade_date")

# 本地算好指标/统计,别让 LLM 算
df["ret"] = df["close"].pct_change()
summary = {
    "标的": "600519.SH",
    "区间": f'{df["trade_date"].iloc[0]} ~ {df["trade_date"].iloc[-1]}',
    "期末收盘": round(float(df["close"].iloc[-1]), 2),
    "区间涨跌幅%": round(float(df["close"].iloc[-1]/df["close"].iloc[0]-1)*100, 2),
    "年化波动%": round(float(df["ret"].std()*(252**0.5))*100, 2),
    "MA20": round(float(df["close"].rolling(20).mean().iloc[-1]), 2),
}

第 2 步:把数据压成紧凑文本(省 token)

cols = ["trade_date", "open", "high", "low", "close", "volume"]
recent_csv = df[cols].tail(20).to_csv(index=False)   # 只给最近 20 行
# 大区间可改为给“本地算好的 summary + 少量采样行”,而不是全量

第 3 步:结构化 prompt(强约束、防幻觉)

prompt = f"""你是严谨的行情分析助手。只根据下面给定的数据回答,不得引入外部信息或假设消息面。
已知统计(本地已算好,直接引用,勿自行重算):
{summary}

最近 20 个交易日 K 线(CSV):
{recent_csv}

请输出:
1) 趋势与波动的客观描述(引用上面数字);
2) 价格与 MA20 的关系;
3) 明确指出数据未包含的内容(如基本面/消息面)不做推断。
用中文,结论后附所依据的数字。"""
# 再把 prompt 交给 ChatGPT/Claude 的 API 或网页即可

关键参数/字段对照

做法说明原因
adjust="forward"前复权日线除权跳空会误导模型判断趋势
本地算指标涨跌幅/波动/均线自己算LLM 精确计算不可靠
to_csv() 截取只给最近 N 行或采样省 token、聚焦
约束 prompt“只基于给定数据”抑制幻觉/脑补消息面
要求附数字结论引用具体数值便于人工核对

关键坑与注意事项

常见问题(FAQ)

Q:能直接把 1000 行 K 线贴给 ChatGPT 吗? A:不建议。又贵又容易算错。给”本地算好的统计 + 最近少量行”效果更好更省。

Q:让模型算夏普/最大回撤可靠吗? A:不可靠。这类数值用 pandas/numpy 本地算,模型只负责解释含义与给出叙述。

Q:怎么减少模型瞎编消息面? A:prompt 明确”只基于给定数据、禁止引入外部信息”,并要求结论附所依据的数字,便于核对。

Q:要付费吗? A:AlphaFeed 免费额度即可取历史日线做这套工作流;批量多标的或全市场再看 Starter 及以上,详见官网定价页。

小结

让 AI 分析行情的正确姿势是”本地取数+算数,模型解读”:AlphaFeed 负责可靠的前复权数据,pandas 负责精确计算,结构化 prompt 负责约束模型只解释、不编造。省 token、少幻觉、结论可核对。

相关链接:


免责声明:本文仅为技术与数据接口使用示例,代码与策略仅供学习研究,不构成投资建议。市场有风险,历史数据不代表未来表现。