BBI (Bull And Bear lndex) - 多空指标
1 公式
- 3日均价 = 3日收盘价之和 / 3
- 6日均价 = 6日收盘价之和 / 6
- 12日均价 = 12日收盘价之和 / 12
- 24日均价 = 24日收盘价之和 / 24
- BBI = (3日均价 + 6日均价 + 12日均价 + 24日均价) / 4
2 数据准备
我们以科创50指数 000688 为例,指数开始日期为2019-12-31,数据格式如下:
3 计算过程
def calculate_bbi(df: pd.DataFrame, N1=3, N2=6, N3=12, N4=24) -> pd.DataFrame:'''计算Bull and Bear Index (BBI),一种技术分析指标,用于识别市场趋势。参数:df (pd.DataFrame): 包含至少'close'列的DataFrame,代表收盘价。N1, N2, N3, N4 (int): 分别代表四个不同周期的简单移动平均线(SMA)的窗口大小。返回:pd.DataFrame: 包含BBI值的DataFrame。'''# 创建一个df的副本以避免修改原始数据data = df.copy()# 计算四个不同周期的简单移动平均线data['ma_' + str(N1)] = data['close'].rolling(N1).mean()data['ma_' + str(N2)] = data['close'].rolling(N2).mean()data['ma_' + str(N3)] = data['close'].rolling(N3).mean()data['ma_' + str(N4)] = data['close'].rolling(N4).mean()# 计算BBI,即这四个SMA的均值data['bbi'] = (data['ma_' + str(N1)] + data['ma_' + str(N2)] +data['ma_' + str(N3)] + data['ma_' + str(N4)]) / 4# 返回包含BBI指标的新DataFramereturn data
4 注意事项
计算结果与东方财富软件中一致
雪球无此指标