发布时间:2026/7/18 20:34:59
Python 计算股票布林线(BOLL)指标完整实战教程 一、布林线指标基础原理布林线Bollinger Bands简称BOLL是由约翰·布林格发明的经典趋势波动率指标核心依托移动平均线标准差构建三条轨道线直观反映股价波动区间、支撑压力位与超买超卖状态。三条轨道计算公式中轨线MBN周期收盘价简单移动平均线常规参数N20MBMA20Close1Close2...Close2020MB MA_{20} \frac{Close_1Close_2...Close_{20}}{20}MBMA20​20Close1​Close2​...Close20​​上轨线UP中轨 N倍收盘价标准差默认倍数K2UPMB2×σUP MB 2 \times \sigmaUPMB2×σ下轨线DN中轨 - N倍收盘价标准差DNMB−2×σDN MB - 2 \times \sigmaDNMB−2×σσ\sigmaσ20周期收盘价标准差代表股价波动率。基础交易逻辑股价触碰上轨短期超买回调概率提升股价触碰下轨短期超卖反弹概率提升轨道收窄波动率缩小预示即将突破行情轨道扩张波动加大单边趋势行情延续。二、环境依赖准备本次实战使用三大核心库tushare免费获取A股股票历史行情数据pandas数据清洗、均线、标准差批量计算matplotlib可视化绘制布林线K线走势图numpy数值计算辅助安装依赖命令pipinstalltushare pandas numpy matplotlib三、完整代码实现获取行情计算布林指标3.1 步骤说明初始化Tushare接口拉取单只股票日线数据基于收盘价计算20日均线、标准差代入公式生成上轨、中轨、下轨三条布林线数据校验剔除空值Matplotlib绘制股价与布林轨道对比图。完整可运行源码importtushareastsimportpandasaspdimportnumpyasnpimportmatplotlib.pyplotasplt# ---------------------- 1. 初始化Tushare需自行官网注册获取token ----------------------# Tushare官网https://tushare.pro/ 注册后获取个人tokents.set_token(你的Tushare Token)prots.pro_api()# ---------------------- 2. 获取股票日线行情数据 ----------------------defget_stock_data(stock_code,start_date,end_date): 获取A股日线数据 :param stock_code: 股票代码 如600036.SH :param start_date: 起始日期 YYYYMMDD :param end_date: 结束日期 YYYYMMDD :return: 处理后DataFrame dfpro.daily(ts_codestock_code,start_datestart_date,end_dateend_date)# 按交易日期升序排序接口默认倒序必须反转才能正确计算均线dfdf.sort_values(trade_date).reset_index(dropTrue)# 日期格式转换用于绘图横轴展示df[trade_date]pd.to_datetime(df[trade_date])returndf# ---------------------- 3. 核心函数计算布林线BOLL指标 ----------------------defcalc_boll(df,n20,k2): 计算布林带上中下轨 :param df: 股票行情DataFrame必须包含close收盘价列 :param n: 均线周期默认20 :param k: 标准差倍数默认2 :return: 新增boll_mb、boll_up、boll_dn三列的df # 中轨N周期简单移动平均df[boll_mb]df[close].rolling(windown).mean()# 计算N周期收盘价标准差stddf[close].rolling(windown).std()# 上轨 中轨 k倍标准差df[boll_up]df[boll_mb]k*std# 下轨 中轨 - k倍标准差df[boll_dn]df[boll_mb]-k*stdreturndf# ---------------------- 4. 布林线可视化绘图函数 ----------------------defplot_boll(df,stock_name):plt.rcParams[font.sans-serif][SimHei]# 解决中文乱码plt.rcParams[axes.unicode_minus]False# 解决负号显示异常fig,axplt.subplots(figsize(14,7))# 绘制收盘价走势ax.plot(df[trade_date],df[close],color#222222,linewidth1.2,label收盘价)# 布林中轨蓝色ax.plot(df[trade_date],df[boll_mb],color#0066cc,linewidth1.5,labelBOLL中轨(MB))# 布林上轨红色ax.plot(df[trade_date],df[boll_up],color#cc2222,linewidth1,linestyle--,labelBOLL上轨(UP))# 布林下轨绿色ax.plot(df[trade_date],df[boll_dn],color#229922,linewidth1,linestyle--,labelBOLL下轨(DN))# 填充上下轨区间半透明灰色ax.fill_between(df[trade_date],df[boll_up],df[boll_dn],color#dddddd,alpha0.3)ax.set_title(f{stock_name}布林线BOLL指标走势图,fontsize15,pad15)ax.set_xlabel(交易日期)ax.set_ylabel(股价(元))ax.legend(locbest)ax.grid(alpha0.3)plt.xticks(rotation45)plt.tight_layout()plt.show()# ---------------------- 主程序执行入口 ----------------------if__name____main__:# 配置参数stock_ts_code600036.SH# 招商银行stock_short_name招商银行start20250101end20251231# 1. 获取行情stock_dfget_stock_data(stock_ts_code,start,end)# 2. 计算布林线stock_dfcalc_boll(stock_df,n20,k2)# 3. 打印前30行数据查看指标结果print(股票行情布林指标数据预览)print(stock_df[[trade_date,close,boll_mb,boll_up,boll_dn]].head(30))# 4. 绘制布林线图表plot_boll(stock_df,stock_short_name)四、代码分段详细解析4.1 数据获取模块关键点Tushare接口返回数据默认是日期倒序如果不执行sort_values排序滚动均线计算会完全失真这是新手最容易踩坑的问题。行情核心字段说明trade_date交易日期close当日收盘价布林线唯一计算数据源open/high/low开盘、最高、最低价拓展可用于K线绘制4.2 BOLL指标计算核心逻辑pandas.rolling(windown)滑动窗口是计算均线、标准差的核心窗口大小20代表每次取连续20根日线mean()计算窗口均值即中轨std()计算窗口内收盘价标准差衡量波动幅度上下轨仅在中轨基础上±2倍标准差参数k可自定义短线用1.8长线用2.2。4.3 绘图模块优化点配置SimHei黑体解决Matplotlib中文乱码上下轨使用虚线区分轨道区间填充半透明底色视觉分层清晰自动旋转X轴日期标签避免日期文字重叠。五、拓展优化方案5.1 本地CSV行情离线计算无需Tushare如果没有Tushare账号可导入本地存储的股票CSV文件计算布林线# 本地csv格式至少包含 trade_date, close 两列dfpd.read_csv(stock_data.csv)df[trade_date]pd.to_datetime(df[trade_date])dfdf.sort_values(trade_date).reset_index(dropTrue)dfcalc_boll(df)5.2 增加布林带宽指标判断轨道收缩扩张布林带宽衡量轨道宽窄用于捕捉突破行情前兆BandWidthUP−DNMBBandWidth \frac{UP-DN}{MB}BandWidthMBUP−DN​新增代码df[boll_bandwidth](df[boll_up]-df[boll_dn])/df[boll_mb]带宽持续走低代表震荡缩量即将出现大行情。5.3 超买超卖标记增加标记列识别股价突破轨道的信号df[signal]0df.loc[df[close]df[boll_up],signal]1# 上轨超买df.loc[df[close]df[boll_dn],signal]-1# 下轨超卖六、实战使用注意事项参数适配A股短线交易可调整n13k1.9长线持有默认20、2停牌处理数据中停牌无收盘价行会导致标准差失真需提前过滤空值单边行情缺陷持续大涨/大跌行情中股价会长期贴紧上/下轨单纯触碰轨道反向操作容易踏空指标组合实战建议搭配MACD、成交量使用单独布林线信号可靠性较低。七、总结本文通过Pythonpandas完整复现布林线指标数学公式实现了行情获取、指标批量计算、可视化绘图全流程。核心难点在于滑动窗口的顺序处理与标准差公式落地代码封装成独立函数后可快速嵌入量化回测、自动化选股系统。基于这套框架可继续拓展布林线金死叉策略回测、多股票批量遍历计算、实时行情分钟线布林指标等进阶量化功能。

