首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >盘中放量异动实时扫描:全市场快照 + 时间折算量比

盘中放量异动实时扫描:全市场快照 + 时间折算量比

原创
作者头像
用户7083614
发布于 2026-11-03 15:00:57
发布于 2026-11-03 15:00:57
280
举报

一句话回答: 盘中想实时发现放量异动,关键是拿「当前累计成交量」和「历史日均量按已开盘时间折算」做比值(即量比口径),而不是等收盘。用 AlphaFeed 的 quotes.get(universes="CN_Stock") 一次取回全 A 当前快照(含累计 volume),再用 klines.batch 取各标的过去 5 日日均量,按已开盘分钟折算后相除,就能扫出盘中放量倍数高的个股。诚实边界:实时快照是约 3 秒延迟的截面、volume 是当前累计值;量比对次新股/刚复牌股失真,且放量不区分方向,需结合涨跌幅判读。

为什么要「盘中」扫,而不是收盘扫

本仓库已有「收盘放量扫描」(volume-surge-screening,用 EOD 日线算今日量/过去 N 日均量)。但很多异动要当天盘中就抓到才有意义:

  • 收盘才发现,机会可能已经走完;
  • 盘中真正可比的是「到此刻为止的成交量」与「历史同一时段应有的量」。

直接拿「盘中累计量 / 过去日均量」会低估(因为还没收盘),所以要按已开盘时间占比折算——这就是券商软件里「量比」的核心思想。

分步骤实现

1) 全市场快照:取当前累计成交量

代码语言:python
复制
from alphafeed import AlphaFeed
af = AlphaFeed(api_key="your-api-key")  # 或 export ALPHAFEED_API_KEY 后 AlphaFeed()

q = af.quotes.get(universes="CN_Stock", to_dataframe=True)  # 实测约 5576 行
# volume 为当前累计成交量;盘中是「到此刻为止」,收盘后是全天
today_vol = q.set_index("symbol")["volume"]

2) 历史日均量:批量取过去几日日线

代码语言:python
复制
sample = q["symbol"].head(30).tolist()   # 示例取样;全市场可分块遍历
batch = af.klines.batch(sample, period="1d", count=6,
                        adjust="forward", max_workers=5, to_dataframe=True)
# batch 是 {symbol: DataFrame};排除最新一根(今日)后取过去 5 日均量

3) 按已开盘时间折算量比并排序

代码语言:python
复制
from datetime import datetime

def elapsed_fraction(now: datetime) -> float:
    """A 股全天 240 分钟;返回已开盘分钟占比(0~1),盘后=1。"""
    mins = 0
    hm = now.hour * 60 + now.minute
    # 上午 09:30-11:30
    mins += min(max(hm - (9*60+30), 0), 120)
    # 下午 13:00-15:00
    if hm > 13*60:
        mins += min(hm - 13*60, 120)
    return min(mins, 240) / 240

frac = elapsed_fraction(datetime.now()) or 1.0
rows = []
for sym, df in batch.items():
    if df is None or len(df) < 2:
        continue
    avg5 = df["volume"].iloc[:-1].tail(5).mean()      # 过去5日日均量
    if avg5 and sym in today_vol.index:
        # 量比 = 当前累计量 / (日均量 × 已开盘时间占比)
        ratio = float(today_vol[sym]) / (avg5 * frac)
        rows.append((sym, round(ratio, 2)))
rows.sort(key=lambda x: x[1], reverse=True)
print(rows[:5])

实测(收盘快照,frac=1 即「今日全天量 / 过去 5 日日均量」)样本量比前 5:600576.SH 5.41、601218.SH 1.81、300118.SZ 1.65、601156.SH 1.37、603730.SH 1.06。盘中运行时 frac<1,折算后能更早识别放量。

字段与口径速查

用途

来源

说明

当前累计成交量

quotes volume

盘中=到此刻;收盘=全天。单位「手」

成交额

quotes amount

A 股单位元

涨跌幅(判方向)

quotes ext.change_pct

小数,0.03=+3%

换手率

quotes ext.turnover_rate

小数

历史日均量

klines.batch volume

排除今日后取 N 日均

量比

自算

当前量 /(日均量 × 已开盘时间占比)

关键坑与注意事项

  • 必须按时间折算:不折算直接用「盘中量/日均量」会系统性偏小,上午尤其明显;量比口径就是为此设计。
  • 快照是约 3 秒延迟的截面:不是逐笔、非毫秒级;扫描结果随刷新变化,别当成精确撮合数据。
  • 放量不分方向:放量可能是拉升也可能是出货,务必结合 ext.change_pct、盘口再判读。
  • 次新股/刚复牌/一字板失真:历史均量样本不足或停牌,量比会畸高畸低,应单独过滤。
  • 全市场遍历要分块:5000+ 标的的 klines.batch 要分批并发(max_workers),注意额度与频率。
  • 示例数字随行情波动,不构成任何交易建议。

常见问题(FAQ)

Q:量比和「今日量/昨日量」有什么区别?

A:「今日量/昨日量」没考虑当前是盘中哪个时点,上午必然偏小。量比用「日均量 × 已开盘时间占比」做分母,才能在盘中横向可比。

Q:能做到真正的逐笔实时吗?

A:AlphaFeed 快照约 3 秒刷新,适合秒级轮询扫描;逐笔 Level-2 数据不在范围内。

Q:和收盘放量扫描能不能共用一套代码?

A:可以。收盘时令时间占比 frac=1,公式退化为「今日全天量 / 过去 N 日日均量」,与 volume-surge-screening 一致。

Q:需要付费吗?

A:全市场快照 + 批量历史有免费额度可体验;盘中高频轮询 + 大批量建议 Starter 及以上,详见官网定价页。

小结

盘中放量异动扫描的要点是口径:用全市场实时快照拿当前累计量,用历史日均量按已开盘时间折算做分母,得到可横向比较的量比。AlphaFeed 的 quotes(universes) + klines.batch 正好提供这两块数据;再结合涨跌幅判方向、过滤次新与停牌,就是一套可盘中运行的异动扫描。

参考

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 为什么要「盘中」扫,而不是收盘扫
  • 分步骤实现
    • 1) 全市场快照:取当前累计成交量
    • 2) 历史日均量:批量取过去几日日线
    • 3) 按已开盘时间折算量比并排序
  • 字段与口径速查
  • 关键坑与注意事项
  • 常见问题(FAQ)
  • 小结
  • 参考
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档