如何用Python画一个布林通道,用布林策略回测股票数据-上篇!

Python股票量化学习(3)——简单的策略回测 如上图所示,2022年8月31日,交易指令为1,全仓买入,狠狠的干了一票。再看'total'列,账户总资产从最初的100000元变成了现在的560000+元(当然我没有考虑交易费用等等之类因素)。此策略基于布林通道,当股价低于布林通道下轨线且持仓为0时,以下轨线价格全仓买入(不关心风险,反正也不要本钱)。首先,从MySQL数据库读取已经下载好的股票历史数据,我用的库名是stock_databases。有了布林通道的数据后,就可以通过比较最高价、最低价与上下轨的大小来确定交易信号。股市有风险,入市须谨慎! 阅读详情

我的小册:(小白零基础用Python量化股票分析小册) ,原价199,限时特价39,满100人涨10元。

大家好,我们是菜哥!

前面我们讲双均线策略,今天我们来说一下非常有名的布林策略,布林策略是在布林通道的基础上设计的。布林通道(Bollinger Bands)是由美国金融分析师约翰·布林(John Bollinger)在1980年代初期发明的。

1. 什么是布林通道

约翰·布林是一位知名的技术分析师,他创造了布林通道这一指标,以帮助交易者理解股票或其他金融资产的价格波动性和市场趋势。布林通道通过结合移动平均线和标准差的概念来分析股票数据。

它有三条线组成:

中线(Middle Band):通常是某个特定周期内的简单移动平均线(SMA)。例如,20日布林通道的中线是20日的移动平均线。

上线(Upper Band):通常是中线之上的两个标准差。这条线代表了市场价格的上限。

下线(Lower Band):通常是中线之下的两个标准差。这条线代表了市场价格的下限。

2. 布林通道的核心思想

布林通道的核心思想是,当价格偏离中线过远时,市场可能处于超买或超卖状态。特别是当价格触及上线或下线时,交易者可能会考虑买入或卖出。

  • 价格接近上线:表明市场可能过热,面临回调或反转的可能性。

  • 价格接近下线:表明市场可能过冷,可能会出现反弹。

比如我们在股票软件上长长看到这样的布林通道

6201065c5b5ce4fa7097c5214c6bfa44.png

3. 用Python画出布林通道

下面我们用python代码来画出来并进行回测数据,首先还是引入股票的数据,我这边有一份五粮液的10几年的数据,大概长这样:

4c45e39707e57d1a568255558b4a9390.png

拿到数据之后,我们需要用pandas读取数据然后进行分析,构造出布林通道

a5dc3b93e59972ecb8d6ab731615e78c.png

布林通道只要有3条线,第一条是一个中轨(这个其实就是20日均线),然后计算上下轨道,上轨用中轨加上一个标准差的倍数,下轨是中轨减去一个标准差的倍数。

布林的核心思想就是价格会遵循正态分布的假设,在正态分布中,约68%的数据值位于均值(中线)的一个标准差范围内,约95%的数据值位于两个标准差内,约99.7%在三个标准差内。因此,当价格触及或超出这些范围,它可能表示异常或极端的市场情况。我们看下面这个图:

b0317b29cdd8f675e325410866f2993c.png

可以从上面的图中看到,我们的价格都在2个标准差之间的,所以为啥我们的上下轨道都是用2*std 。

知道这个原理之后,我们就可以开始画布林通道了,画布林有很多方法比如用maplotlib ,这个我们用pyecharts来画,主要是比较好看(我们的量化小册里面的内容都是用pyechats画的)。

4d8699013614bcb061b52e8f3d9e504a.png

类似于均线的画法,我们首先要创建一个line(),前面我们已经计算出了布林上轨的数据data['upper'],所以就可以直接使用画出来。line_upper是一个折线的类,然后我们需要在这个折线图上增加x和y轴的坐标,在x轴其实就是我们的股票的日线数据,y轴就是上轨的数据,其他的都是一些样式的设置。同理,我们可以画出中轨和下轨的折线图,最后进行叠加,把几条线都放在一个图上。

