一句话回答: 乖离率 BIAS 衡量股价偏离均线的百分比,公式是 BIAS = (收盘 − MA) / MA × 100。用 AlphaFeed 取全市场标的池 + klines.batch 批量日线,算每只票的 BIAS 并筛出负乖离过大(如 ≤ −8%)的超跌候选,几十行就能扫出全市场短期超跌股——关键是乖离率没有放之四海皆准的阈值。
乖离率是判断"股价短期偏离均线多远"的经典指标,常用于捕捉超跌反弹或超买回调。做成选股要解决:
AlphaFeed 用 universe + klines.batch 一次拿到全市场量价数据。
def bias(close, n=6):
ma = close.rolling(n).mean()
return (close - ma) / ma * 100 # 正=股价在均线上方,负=下方乖离率参数:
参数 | 含义 | 常用取值 |
|---|---|---|
| 均线周期 | 6(短期)、12、24 |
负乖离阈值 | 超跌参考 | ≤ −8%(短线)/ 视标的而定 |
正乖离阈值 | 超买参考 | ≥ +8% |
复权 | 用前复权收盘 |
|
from alphafeed import AlphaFeed
import pandas as pd
af = AlphaFeed(api_key="your-api-key") # 或 export ALPHAFEED_API_KEY 后 AlphaFeed()
def bias_screen(symbols, count=60, n=6, thr=-8.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)
b = float(bias(d["close"], n).iloc[-1])
rows.append({"symbol": sym, "bias_%": round(b, 2), "oversold": b <= thr})
res = pd.DataFrame(rows).sort_values("bias_%") # 升序=负乖离最大在前
return res[res["oversold"]] if not res.empty else resdef run_full_market(n=6, thr=-8.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(bias_screen(symbols[i:i + 150], n=n, thr=thr))
return pd.concat([d for d in out if not d.empty], ignore_index=True).sort_values("bias_%")
# hits = run_full_market()
# print("负乖离超跌只数:", len(hits)); print(hits.head(20))小样本(10 只票)实测 6 日乖离率从约 −5.5%(超跌个股)到 +0.7% 不等,升序排名逻辑跑通;全市场同法按 150 只分批。
adjust="forward",否则除权日会出现假的巨大乖离。Q:乖离率多少算超跌?
A:没有统一标准。短线常用 6 日乖离率 −5%~−10% 作参考,但高波动股阈值要放大。建议按标的波动率分组或用历史分位数(如取最负的 5%)而非固定值。
Q:BIAS 和 RSI/WR 有何不同?
A:RSI/WR 是有界摆动指标(0~100 或 −100~0),BIAS 直接是"偏离均线的百分比"、无界且直观。三者都测超买超卖,可互相印证。
Q:负乖离超跌能直接买吗?
A:不能。下跌趋势中会持续负乖离。需结合趋势、成交量与止损,别单指标抄底。
Q:需要付费吗?
A:少量标的的 K 线在免费额度内即可试;全市场 universe 取数需 Starter 及以上,详见 AlphaFeed 定价页。
乖离率选股 = 全市场标的池 + 前复权日线 + (收盘−MA)/MA 乖离率 + 阈值/分位数筛选。门槛在取数与口径(均线周期、复权、阈值随波动率变化),AlphaFeed 用 universe + klines.batch 收敛掉,你几十行就能扫出全市场负乖离超跌股——但请记住乖离率无固定阈值、趋势中会持续负乖离,务必配合其他确认和止损。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。