☰
如何用 Python 做乖离率(BIAS)选股?(全市场筛负乖离超跌股)
2026/10/2 6:57:23 网站建设 项目流程

一句话回答:乖离率 BIAS 衡量股价偏离均线的百分比,公式是BIAS = (收盘 − MA) / MA × 100。用 AlphaFeed 取全市场标的池 +klines.batch批量日线,算每只票的 BIAS 并筛出**负乖离过大(如 ≤ −8%)**的超跌候选,几十行就能扫出全市场短期超跌股——关键是乖离率没有放之四海皆准的阈值。

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

乖离率是判断"股价短期偏离均线多远"的经典指标,常用于捕捉超跌反弹或超买回调。做成选股要解决:

  • 全市场取数:先有全市场清单再批量取日线;
  • 均线周期:6 日、12 日、24 日乖离率含义不同;
  • 复权:不用前复权,除权跳空会让乖离率失真。

AlphaFeed 用 universe +klines.batch一次拿到全市场量价数据。

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

第 1 步:定义乖离率

defbias(close,n=6):ma=close.rolling(n).mean()return(close-ma)/ma*100# 正=股价在均线上方,负=下方

乖离率参数:

参数含义常用取值
n均线周期6(短期)、12、24
负乖离阈值超跌参考≤ −8%(短线)/ 视标的而定
正乖离阈值超买参考≥ +8%
复权用前复权收盘adjust="forward"

第 2 步:批量计算并筛超跌

fromalphafeedimportAlphaFeedimportpandasaspd af=AlphaFeed(api_key="your-api-key")# 或 export ALPHAFEED_API_KEY 后 AlphaFeed()defbias_screen(symbols,count=60,n=6,thr=-8.0):bt=af.klines.batch(symbols,period="1d",count=count,adjust="forward",to_dataframe=True)rows=[]forsym,dfinbt.items():ifdfisNoneorlen(df)<n+1:continued=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_%")# 升序=负乖离最大在前returnres[res["oversold"]]ifnotres.emptyelseres

第 3 步:全市场分批跑

defrun_full_market(n=6,thr=-8.0):q=af.quotes.get(universes="CN_Stock",to_dataframe=True)symbols=q["symbol"].tolist()out=[]foriinrange(0,len(symbols),150):# 分批防限频out.append(bias_screen(symbols[i:i+150],n=n,thr=thr))returnpd.concat([dfordinoutifnotd.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 只分批。

关键坑与注意事项

  • 阈值因标的而异:高波动股(如次新、题材股)乖离率天然大,−8% 可能很常见;低波动股 −8% 已是极端。用统一阈值会偏向高波动股,最好分组或用分位数。
  • 趋势中会持续负乖离:下跌趋势里股价可长期在均线下方(持续负乖离),负乖离≠马上反弹,别纯抄底。
  • 均线周期要固定:6 日乖离率捕捉短线、24 日反映中期,别混用;短周期噪声大、长周期更滞后。
  • 复权:一律adjust="forward",否则除权日会出现假的巨大乖离。
  • 配合确认:乖离率宜与成交量、K 线形态或其他指标共同判断,单指标胜率有限。

常见问题(FAQ)

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收敛掉,你几十行就能扫出全市场负乖离超跌股——但请记住乖离率无固定阈值、趋势中会持续负乖离,务必配合其他确认和止损。

参考

  • AlphaFeed Python SDK 文档:https://docs.alphafeed.org/zh-Hans/sdk/python-quickstart
  • AlphaFeed 官网:https://alphafeed.org/

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询