16cc1bfcc05dd622ed49736d6c1ee7f9.png

我们把布林线图和K线重叠,然后建一个网格(Grid)对象,用于布局图表,设置K线在网格里面的位置和大小,最后我们开看一下我们画的成果:

cce2f4387948af2aa0167b8131c83c71.png

4. 检查对比数据

然后我们和股票上面的软件对比一下,看看我们的数据是否计算都对的:

09a9f8d6a133579dbd34070a3da5af7a.png

这个是某股票软件上的布林的线,我们可以看到2023-02-21号那天的布林上轨是216.77, 下轨是200.24,跟我们计算的几乎一样(我们python画出来的是216.769, 200.241) ,如果觉得不对还可以随机再找几个日期进行核对一下。

好了,上面我们已经成功的画出了布林通道,下面我们就要开始设计布林策略,然后画出交易的信号,然后进行回测看看普通的布林策略到底能赚多少钱。

限于篇幅,我们下一篇继续讲!有兴趣的同学也可以加入我们的量化小册群,一起进步!


最后推荐一下我们团队写的量化小册的内容,35篇内容!从Python安装,入门,数据分析,爬虫解释,爬取股票基金的历史+实时数据,如何写一个简单量化策略,策略回测,如何看资金曲线统统都有介绍!非常超值!

欢迎订阅:原价199 早鸟价39(满100人涨10元)。现在的价格非常非常低,只要2杯奶茶,就可以终身订阅+全套课程源码,还有永久陪伴群。48小时无理由退款,放心食用!

496deb60b317b54094894bc22a1c1300.png

Python实现布林带策略 布林带策略 原理 这个策略的原理很简单,就是当股价突破你的上轨线时,则卖出;当股价突破你的下轨线,则买入。中轨线为周期内均值线。但是此策略不适合单独使用,若股票最近涨停或者跌停,很快就会突破你的上下轨线。且多次涨停或跌停,会造成方差过大,上下轨线的区间过大。 实现策略 中轨线一般是周期内的均值(一般是20日),可以是收盘价的均值,也可以日最高点,日最低价来计算均值。此处我采用收盘价均值。上轨线为均值加上固定倍数的标准差,下轨线为均值减去固定倍数的标准差。固定倍数一般取2。也可以是其他值。Python实现主要 阅读详情

相关推荐

Python 金融量化 道路突破策略(唐奇安道路突破策略&布林带通道及其市场风险)

midBBand[i] = np.nanmean(tsPrice[i-(period-1):(i+1)]) # nanmean忽略Nan计算均值sigma[i] = np.nanstd(tsPrice[i-(period-1):(i+1)]) # nanstd忽略Nan计算标准差🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。🍅 面试题库。

m0_60635176的博客 1072

用Python的Pandas绘制股票唐奇安通道!

1 计算并绘制唐奇安通道 唐奇安通道是由上阻力线、下支撑线和中心线这三条线组成。 上阻力线 = 过去N天的最高价 下支撑线 = 过去N天的最低价 中心线 =(上线 + 下线)除以 2 在实际的分析场景里,N的取值一般是20,在如下的DisplayDonChannel.py范例中,就用20天为周期,来计算并绘制唐奇安通道。 01 # coding=utf-8 02 import pandas as pd 03 import matplotlib.pyplot as plt 0.

爬遍所有网站 1553

akshare 布林通道策略

import datetime import pandas as pd import backtrader as bt import matplotlib.pyplot as plt from datetime import datetime import matplotlib import akshare as ak %matplotlib inline class Boll_strategy(bt.Strategy): #自定义参数,每次买入1800手 params=(('size'.

qq_26742269的博客 5338

Python绘制BOLL布林线指标图

