【量化交易笔记】6.布林带的实现

article/2025/9/19 0:52:37

上一讲介绍A股移动平均值(MA)指标,本讲我们来讲解布林布的实现。

布林线(BOLL)技术指标简介

布林线(Bollinger Bands,BOLL)又称布林带,是约翰·布林(John Bollinger)提出的一种行情价格频带分轨,是根据统计学中的标准差原理,设计出来的一种非常实用的技术指标。布林线也建立在移动平均线之上,但包含最近的价格波动,使指标更能适应不同的市场条件。布林线通常可由上轨(压力线)、中轨(行情平衡线)和下轨(支撑线)三条轨道线组成,属于通道式指标或路径式指标[1]。
股票的布林带指标是一种基于统计学的技术指标,用于衡量股票价格在一定时间内的波动范围。它是通过计算股票价格在一定时间内的移动平均数以及标准差,对股票价格的上下限进行约束,从而帮助投资者判断股票价格是否处于超买或超卖状态,并作出相应的交易决策。

BOLL公式详解

参数设置

n n n : 时间周期数
**标准差 σ **(STDEV):
σ = ∑ i = 1 n ( P i − M A ) 2 n \sigma=\sqrt{\frac{\sum_{i=1}^n(Pi-MA)^2}{n}} σ=ni=1n(PiMA)2

标准差因子 β \beta βSTDEV Factor):
β = 2 \beta=2 β=2
中界线 n 日内收盘价的算术平均 n 日内收盘价的算术平均 n日内收盘价的算术平均
阻力线 中界线 + 标准差因子 × 标准差 中界线 + 标准差因子 \times 标准差 中界线+标准差因子×标准差
支撑线 中界线 − 标准差因子 × 标准差 中界线 − 标准差因子 \times 标准差 中界线标准差因子×标准差

B B A N D M i d = M A n − p e r i o d s BBAND_{Mid}=MA_{n-periods} BBANDMid=MAnperiods
B B A N D U p = B B A N D M i d + β × σ BBAND_{Up}=BBAND_{Mid} + \beta \times \sigma BBANDUp=BBANDMid+β×σ
B B A N D L o w = B B A N D M i d − β × σ BBAND_{Low}=BBAND_{Mid} - \beta \times \sigma BBANDLow=BBANDMidβ×σ

用到的主要Python库

Python绘图库Matplotlib 3.2.1
Python金融数据处理库Pandas 1.0.2
Python矩阵计算库Numpy 1.16.0

Python代码&详解

# 导入及处理数据
import pandas as pd
import numpy as np
# 绘图
import matplotlib.pyplot as plt
# 设置图像标签显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
import matplotlib as mpl
# 解决一些编辑器(VSCode)或IDE(PyCharm)等存在的图片显示问题,
# 应用Tkinter绘图,以便对图形进行放缩操作
mpl.use('TkAgg')# 导入数据并做处理
def import_csv(stock_code):df = pd.read_csv(stock_code + '.csv')df.rename(columns={'date': 'Date','open': 'Open','high': 'High','low': 'Low','close': 'Close','volume': 'Volume'},inplace=True)df['Date'] = pd.to_datetime(df['Date'], format='%Y/%m/%d')df.set_index(['Date'], inplace=True)return dfstock_code = 'sh600519'
# 绘制数据的规模
scale = 500
df = import_csv(stock_code)[-scale:]# SMA:简单移动平均(Simple Moving Average)
time_period = 20  # SMA的计算周期,默认为20
stdev_factor = 2  # 上下频带的标准偏差比例因子
history = []  # 每个计算周期所需的价格数据
sma_values = []  # 初始化SMA值
upper_band = []  # 初始化阻力线价格
lower_band = []  # 初始化支撑线价格# 构造列表形式的绘图数据
for close_price in df['Close']:# history.append(close_price)# 计算移动平均时先确保时间周期不大于20if len(history) > time_period:del (history[0])# 将计算的SMA值存入列表sma = np.mean(history)sma_values.append(sma)  # 计算标准差stdev = np.sqrt(np.sum((history - sma) ** 2) / len(history))  upper_band.append(sma + stdev_factor * stdev)lower_band.append(sma - stdev_factor * stdev)# 将计算的数据合并到DataFrame
df = df.assign(收盘价=pd.Series(df['Close'], index=df.index))
df = df.assign(中界线=pd.Series(sma_values, index=df.index))
df = df.assign(阻力线=pd.Series(upper_band, index=df.index))
df = df.assign(支撑线=pd.Series(lower_band, index=df.index))# 绘图
ax = plt.figure()
# 设定y轴标签
ax.ylabel = '%s price in ¥' % (stock_code)df['收盘价'].plot(color='k', lw=1., legend=True)
df['中界线'].plot(color='b', lw=1., legend=True)
df['阻力线'].plot(color='r', lw=1., legend=True)
df['支撑线'].plot(color='g', lw=1., legend=True)
plt.show()

