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指标的新DataFrame
return data
4 注意事项
计算结果与东方财富软件中一致
雪球无此指标