股票技术面分析中常用的指标BOLL布林带指标的图形绘制,使用Python的matplotlib库。

zorchp 1万+

【Python】动量策略回测(日内高频数据)

布林通道动量策略日内Tick级数据回测方案

m0_74961681的博客 1970

【量化笔记】通道突破策略

唐奇安通道 唐奇安通道刻画 通道上界=过去20日内的最高价 通道下界=过去20日内的最低价 中轨道计算公式: 中轨道=通道上界+通道下界2中轨道=\frac{通道上界+通道下界}{2}中轨道=2通道上界+通道下界​ # 使用中国联通的股票数据来刻画唐奇安通道 import pandas as pd import numpy as np import matplotlib.pyplot as plt ChinaUnicom=pd.read_csv('ChinaUnicom.csv') ChinaUnicom.

yao09605的博客 5077

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

Boll(布林线)指标 布林线是一种金融衍生品价格走势图中常用的技术指标。通常,在图形上表现为上中下三条线,其中,上下两条线可以分别看成是压力线和支撑线,中间的线是N日的移动均线,通常情况下,价格的走势会在上下两条线之间。Boll指标的计算如下: 布林通道策略 布林通道策略源码分析 1、完整源码 2、策略参数与变量 3、策略执行逻辑 ...

敲代码的quant的博客 9497

【Fluent】太阳辐射模型—Solar Ray Tracing

一、引言Fluent提供了一个太阳能负载模型,可用于计算进入计算域的太阳光线的辐射效应。该模型可以分为:太阳光线追踪和太阳辐照。其中太阳辐照需要使用DO或MC模型,直接向辐射模型提供外光束方向和强度参数。太阳光线追踪不限制辐射模型,可以独立于辐射方程使用,甚至可以在辐射模型off的情况下使用。本文主要介绍太阳光线追踪模型。该模型非常适用于以下领域汽车气候控制 (ACC) 应用建筑物中的人体热舒适建模应用该模型使用着色算法进行太阳光线追踪。光线会透过半透明的面加载在照射面上。

a5567899的博客 7588

Python量化系列-用布林策略买五粮液能赚多少钱?

????我的小册 40章教程:(小白零基础用Python量化股票分析小册) ,原价199,早鸟价39,满100人涨10元。这个是我们小册的部分内容,分享给大家,有兴趣的同学可以看看。前面我们讲了用Python如何画一个布林通道(如何用Python画一个布林通道,用布林策略回测股票数据-上篇!)讲了布林通道的原理和如何画一个布林通道,既然明白布林通道的原理跟正太分布有关,那么这篇我们就来讲一下布林的策略,...

cainiao_python的博客 1488

12.工具高级参数CogCalibNPointToNPointTool

CogCalibNPointToNPointTool是一种多点2D坐标校正工具,用于将图像像素坐标转换为物理世界坐标。该工具通过两组点(图像坐标点和物理坐标点)计算最佳转换关系,并将结果保存供后续使用。操作步骤包括获取图像、添加坐标点对、计算转换参数。校正结果会显示平移、缩放、旋转等参数及RMS误差值,较大的误差可能表明点位置不准确或自由度不足。该工具广泛应用于机器视觉领域,通过9点标定等案例可验证坐标转换的准确性并优化参数设置。

204

【读代码】深入解析Ragas:RAG应用效果评估最好的工具

Ragas是由Exploding Gradients团队开发的专业LLM应用评估框架,通过自动化测试和量化指标帮助开发者构建可靠的AI系统。# 典型架构模块 ├── metrics # 50+评估指标实现 ├── testset # 测试集生成系统 ├── embeddings # 多模态嵌入支持 ├── integrations # 主流框架集成 ├── optimizers # 遗传算法优化器 └── experimental # 前沿功能实验区。

kakaZhui的博客 850

如何通过Python实现布林线策略,Python实现布林线策略能赚钱吗

