布林线的python定义

该博客探讨了布林带(BBANDS)指标在金融数据分析中的运用,包括计算上、中、下轨,计算斜率以及开口变化。通过线性回归计算中轨斜率,并设置阈值判断斜率变化。进一步,分析了开口变化趋势,利用SUM函数对5天和10天内的变化进行计数,从而识别开口的扩大或缩小趋势。最终,根据计数结果确定开口变化状态,并据此进行数据筛选。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#布林线相关指标,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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值