自己做量化交易软件(5)通通量化中创作的布林指标BOLL线
自己做量化交易软件(5)通通量化中创作的布林指标BOLL线
我们读者下载了通通量化演示框架的源代码。在这个代码中没有发现BOLL指标线的算法和绘图函数,我在这篇文章中,假设用户自己创作了新指标BOLL,如果增加到通通量化软件中。
另外本次上传代码都是演示框架代码,我们后面升级改进后,还会上传更新的源代码。
BOLL指标是根据统计学中的标准差原理设计出来的一种非常简单实用的技术分析指标,BOLL指标又叫布林线指标,是研判市场运动趋势的一种中长期技术分析工具。
BOLL是利用“价格通道”来显示市场价格的各种价位,当市场波动很小,处于盘整时,价格通道就会变窄,这可能预示着市场的波动处于暂时的平静期;当市场价格波动超出狭窄的价格通道的上轨时,预示着市场的异常激烈的向上波动即将开始;当市场价格波动超出狭窄的价格通道的下轨时,同样也预示着市场的异常激烈的向下波动将开始。
BOLL指标一共由三条线组成,即上轨线UPPER 、中轨线MID、下轨线DOWN。计算公式如下,N为可变参数。
N:=26;
MID : MA(CLOSE,N);
UPPER: MID + 2*STD(CLOSE,N);
DOWN: MID - 2*STD(CLOSE,N);
一、创建通用STD函数。
首先遇到的问题,在python2和python3中,std()函数的方法不同,为了能够在python2和python3上都能使用。
你可以参考HP_lib.py中的G_MA(df,n)的定义,修改为G_STD(df,n)。
G_MA()的源代码如下。
#通用MA计算
def G_MA(Series,n):G_pyver=int(platform.python_version()[0:1])G_ma=Noneif G_pyver==2:G_MAstr='pd.rolling_mean(Series,n)'G_ma=eval(G_MAstr)else :G_MAstr='Series.rolling(window=n,center=False).mean()'G_ma=eval(G_MAstr)return G_ma
我们仿照出G_STD()函数如下,写到HP_lib.py文件中。
#通用STD计算
def G_STD(Series,n):G_pyver=int(platform.python_version()[0:1])G_ma=Noneif G_pyver==2:G_MAstr='pd.rolling_std(Series,n)'G_ma=eval(G_MAstr)else :G_MAstr='Series.rolling(window=n,center=False).std()'G_ma=eval(G_MAstr)return G_ma
二、创建布林函数BOLLX(df, n)
在文件HP_lib.py中,G_STD(Series,n)定义后面,建立自定义BOLLX()函数,根据上面BOLL指标原理写出的代码如下:
#自定义BOLL指标
def BOLLX(df, n): MA = G_MA(df['close'], n) MSD=G_STD(df['close'], n) B1 = pd.Series(MA, name = 'BOLL_m') df = df.join(B1) u=MA+2*MSDd=MA-2*MSDB1 = pd.Series(u, name = 'BOLL_u') df = df.join(B1) B2 = pd.Series(d, name = 'BOLL_d' ) df = df.join(B2) return df
三、创建BOLL指标绘图函数
在文件HP_draw.py中增加布林指标绘图函数draw_BOLL(ax1,days,x),源代码如下。
def draw_BOLL(ax1,days,x):rsiCol = '#c1f9f7'posCol = '#386d13'negCol = '#8f2020'df=mylib.BOLLX(days,x)ax2 = plt.subplot2grid((7,4), (5,0), sharex=ax1, rowspan=2, colspan=4, axisbg='#07000d')fillcolor = '#00ffe8'ax2.plot(df.date.values, df.BOLL_u.values, color=rsiCol, lw=2)ax2.plot(df.date.values, df.BOLL_m.values, color=posCol, lw=2)ax2.plot(df.date.values, df.BOLL_d.values, color=rsiCol, lw=2)ax2.plot(df.date.values, df.close.values, color='yellow', lw=3)plt.gca().yaxis.set_major_locator(mticker.MaxNLocator(prune='upper'))ax2.spines['bottom'].set_color("#5998ff")ax2.spines['top'].set_color("#5998ff")ax2.spines['left'].set_color("#5998ff")ax2.spines['right'].set_color("#5998ff")ax2.tick_params(axis='x', colors='w')ax2.tick_params(axis='y', colors='w')ax2.grid(True, color='r')plt.ylabel('BOLL', color='w')ax2.yaxis.set_major_locator(mticker.MaxNLocator(nbins=6, prune='upper'))return
四、在主窗口中增加布林线命令
打开文件HP_view.py
找到代码: bookChosen[‘values’] = (‘MACD’, ‘KDJ’,’RSI’,’OBV’)
修改为:bookChosen[‘values’] = (‘MACD’, ‘KDJ’,’RSI’,’OBV’,’BOLL’)
找到2处如下代码:
if G_index=='KDJ' :mydraw.draw_KDJ(ax1,days,9,3,3)if G_index=='MACD' :mydraw.draw_MACD(ax1,days,12,26,9)if G_index=='RSI' :mydraw.draw_RSI(ax1,days,6,12,24)if G_index=='OBV' :mydraw.draw_OBV(ax1,days,6,12)
修改为:
if G_index=='KDJ' :mydraw.draw_KDJ(ax1,days,9,3,3)if G_index=='MACD' :mydraw.draw_MACD(ax1,days,12,26,9)if G_index=='RSI' :mydraw.draw_RSI(ax1,days,6,12,24)if G_index=='OBV' :mydraw.draw_OBV(ax1,days,6,12) if G_index=='BOLL' :mydraw.draw_BOLL(ax1,days,26)
运行主程序,选择BOLL指标线,运行结果图形如下。
通通股票量化分析框架采用模块化设计,每个模块存放在不同的py文件中。
通通股票量化分析框架下载:
https://download.csdn.net/download/hepu8/10668509
运行python环境,可以在我的网盘下载绿色python软件,不用安装设置,解包就能运行,已经安装了常用软件包。用户根据自己需要选择所需版本,hpython36是python3.6版本,hpython27是python2.7。
hpyton27下载网盘: https://pan.baidu.com/s/14TAGHiJzommKKIA9n2iGiw
hpyton36下载网盘: https://pan.baidu.com/s/112_IwCJg49c2P4TU3PFomw
用户不需要我们提供的绿色版本,也可参考下面我写的文章,重新构建自己的python环境。
自己做量化交易软件(1) 免费量化分析环境安装使用
https://blog.csdn.net/hepu8/article/details/81866694
自己做量化交易软件(5)通通量化中创作的布林指标BOLL线相关推荐
- 自己做量化交易软件(6)通通量化历史交易回测设计1
前面我们介绍的通通量化软件的一些程序设计. 自己做量化交易软件(1)通通量化分析环境安装使用 https://blog.csdn.net/hepu8/article/details/81866694 ...
- 自己做量化交易软件(9通通量化框架的雏形建立
自己做量化交易软件(9通通量化框架的雏形建立 前面我们做了各种学习尝试,现在开始逐步搭建一个通通量化框架.我做了一部分工作,但是很多朋友有python知识,也想自己能快速搭建程序.因此我放出了全部的开 ...
- 自己做量化交易软件(10)通通量化AI框架的数据获取与格式
自己做量化交易软件(10)通通量化AI框架的数据获取与格式 我与2018年07月08日开始学习python编程和设计通通量化AI框架,到昨天晚上2018年10月30日,基本框架已经完成.能够显示K线图 ...
- 自己做量化交易软件(12)通通量化AI框架的使用1-与通通AI对话聊天
自己做量化交易软件(12)通通量化AI框架的使用1-与通通AI对话聊天 到今天为止,通通AI量化框架基本完成了.下来要做的工作是进行完善,另外打算做macbook版本软件,我对macbook不熟悉,有 ...
- 自己做量化交易软件(1)通通量化分析环境安装使用
自己做量化交易软件(1) 通通量化分析环境安装使用 (独狼荷蒲 QQ:2775205) 一.安装python Anaconda包含有超过720个关于科学,数据,工程和数据分析的Python和R包,如果 ...
- 自己做量化交易软件(4)通通量化分析框架构成2
自己做量化交易软件(4)通通量化分析框架构成2 通通股票量化分析框架采用模块化设计,每个模块存放在不同的py文件中. 我们接着上一篇介绍. 五.基础窗口画面框架 HP_view.py HP_view. ...
- 自己做量化交易软件(3)通通量化分析框架构成1
自己做量化交易软件(3)通通量化分析框架构成1 通通股票量化分析框架采用模块化设计,每个模块存放在不同的py文件中. 通通股票量化分析框架下载: https://download.csdn.net/d ...
- 自己做量化交易软件(15)通通量化AI框架的选股器设计1
自己做量化交易软件(15)通通量化AI框架的选股器设计 前面我们学会了单只股票的分析,回测功能.下面我们开始设计选股器和量化分析的功能. 在设计选股器之前,我们先要学习一些python基本操作技巧. ...
- 自己做量化交易软件(11)通通量化AI框架的核心--框架结构
自己做量化交易软件(11)通通量化AI框架的核心–框架结构 既然我说了要开源通通量化AI框架,就算大家得到了代码,也不清楚怎么去改进和修改.因此我在最后完善框架的空闲,逐步介绍框架的核心设计思想,大家 ...
最新文章
- 关于poll机制应用及驱动
- 如何改android device monitor文件的权限
- 【Android 插件化】插件化简介 ( 组件化与插件化 )
- TCP/IP总结(3)数据包
- BZOJ3738 : [Ontak2013]Kapitał
- Python学习---入门导学篇
- gitlab项目中启用或禁用 GitLab CI/CD Pipeline
- CentOS部署×××
- WPF使用中知识点总结一
- 2020-12-30 PMP 群内练习题 - 光环
- FPGA UART串口协议
- MPU6050数据处理分析
- 华为防火墙IPSec虚拟环境配置
- 微信小程序制作水印相机
- 机器学习在信用评分卡中的应用
- 【题解】AtCoder ARC128D - Neq Neq
- tesstwo深度优化_十年磨一剑:自主可控国产微观交通仿真软件TESS NG研发之路
- 计算机上无线网络开关在哪里,台式电脑wifi开关在哪
- 代码Review工具upsourse的部署
- MLAPP————第十三章 稀疏线性模型