Python实现的布林线策略,根据股价移动平均线及标准差确定买卖时机。但策略效果受多因素影响,实际运用要综合考量。

股票程序化接口 1536

【批处理脚本】-0.1-如何运行批处理bat文件

如何运行批处理bat文件

「汽车电子助手」的博客 1585

Python实现布林带策略完整代码

量化交易不是印钞机,我见过太多人以为写个策略就能躺着赚钱。持续维护策略根据市场变化调整参数严格的资金管理如果你真想走这条路,建议先用模拟盘跑3个月。我这边开户就送百万级模拟金,足够你折腾了。记住,在股市里活得久比赚得快重要得多。

wencaitouzi的博客 1410

cefshap(C#)定义浏览器的右键菜单

菜单效果:复制(自带),搜索文本,打开链接,复制链接,刷新,检查,关于 public class MenuHandler : IContextMenuHandler { //public event Action<string> PopupRequest; void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrows

无线智能模块 可视DIY智能专家 1705

RT-DETR改进策略【卷积层】| CVPR2025 GBConv轻量门控瓶颈卷积 低秩瓶颈降参 + 门控聚焦形态,强效捕捉纤细目标

裂缝形态不规则、纹理纤细,传统卷积参数大、计算冗余,且无法动态聚焦裂缝形态;背景噪声强易干扰特征提取,需要轻量且能自适应聚焦裂缝形态的卷积单元,因此提出轻量门控瓶颈卷积 GBC。

Limiiiing的博客 140

用 Python 在股票交易中实现布林带策略

布林带(BOLL)指标是美国股市分析家约翰·布林根据统计学中的标准差原理设计出来的一种非常简单实用的技术分析指标。一般而言,股价的运动总是围绕某一价值中枢(如均线、成本线等)在一定的范围内...

Python中文社区 2421

高并发网络爬虫实践(欧赔、亚盘、大小指数数据爬取)

本文通过对一个实战化的高并发网络爬虫脚本进行深度模块化剖析,展示了如何构建一个兼具性能、健壮性和易用性的数据采集工具。核心设计思想总结模块化与单一职责: 每个函数都专注于解决一个特定问题,无论是网络请求、数据解析还是文件操作。并发与效率: 通过ThreadPoolExecutor实现了高效的并发抓取,极大缩短了总耗时。健壮性与容错: 强大的重试机制、细致的异常处理和线程安全的文件写入,保证了程序在复杂网络环境下的稳定运行。断点续传: 精心设计了进度记录与恢复机制,使得大规模抓取任务变得轻松可控。

猫敷雪 481

python量化交易心得_Python量化交易之“凯特纳通道”突破策略!

点及财经,股票期货专业投机者。前言说起通道,我想大家可能对海龟通道(唐奇安通道)、布林线通道已经耳熟能详了。布林通道的计算原理就是均线加减N倍ATR。那么今天再给大家介绍一个通道算法,那就是凯特纳通道。凯特纳通道的计算方法与布林线的计算逻辑有相似之处。他们都是以MA为中轨,然后加减n倍波动率。其唯一区别,那就是加减的波动率计算方式不一样。布林线算法的上下轨是均线加减n倍标准差。而凯特纳通道上下轨,...

weixin_39718888的博客 1411

2026华为OD机试(C语言)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,C语言实现。

MISAYAONE的博客 11万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

用Python实战BOLL布林线:从数据获取到策略回测的保姆级教程(附茅台股完整代码)

本文提供了一份详细的Python实战教程,教你如何使用BOLL布林线指标进行量化投资分析。从数据获取、指标计算到策略回测,全程以贵州茅台股票为例,包含完整代码实现和可视化分析,帮助投资者掌握量化交易的核心技术。

weixin_26968079的博客 512

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

上一篇: 太污了,只有程序员才会秒懂!!!
下一篇: ChatGPT不好用?记住这些prompt核心技巧,提效80%
菜鸟学Python
博客等级 码龄9年 8062粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值