一句话回答: BBI(Bull and Bear Index,多空指标)是 3、6、12、24 日四条简单均线的平均值:BBI = (MA3 + MA6 + MA12 + MA24) / 4,用一条线同时兼顾短、中期均线,价格在 BBI 之上视为多头、之下视为空头。用 AlphaFeed 取回前复权日线后,几行 pandas 就能算出 BBI,完全不需要 TA-Lib。
看均线时同时挂 5/10/20/60 太乱,判断多空要来回比对多条线。BBI 的思路是把几条不同周期均线平均成一条,兼顾灵敏与稳健,得到一条清爽的「多空分界线」:站上就是多头格局,跌破就是空头格局。坑在于要用前复权价,否则除权跳空让均线失真。
from alphafeed import AlphaFeed
import pandas as pd
af = AlphaFeed() # 读取 ALPHAFEED_API_KEY
df = af.klines.get("600519.SH", period="1d", count=250,
adjust="forward", to_dataframe=True)
df = df.sort_values("trade_date").reset_index(drop=True)BBI 由多条均线构成,务必用
adjust="forward"(前复权),避免除权断层。
def bbi(close: pd.Series, windows=(3, 6, 12, 24)) -> pd.Series:
mas = [close.rolling(w).mean() for w in windows]
return sum(mas) / len(mas)
df["BBI"] = bbi(df["close"])
df["pos"] = (df["close"] > df["BBI"]).map({True: "多头", False: "空头"})
print(df[["trade_date", "close", "BBI", "pos"]].tail(5).to_string(index=False))参数与含义:
参数/字段 | 含义 | 常用值 |
|---|---|---|
| 四条均线周期 | (3, 6, 12, 24) |
| 四条均线的平均 | 多空分界线 |
收盘 > BBI | 多头格局 | 偏多 |
收盘 < BBI | 空头格局 | 偏空 |
df["cross"] = df["pos"].ne(df["pos"].shift())
sig = df[df["cross"] & df.index.to_series().gt(0)]
print(sig[["trade_date", "close", "BBI", "pos"]].tail(5).to_string(index=False))
# pos 由"空头"变"多头" = 站上 BBI(偏多信号);反之跌破 BBI(偏空信号)codes = ["600519.SH", "000001.SZ", "601318.SH", "000858.SZ", "300750.SZ"]
data = af.klines.batch(codes, period="1d", count=60,
adjust="forward", to_dataframe=True) # dict{symbol: DataFrame}
bull = []
for sym, k in data.items():
k = k.sort_values("trade_date")
b = bbi(k["close"])
if k["close"].iloc[-1] > b.iloc[-1]:
bull.append(sym)
print("站上 BBI(多头格局):", bull)count 建议 ≥ 30 以上,忽略序列最前面若干根。Q:BBI 和单看均线有什么优势?
A:BBI 把多条周期均线合成一条,既有短均线的灵敏、又有长均线的稳健,判断多空格局更省事、更少噪音。
Q:默认参数 3/6/12/24 能改吗?
A:能。想更灵敏可用更短的组合,想更稳健可拉长。默认 3/6/12/24 是通用设置,先用它。
Q:为什么前面几十行是 NaN?
A:24 日均线需要 24 根数据预热,序列头部为 NaN 属正常,取足够长样本即可。
Q:需要付费吗?
A:单只历史日线有免费额度;全市场批量筛 BBI(klines.batch + universes)需 Starter 及以上。详见定价页。
BBI 多空指标的本质是「多条周期均线的平均分界线」,用一条线判断多空格局。实现只需 pandas 的 rolling 求四条均线再平均,不依赖 TA-Lib。关键是用前复权价、把它当格局线而非精确买卖点。用 AlphaFeed 取回前复权日线,从单股多空判断到全市场多头筛选都能几行搞定。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。