一句话回答: 放量选股就是"找出今日成交量明显高于近期均量的股票"。用 AlphaFeed 取全市场标的池 + klines.batch 批量日线,计算「今日成交量 ÷ 过去 N 日均量」这个放量倍数,筛出倍数≥阈值(如 2 倍)的个股,几十行就能扫出全市场放量异动股。
"放量"往往是资金异动、题材启动或出货的信号,做量化选股常需先扫出放量股。难点在于:
AlphaFeed 用 universe + klines.batch 一次拿到全市场量价数据。
def volume_ratio(volume, n=20):
# 今日成交量 ÷ 过去 n 日均量(不含今日),衡量放量程度
avg = volume.iloc[-(n + 1):-1].mean()
today = float(volume.iloc[-1])
return today / avg if avg else float("nan")放量选股参数:
参数 | 含义 | 常用取值 |
|---|---|---|
| 均量回看天数 | 20(约一个月) |
放量阈值 | 今日量 ≥ k 倍均量 | 2.0(温和 1.5、剧烈 3.0) |
是否含当日 | 均量是否含今天 | 不含(避免稀释) |
from alphafeed import AlphaFeed
import pandas as pd
af = AlphaFeed(api_key="your-api-key") # 或 export ALPHAFEED_API_KEY 后 AlphaFeed()
def volume_surge_screen(symbols, count=30, n=20, k=2.0):
bt = af.klines.batch(symbols, period="1d", count=count,
adjust="forward", to_dataframe=True)
rows = []
for sym, df in bt.items():
if df is None or len(df) < n + 1:
continue
d = df.sort_values("trade_date").reset_index(drop=True)
ratio = volume_ratio(d["volume"], n)
chg = (d["close"].iloc[-1] / d["close"].iloc[-2] - 1) * 100
rows.append({"symbol": sym, "vol_ratio": round(ratio, 2),
"chg_pct": round(float(chg), 2), "surge": ratio >= k})
res = pd.DataFrame(rows)
return res[res["surge"]].sort_values("vol_ratio", ascending=False) if not res.empty else resdef run_full_market(k=2.0):
q = af.quotes.get(universes="CN_Stock", to_dataframe=True)
symbols = q["symbol"].tolist()
out = []
for i in range(0, len(symbols), 150): # 分批防限频
out.append(volume_surge_screen(symbols[i:i + 150], k=k))
return pd.concat([d for d in out if not d.empty], ignore_index=True)
# hits = run_full_market(k=2.0)
# print("全市场放量(>=2x)只数:", len(hits)); print(hits.head(20))同时看放量倍数与当日涨跌幅(chg_pct)很重要:放量上涨多为资金进场/题材启动,放量下跌则可能是出货/恐慌,方向完全不同。
iloc[-(n+1):-1] 排除今天,否则今日大成交量会把基准抬高、低估放量倍数。len<n+1 跳过,复牌首日仍需人工甄别。Q:这和行情软件的"量比"是一回事吗?
A:不完全。经典量比是"当前每分钟均量 ÷ 过去 5 日每分钟均量",是盘中概念。本文用的是"今日全天量 ÷ 过去 N 日均量"的日线口径,更适合收盘后批量选股。两者思想一致、口径不同。
Q:阈值 k 取多少合适?
A:2 倍是常用起点,温和用 1.5、剧烈异动用 3 以上。建议按你的标的池和策略回测校准,别在历史上过拟合。
Q:为什么小样本跑出来没有放量股?
A:放量是相对少数事件,小样本(几只票)可能一只都没有,属正常。全市场几千只票跑才有意义。
Q:需要付费吗?
A:少量标的的 K 线在免费额度内即可试;全市场 universe 取数需 Starter 及以上,详见 AlphaFeed 定价页。
放量选股 = 全市场标的池 + 批量日线 + 今日量/过去 N 日均量的放量倍数。真正的门槛是取数与基准口径(排除当日、用比值),AlphaFeed 用 universe + klines.batch 收敛掉,你几十行就能扫出全市场放量异动股——但请记住放量不辨方向,必须结合涨跌与止损,别盲目追高。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。