BOLL指标

       布林线是技术分析的一种常用指标,可以用来分析股价的运行路径,布林线主要由收盘价的 N 日移动平均、 N 日移动平均加减上下两倍标准差三条线构成,股价一般围绕均线,在上下两条压力支撑线构成的范围内运行,从统计学角度来说,布林线其实描述的是一种统计思想,根据切比雪夫不等式   可以知道,当取k取2标准差时至少有3/4的数据落在两倍标准差的范围之内,这种方法不仅可应用于价格,还可以根据需要用于对其它基础指标的分析。

       对于布林线的参数通常有20日和99日两种设置方法,参考知乎刘鹏程Sai.L的说法,99日在周线级别上更适合中长线投资者对于市场整体情况的判断市场的整体趋势,三条线把空间分割成五个区域,通过判断价格所处的位置结合中轨的方向可以帮助投资者更好地了解压力和支撑位:

 


       根据布林指标判断熊转牛信号的方法为:一是BOLL中轨接近水平或向上,二是BOLL收口较窄,这意味着股价的涨跌幅度变小,多空方向意见趋于统一,往往预示着行情的大转折,三是MACD的周线级别存在底背离,且股价突破中轨是DIFF、DEA线不能高于0轴过多,卖出时通常结合日线顶背离同时周线出现死叉:


 


       在个股机会的把握上同样可以将布林线和MACD结合,比如在下轨等待MACD底背离、金叉等买入,上轨根据MACD顶背离、死叉等决定是否卖出。

       关于BOLL指标如何运用到策略当中,我认为用于大盘趋势或者个股择时的辅助判断都是可行的,大家可以使用平台新增的指标函数来实践,一个具体操作的例子:http://t.cn/RixLa6r


欢迎加入京东金融官方交流QQ群:456448095,有任何问题均可咨询和交流。



以下是使用tushare的pro版本获取股票数据,包括开盘价、收盘价、最高价、最低价、成交量等数据,以及kdj、macd、boll指标和移动平均线数据,并结合这些指标来筛选合适的股票并导出到excel的示例代码: ```python import pandas as pd import tushare as ts # 设置token ts.set_token('your_token') # 初始化pro接口 pro = ts.pro_api() # 获取股票代码列表 stock_codes = pro.stock_basic(list_status='L')['ts_code'].tolist() # 定义筛选条件 ma_periods = [5, 10, 20, 30] # 移动平均线周期 kdj_periods = [9, 3, 3] # KDJ指标周期 macd_periods = (12, 26, 9) # MACD指标周期 boll_periods = 20 # BOLL指标周期 min_volume = 1000000 # 最小成交量 # 定义筛选函数 def filter_stocks(stock_codes): selected_stocks = [] for code in stock_codes: # 获取历史数据 df = pro.daily(ts_code=code, start_date='20200101', end_date='20211231') df = df.sort_values('trade_date').reset_index(drop=True) if len(df) < max(ma_periods) + max(kdj_periods[0], kdj_periods[1], 1) + macd_periods[1] + boll_periods: continue # 计算指标 df['ma5'] = df['close'].rolling(window=5).mean() df['ma10'] = df['close'].rolling(window=10).mean() df['ma20'] = df['close'].rolling(window=20).mean() df['ma30'] = df['close'].rolling(window=30).mean() df['K'], df['D'], df['J'] = talib.STOCH(df['high'].values, df['low'].values, df['close'].values, *kdj_periods) df['DIF'], df['DEA'], df['MACD'] = talib.MACD(df['close'].values, *macd_periods) df['upper'], df['middle'], df['lower'] = talib.BBANDS(df['close'].values, timeperiod=boll_periods) # 筛选股票 if df['volume'].iloc[-1] >= min_volume and \ df['close'].iloc[-1] > df[['ma5', 'ma10', 'ma20', 'ma30']].iloc[-1].max() and \ df['J'].iloc[-1] > df['D'].iloc[-1] and \ df['MACD'].iloc[-1] > df['MACD'].iloc[-2] and \ df['close'].iloc[-1] > df['upper'].iloc[-1]: selected_stocks.append(code) return selected_stocks # 筛选股票 selected_stocks = filter_stocks(stock_codes) # 导出数据到excel writer = pd.ExcelWriter('selected_stocks.xlsx') for code in selected_stocks: df = pro.daily(ts_code=code, start_date='20200101', end_date='20211231') df.to_excel(writer, sheet_name=code, index=False) writer.save() ``` 该示例代码中,首先使用tushare的pro接口获取所有上市股票的代码列表。然后定义了一些筛选条件,包括移动平均线周期、KDJ指标周期、MACD指标周期、BOLL指标周期和最小成交量。接下来定义了一个筛选函数`filter_stocks`,该函数接受股票代码列表作为参数,循环遍历每个股票,获取其历史数据,并计算各种指标。在计算指标的过程中,使用了talib库来计算KDJ、MACD和BOLL指标。 最后,在筛选股票的过程中,使用了一些简单的条件来判断股票是否适合买入,包括最近一天的成交量是否大于最小成交量、收盘价是否高于所有移动平均线、J指标是否大于D指标、MACD指标是否呈上升趋势、收盘价是否高于BOLL指标的上轨。如果股票符合以上条件,则将其添加到选中股票列表中。 最后,将选中股票的历史数据导出到excel文件中,每个股票对应一个sheet。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值