相关新闻

2026/7/18 20:34:59

莱文AI:人工智能如何助力企业实现AI数字化转型

一、莱文简介莱文科技(RAVEN)致力于帮助企业构建属于自己的AI能力体系,从战略咨询、知识沉淀到智能系统与Agent落地,为企业提供从规划到落地的一站式服务。我们关注的,不是让 AI 停留在问答工具层面,而是让…

2026/7/18 20:29:58

[Android] Tabbit超级AI-内置多个AI模型+原生AI浏览器

[Android] Tabbit超级AI-内置多个AI模型原生AI浏览器 链接:https://pan.xunlei.com/s/VOxoKJ1jh7rDnjeHMZoQ9-1YA1?pwd6rie# 一款AI智能浏览器,软件将传统网页浏览、AI对话、内容创作三大功能深度融合,依托多款主流大模型重构浏览体验&a…

2026/7/18 21:50:03

【Linux】基础指令

一、前置基础概念 1.1 命令标准格式命令 [选项] [操作参数]命令:核心操作程序,必填选项:-短参数、--长参数,拓展功能参数:操作对象(文件、目录、路径) 示例:ls -l /home ls 命令&a…

2026/7/18 21:50:03

黑神话:悟空修改器下载 手残必备

下载链接 从工程视角看《黑神话:悟空》本地内存修改工具的技术实现与生态差异 引言 《黑神话:悟空》作为一款基于Unreal Engine 5开发的硬核动作角色扮演游戏,其战斗系统对玩家的操作精度和反应速度提出了较高要求。在单机游戏领域&#x…

2026/7/18 21:50:03

数据结构与算法,这4种结构写代码时每天都在用

很多初学者觉得数据结构与算法是"面试造火箭,工作拧螺丝"的东西。实际上,日常写代码的过程中,你时时刻刻都在和数据结构和算法打交道,只是没有意识到而已。这篇文章不讲红黑树、B树这些复杂结构,就说说工作中…

2026/7/18 21:50:03

实战测试10款降AI率网站:只选真正管用的那一款!

AI写作工具让论文撰写和内容创作变得高效便捷,越来越多的学生和职场人开始依赖这类工具提升效率。然而,随着AIGC检测技术的不断升级,问题也随之而来——不少用户发现,自己用AI生成的内容被平台或系统识别为“AI痕迹明显”&#xf…

2026/7/18 21:45:03

凡诺电子:为什么LCD显示黑色还是会“泛白“?

很多客户在调试设备界面时都会提出同一个问题:"为什么LCD显示黑色的时候,总感觉有点发灰?是不是屏幕质量不好?"实际上,大多数情况下,这并不是屏幕质量问题,而是LCD显示技术本身的特点…

2026/7/17 5:59:06

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/18 10:53:38

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/17 7:39:19

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/18 0:00:24

某智驾大牛创业

作者:钟声编辑:Mark出品:红色星际头图:智能驾驶图片据悉,国内某头部智驾公司端到端模型技术大牛Z投身创业,并且已经拿到融资。Z不仅是该头部公司内部最年轻的对标阿里P10级别技术负责⼈,更是业内…

2026/7/18 16:50:29

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…