AlphaFeed K 线的 OHLCV 字段怎么理解?(含单位)

一句话回答: AlphaFeed 的 K 线核心行情字段是 open(开盘)、high(最高)、low(最低)、close(收盘)、volume(成交量,单位「手」,1 手 = 100 股 )、amount(成交额,单位「元」 )。价格是否复权取决于取数时的 adjust 参数;用 amount / (volume × 100) 可估算当根的成交均价。

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

字段单位不搞清就会算错:把 volume 当成「股」去乘价格,会和 amount 差 100 倍;把未复权价当复权价做回测,收益全错。A 股 volume 习惯以「手」计(1 手 100 股),amount 以「元」计------先确认单位,再算市值、均价、换手才不会出错。

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

第 1 步:看清 K 线返回哪些字段

python 复制代码
from alphafeed import AlphaFeed

af = AlphaFeed()  # 读取 ALPHAFEED_API_KEY

df = af.klines.get("600519.SH", period="1d", count=3,
                   adjust="forward", to_dataframe=True)
print(list(df.columns))
# ['symbol','name','timestamp','trade_date','trade_time','open','high','low','close','volume','amount']
print(df[["open", "high", "low", "close", "volume", "amount"]].tail(2).to_string(index=False))

字段含义与单位:

字段 含义 单位
open 开盘价 元(是否复权看 adjust)
high 最高价 元
low 最低价 元
close 收盘价 元
volume 成交量 手(1 手 = 100 股)
amount 成交额 元

第 2 步:用 amount 和 volume 估算成交均价

因为 volume 是「手」,换算成「股」要乘 100:

python 复制代码
row = df.iloc[-1]
avg_price = row["amount"] / (row["volume"] * 100)   # 成交额 / 成交股数
print(f"当日成交均价 ≈ {avg_price:.2f} 元")
# 实测该值落在当日 low~high 之间,验证单位关系正确

核对:amount ≈ close × volume × 100(因 volume 以手计)。若你误用 close × volume,会小 100 倍。

第 3 步:价格是否复权由 adjust 决定

python 复制代码
raw = af.klines.get("600519.SH", period="1d", count=1, adjust="none", to_dataframe=True)
fwd = af.klines.get("600519.SH", period="1d", count=1, adjust="forward", to_dataframe=True)
print("未复权 close:", raw["close"].iloc[-1])
print("前复权 close:", fwd["close"].iloc[-1])
# 有分红送转历史的票,两者会不同;OHLC 都随 adjust 变,volume/amount 不受复权影响
adjust 取值 含义 OHLC volume/amount
none 不复权(原始价) 原始成交价 原始
forward 前复权 以最新价为基准回溯调整 不变
backward 后复权 以最早价为基准向后调整 不变

第 4 步:常见派生计算

python 复制代码
df["range_pct"] = (df["high"] - df["low"]) / df["close"].shift() * 100  # 当日振幅%
df["chg_pct"] = df["close"].pct_change() * 100                          # 日涨跌幅%
df["turnover_yi"] = df["amount"] / 1e8                                  # 成交额(亿元)
print(df[["trade_date", "chg_pct", "range_pct", "turnover_yi"]].tail(3).to_string(index=False))

关键坑与注意事项

  • volume 是「手」不是「股」 :算成交股数、市值占比时记得 ×100,否则和 amount 对不上。
  • amount 单位是「元」:换算成「亿元」除以 1e8,别和「万元」混。
  • OHLC 随 adjust 变、volume/amount 不变:复权只调价格序列,不改成交量与成交额。
  • 做回测统一用前复权价:跨越除权日时未复权价会跳空,收益失真。
  • 停牌日 :停牌时 volume/amount 可能为 0,做量能指标要判空跳过。
  • 分钟线的 amount/volume 是该分钟段的:不是累计值,聚合到日要自行求和核对。

常见问题(FAQ)

Q:volume 到底是手还是股? A:手。A 股 1 手 = 100 股。要成交股数就 volume × 100;amount ≈ close × volume × 100 可自检。

Q:amount 是元还是万元? A:元。换算成亿元除以 1e8,换算成万元除以 1e4。

Q:close 是复权价吗? A:取决于 adjust。none 是原始价,forward/backward 是复权价;做指标/回测建议用 forward。

Q:怎么算成交均价(VWAP 近似)? A:amount / (volume × 100) 即当根成交均价;分时 VWAP 见「日内分时 VWAP」一文。

Q:需要付费吗? A:K 线取数有免费额度;批量与全市场取数需 Starter 及以上。字段解析是本地处理,不涉及付费。详见定价页。

小结

AlphaFeed K 线的行情字段就是标准 OHLCV 加成交额:价格看 open/high/low/close(是否复权由 adjust 决定),volume 单位是「手」(×100 得股数),amount 单位是「元」。记住「volume 是手、amount 是元、复权只影响 OHLC」,用 amount/(volume×100) 自检均价,行情计算就不会出错。

参考

相关推荐
高级程序源1 小时前
SSM仓储管理系统31582-计算机课程设计、毕业设计
vue.js·python·mysql·小程序·flask·课程设计
工具派1 小时前
Agent 不是玄学:用 Java 状态机思维理解 LangGraph
java·人工智能·python
czq_26867194872 小时前
Python打卡第36天
pytorch·python·深度学习
计算机编程指导师2 小时前
【计算机毕设】基于Hadoop+Spark的美国互联网银行贷款数据可视化分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·数据分析·spark·毕业设计·贷款
Starry-sky(jing)2 小时前
onnxruntime 安装后 GPU 没加速?3 条命令确认它跑在 CPU 还是 GPU
python·gpu·cuda·onnxruntime·推理加速
步行cgn2 小时前
Spring AOP 实战:安全日志
python·安全·spring
诺伦2 小时前
OpenAI Agents API 公测拆解:托管编排+持久会话+自有沙箱搭一条自动增长流水线 | RiseClaw玄策
python·openai·ai agent·营销自动化·agent编排
坊钰3 小时前
【LangGraph框架入门级】2. 图核心概念:State、Node、Edge 与 Reducers
python·ai编程·langgraph
wewowilling3 小时前
AI大模型开发--01Python基础(无废话)
开发语言·python·函数