所得图像如下:

布林线的买卖法则

布林带指标基于股票价格的波动范围,可以反映股票价格在历史上的波动情况,并给出有关价格上涨和下跌的建议。根据布林带指标的上下限和股票价格的走势,可以得出以下买卖法则。

  1. 上穿下轨买入信号:当股票价格从下方上穿下轨时,表明股票价格已经处于超卖状态,建议买入股票。

  2. 上穿中线买入信号:当股票价格从下方上穿中线时,表明股票价格已经开始上涨,建议买入股票。

  3. 下穿上轨卖出信号:当股票价格从上方下穿上轨时,表明股票价格已达到顶部,可能出现价格下跌的情况,建议卖出股票。

  4. 下穿中线卖出信号:当股票价格从上方下穿中线时,表明股票价格可能已经到达顶部,建议卖出股票。

需要注意的是,这些买卖信号只是参考建议,需要结合其他技术指标和市场情况进行分析。此外,在使用布林带指标时,也应该注意时间周期的选择,短周期的布林带指标波动幅度较大,长周期的布林带指标波动幅度较小,选择不同的时间周期,可以更精确地判断市场状况。


http://chatgpt.dhexx.cn/article/x6x6FxtO.shtml

相关文章

Python股票量化学习(3)——简单的策略回测

搞一个简单的交易策略回测(难点的我也不会啊)。此策略基于布林通道,当股价低于布林通道下轨线且持仓为0时,以下轨线价格全仓买入(不关心风险,反正也不要本钱)。当股价突破布林线上轨且有持仓时&…

量化交易——布林带策略

一、布林带策略介绍 布林带/布林线/保利加通道(Bollinger Band):由三条轨道线组成,其中上下两条线分别可以看成是价格的压力线和支撑线,在两条线之间是一条价格平均线。 一般来说,股价会运行在压力线和支撑线所形成的通道中。 与M…

【vn.py】源码解析之布林通道(BollChannel)策略

文章目录 Boll(布林线)指标CCI(Commodity Channel Index)指标布林通道策略布林通道策略源码分析1、完整源码2、策略参数与变量3、策略执行逻辑 Boll(布林线)指标 布林线是一种金融衍生品价格走势图中常用的…

量化交易——传统技术分析布林通道BollingerBands的原理及实现

布林通道 布林通道线是根据统计学的标准差来计算的,其具体可由上中下三条曲线展示。其中上下两线分别代表上升压力线和下降支撑线,故而可以根据K线图是否突破布林曲线来判断较好的买卖节点。三条曲线计算方法如下: 中轨线(MID)收盘价的M日移…

Lyndon的量化修炼之路——布林通道优化策略(二)

策略参数优化 //期市妖风大,小心被刮飞。本文不构成任何实质性建议,也不对任何依此进行的交易结果负责参数优化几乎是优化每一个量化交易策略的必经之路,对于参数优化的基本方法已经在双均线优化策略中介绍过,再次不多做介绍&…

【Python量化】布林带策略

文章目录 一、计算布林带三、构建策略,计算持仓头寸序列和买卖信号序列四、计算策略收益五、绘制交易信号 此文章首发于公众号:Python for Finance 链接:https://mp.weixin.qq.com/s/CJR2gwXkkzFRavZ8I98qdw 布林带(BOLL&#x…

Lyndon的量化修炼之路——布林通道优化策略(一)

//期市妖风大,小心被刮飞。本文不构成任何实质性建议,也不对任何依此进行的交易结果负责经过某位大佬的提醒,原来大白有另外的含义,侵权了侵权了(原谅我孤陋寡闻),所以还是简单点好。 我也不知…

