#布林线相关指标,shift(-1),向上移动1格,也就当前行变成下一行,在这里就是未来的某一天,+1就是向下移动,就是过去的一天
df1['upper_BBANDS'],df1['mid_BBANDS'],df1['lower_BBANDS'] = ta.BBANDS(df1['close'].values,timeperiod=5,nbdevup=2,nbdevdn=2,matype=0)
df1['mid_BBANDS_xielv'] =ta.LINEARREG_SLOPE(df1['mid_BBANDS'],timeperiod=5)
df1['kaikou_BBANDS'] = df1['upper_BBANDS'] -df1['lower_BBANDS']
df1['kaikou_BBANDS_bianhua'] = df1['kaikou_BBANDS'] - df1['kaikou_BBANDS'].shift(1)
#mid是大于0还是小于等于0
df1['mid_BBANDS_xielv_flag '] = np.where(df1['mid_BBANDS_xielv']>0.001,1,0)
df1['kaikou_bianhua_flag'] = np.where(df1['kaikou_BBANDS_bianhua']>0.001,1,0)
#开口在5天内,变大了还是变小了
df1['kaikou_bianhua_flag_10count'] = ta.SUM(df1['kaikou_bianhua_flag'], timeperiod=10)
df1['kaikou_bianhua_flag_5count'] = ta.SUM(df1['kaikou_bianhua_flag'], timeperiod=5)
df1['kaikou_bianhua_count'] = np.select([((df1['kaikou_bianhua_flag_5count']==0) & (df1['kaikou_bianhua_flag_10count']==0)),
((df1['kaikou_bianhua_flag_5count']==0) & (df1['kaikou_bianhua_flag_10count'] >0)),
((df1['kaikou_bianhua_flag_5count'] >0) & (df1['kaikou_bianhua_flag_10count']==0)),
((df1['kaikou_bianhua_flag_5count'] >0) & (df1['kaikou_bianhua_flag_10count']>0))],[0,-99,99,1])
df1 = df1.drop(['upper_BBANDS','mid_BBANDS','lower_BBANDS','kaikou_BBANDS','kaikou_BBANDS_bianhua','kaikou_bianhua_flag','mid_BBANDS_xielv',
'kaikou_bianhua_flag_10count','kaikou_bianhua_flag_5count'],axis=1)
该博客探讨了布林带(BBANDS)指标在金融数据分析中的运用,包括计算上、中、下轨,计算斜率以及开口变化。通过线性回归计算中轨斜率,并设置阈值判断斜率变化。进一步,分析了开口变化趋势,利用SUM函数对5天和10天内的变化进行计数,从而识别开口的扩大或缩小趋势。最终,根据计数结果确定开口变化状态,并据此进行数据筛选。
694

被折叠的 条评论
为什么被折叠?