现货黄金指标精讲(布林通道)

现货黄金的特点在于可以多空双向交易,如果投资者能精通一到两种的技术分析手段,必定能大幅提高交易的成功率。布林通道指标不仅能揭示金价运行的趋势,还能提供清晰的买卖信号,帮助长、中、短线的投资者提高交易决策的质量。 一、布…

布林通道 Bollinger Bands——非炒股向个人学习笔记

有一组数据,大多数是以时间序列的数据,如年、月、日为度量的某指标变化。(上图的绿线不用管) 布林通道的作用是描述数值的近期波动程度,具体表现就表现在轨道的收窄与拓宽上。 一、基本概念 作图需设定的变量&#x…

eclipse安装教程与使用教程

第一首先在电脑的浏览器中输入“eclipse官网”。 然后在网页中点击进入eclipse的官方下载网站。 2 第二然后再点击页面右边的“download”。 在弹出的页面下面点击“download packages”。 3 第三然后在下面找到“eclipse IDE for java developers”的选项。 在选项右边有…

eclipse基础实用教程

一、打开eclipse,创建java文件 1.点击eclipse.exe文件 Workspace:(这个是你写的代码存放位置,可以自己选择创建一个文件夹) 2.新装的eclipse中在new里面未找到java project, 点击Open Perspective&#…

eclipse使用教程(图文)

很多人都知道要用eclipse来做java开发,但很多的新手朋友却不知道怎么下载和安装eclipse。下面给你介绍一下怎么下载和安装eclipse来用于自己的学习或者项目开发, 很多人都知道要用eclipse来做java开发,但很多的新手朋友却不知道怎么下载和安装…

Eclipse详细安装教程

Eclipse安装教程 前言一、Eclipse是什么?二、安装步骤1. Eclipse下载下载网址 2. Eclipse安装 前言 Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。 一、Eclipse是什么? Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言…

Eclipse最新最简最详细安装教程

Eclipse最新最简最详细安装教程 1、首先打开官方地址(见下面) Eclipse官方下载地址:点击打开官方链接 2、点击红箭头指向的红框中的“Download Packages”。 3、出现新的页面之后往下翻找到并点击红箭头指向的红色矩形的部分Eclipse IDE f…

Eclipse安装教程 ——史上最详细安装Java Python教程说明

Eclipse安装教程 ——史上最详细安装Java&Python教程说明 (Win7_64位 Eclipse 64位 JDK_8u131_64位 python2.7.8 PyDev5.7.0插件) 适用操作系统:Win7 64位 所需要的软件以及插件:Eclipse 64位、JDK_8u131_64位、python2.7.8、PyDev5.7.0插件 …

Eclipse 教程

Eclipse的使用 前言一、Eclipse的介绍二、下载与安装1.下载2.安装 三、基本使用步骤1.启动2.创建项目3. 创建包及class文件 四、一些使用技巧1. 快速生成构造方法2.自动补全3. 快速生成get-set方法4. 查找某变量所在位置,或者替换某变量的变量名5. 快速导入包6.合理利用eclipse…

视频消重处理,视频原创怎么做,视频处理软件

现在的新传媒行业,有很多小伙伴搬过来的视频都不太清楚怎么把它变成自己的视频,也就是消重,现在有一款工具可以达到这种消重原创,像某头条通过率在96%以上了 这是一个视频消重处理软件,现在给大家说说功能和页面 1&…

视频合成-moviepy

最近发现,公司在进行视频合成的时候,部分业务不是在客户端进行合成,而是在后端进行合成,让我有点惊讶,立马问开发要了代码,想要看看到底在后端如何处理的。 学习文档:https://blog.csdn.net/uc…

计算机图像视频处理

计算机图像视频处理 计算机视觉概论 计算机视觉概念 计算机图像处理,也即数字图像处理(Digital Image Processing), 是指将图像信号转换成数字信号并利用计算机对其进行处理的过程,是通过计算机对图像进行去除噪声、增强、复原、分割、提取…

视频处理

1.视频处理 在视频压缩前后,对视频图像质量增强的操作视频编解码系统输出的图像主观质量不仅与压缩算法的性能有关,还受视频处理的影响压缩之前对视频的处理称作预处理(Pre-processing)压缩之后对视频的处理称作后处理&#xff0…