c#.net开发金融行情分析软件k线图蜡烛图之布林线指标计算
c#.net开发金融行情分析软件k线图蜡烛图之布林线指标计算
首先我们看一下,百度关于布林线指标的计算公式
在所有的指标计算中,BOLL指标的计算方法是最复杂的之一,其中引进了统计学中的标准差概念,涉及到中轨线(MB)、上轨线(UP)和下轨线(DN)的计算。另外,和其他指标的计算一样,由于选用的计算周期的不同,BOLL指标也包括日BOLL指标、周BOLL指标、月BOLL指标年BOLL指标以及分钟BOLL指标等各种类型。经常被用于股市研判的是日BOLL指标和周BOLL指标。虽然它们的计算时的取值有所不同,但基本的计算方法一样。 以日BOLL指标计算为例,其计算方法如下:
日BOLL指标的计算公式
中轨线=N日的移动平均线
上轨线=中轨线+两倍的标准差
下轨线=中轨线-两倍的标准差
日BOLL指标的计算过程
1)计算MA
MA=N日内的收盘价之和÷N
2)计算标准差MD
MD=平方根N日的(C-MA)的两次方之和除以N
3)计算MB、UP、DN线
MB=N日的MA
UP=MB+2×MD
DN=MB-2×MD
各大股票交易软件默认N是20,所以MB等于当日20日均线值
在股市分析软件中,BOLL指标一共由四条线组成,即上轨线UP 、中轨线MB、下轨线DN和价格线。其中上轨线UP是UP数值的连线,用黄色线表示;中轨线MB是MB数值的连线,用白色线表示;下轨线DN是DN数值的连线,用紫色线表示;价格线是以美国线表示,颜色为浅蓝色。和其他技术指标一样,在实战中,投资者不需要进行BOLL指标的计算,主要是了解BOLL的计算方法和过程,以便更加深入地掌握BOLL指标的实质,为运用指标打下基础。
笔者对上述计算公式研究了一下,还是看不懂,踩坑了很久,才弄了代码,代码并不复杂,只是逻辑上容易理解错误。
public void GetBollUp(){List<float> klineBollUp = new List<float>();List<float> klineBollMiddle = new List<float>();List<float> klineBollDown = new List<float>();
///首先根据公式,计算一系列ma,存放在列表中,取值N 为28日for (int i=0;i<allcount;i++){float ma28 = 0;if ((i + 28) < allcount){for (int j = i; j < (i + 28); j++){ma28 += klineAllClose[j];}ma28 /= 28;klineBollMiddle.Add(ma28);}else{break;}}
//按照公式,循环计算 上轨,下轨值for (int i = 0; i < allcount; i++){float ebiaozhuncha = 0;if ((i + 28) < allcount){for (int j = i; j < (i + 28); j++){try{//方差和计算float linshiflostdown = klineAllClose[j] - klineBollMiddle[i];ebiaozhuncha += linshiflostdown * linshiflostdown;}catch(Exception ){}}//方差均值ebiaozhuncha /= 28;///按照公式, 上轨取值,ma+2*平方根(方差),下轨取值,ma-2*平方根(方差)klineBollUp.Add(klineBollMiddle[i] + 2*(float)Math.Sqrt(ebiaozhuncha));klineBollDown.Add(klineBollMiddle[i] - 2* (float)Math.Sqrt(ebiaozhuncha));}else{break;}}//判断图表可呈现区域的 数量int kejiandatecount = klineXoint.Length;int kejiandabollcount = klineBollUp.Count;int kejiancount = 0;if(kejiandatecount< kejiandabollcount){kejiancount = kejiandatecount;}else{kejiancount = kejiandabollcount;}pointFsUp = new PointF[kejiancount];pointFsMiddl = new PointF[kejiancount];pointFsDown = new PointF[kejiancount];if (kejiandatecount > 0 && kejiandabollcount>0){///返回图表可见数量for (int i = 0; i < kejiancount; i++){///返回一系列计算好的 上轨,中规,下轨 点的位置 pointf,如果右侧是价格,则要根据价格,计算y的像素位置if (kejiandatecount < kejiandabollcount){pointFsUp[i] = new PointF(klineXoint[kejiancount - i - 1], (highestprice - klineBollUp[i]) / tickprice);pointFsMiddl[i] = new PointF(klineXoint[kejiancount - i - 1], (highestprice - klineBollMiddle[i]) / tickprice);pointFsDown[i] = new PointF(klineXoint[kejiancount - i - 1], (highestprice - klineBollDown[i]) / tickprice);}else{pointFsUp[i] = new PointF(klineXoint[kejiandatecount - i - 1], (highestprice - klineBollUp[i]) / tickprice);pointFsMiddl[i] = new PointF(klineXoint[kejiandatecount - i - 1], (highestprice - klineBollMiddle[i]) / tickprice);pointFsDown[i] = new PointF(klineXoint[kejiandatecount - i - 1], (highestprice - klineBollDown[i]) / tickprice);}}}}
效果图:
c#.net开发金融行情分析软件k线图蜡烛图之布林线指标计算相关推荐
- 【用JS自制表格软件玩数据】9. 自制三维 K线图 蜡烛图
画三维 K线图 蜡烛图 概述 效果图 正面 正面近景 鸟瞰 侧面 近观俯视 构建一个类 初始化环境 设置环境背景 初始化摄像机 设置相机的位置 设置相机镜头的位置 初始化场景 创建坐标系 蜡烛图的特点 ...
- 股票图,K线图,蜡烛图,高仿雪球股票
股票图,K线图,蜡烛图,高仿雪球股票,教你一步步实现股票图 项目地址 讲K线图之前,先来一个引言. 作为Android开发者需要立即提升的三项技能: 分别是:UI,网络,线程,而UI又分:布局,绘制, ...
- 股票 K线图 蜡烛图
资料1 日K线图中: 在日K线图中一般白线.黄线.紫线.绿线依次分别表示:5.10.20.60日移动平均线,但这并不是固定的,会根据设置的不同而不同,比如你也可以在系统里把它们设为5.15.30.60 ...
- Python量化投资——mplfinance最佳实践:动态交互式高级K线图(蜡烛图)【源码+详解】
用mplfinance实现全功能动态交互式K线图 手把手用`python`+mplfinance实现高级K线图 ` mplfinance`的基本K线图 目标 实现自定义风格和颜色 图表尺寸调整.相关信 ...
- Python量化投资——mplfinance实现全功能动态交互式K线图(蜡烛图)【源码+详解】
用python实现全功能动态交互式K线图 手把手用`python`一步步实现动态交互式K线图 ` mplfinance`的基本K线图 目标 实现自定义风格和颜色 图表尺寸调整.相关信息的显示 添加完整 ...
- IOS端K线系列之K线-绘制蜡烛图
k线系列目录 查看目录请点击这儿 补充知识 K线虽然看上去复杂,但仔细观察就会知道几乎所有的k线无非由以下几种组成: (1)蜡烛 (2)OHLC (3)线段 (4)带状 (5)圆形 除此之外还有其他的 ...
- 【python】绘制箱体图/蜡烛图/K线图
1. 单类别图 plt.figure(figsize = (15,8)) sns.boxplot(x="your_column1", y="your_column2&qu ...
- python绘制k线图(蜡烛图)报错 No module named 'matplotlib.finance
使用python绘制蜡烛图报错:No module named 'matplotlib.finance 部分版本移除了finance模块,需要独立安装 安装命令:pip install git+htt ...
- 主要技术指标简介_期货常用技术指标(五)布林线
今天写布林线. 一.布林线的含义 BOLL即布林线指标,又称为市场通道线,是研判行情价运动趋势的一种中长期技术分析工具.一般而言,行情的运动总是围绕某一价值中枢(如均线.成本线等)在一定的范围内变动, ...
- 布林通道参数用20还是26_boll参数20还是26好 股市的布林线的三根线是什么
布林线指标的一般用法在许多书上都有讲述,这里就不多讲了.我主要想讲一讲布林线指标对行情的预告作用,虽然,像KDJ.MACD等指标可以通过低位向上交叉来作为买入讯号或通过高位向下交叉来作为卖出讯号,但这 ...
最新文章
- 在winform程序中启动wpf窗体
- 【commons】Bean工具类——commons-beanutils之BeanUtils
- js导出的xlsx无法打开_vue将数据导出为excel文件就是如此简单
- systemd 开机无法启动privoxy
- android系统(3)---dumpsys 知识学习
- web前端基础知识:html布局如何应用?
- matlab输出复数值到.txt文件中
- LoadRunner教程(16)-LoadRunner SLA分析
- Direct Sparse Visual-Inertial Odometry using Dynamic Marginalization
- css设置字体的位置
- 5G风起,CDN边缘计算将乘风破浪
- 基于jquery读取csv
- App性能优化:内存优化
- 圣诞邀请助力活动H5系统开发
- 【英语语法入门】第41讲 原形不定式(2)感官动词
- Fluent最全complied错误原因分析:Error: The UDF library you are trying to load (libudf) is not compiled for
- (Fabric 学习三)Fabric2.2 多机部署 使用fabcar链码
- 前端页面HTML表格生成EXCEL下载
- 一不小心做出四皇冠淘宝店,她在小类目里找到大商机 | 菁英汇故事
- 抖音作品怎么关联热点?怎样追踪实时热点
热门文章
- 万能网页视频下载教程
- 30个很棒的Photoshop技巧和窍门可帮助您提高计算机图形技能
- 利用win自带功能让处于同一局域网的两个电脑之间互传文件(速度和本地磁盘间互传相同)
- 论文阅读之 Person Re-identification using Heterogeneous Local Graph Attention Networks
- html5 css 插入视频,HTML+CSS入门 HTML网页中插入视频各种方法
- Python str replace方法
- 概率统计Python计算:双正态总体均值差的双侧区间估计
- 时空数据生成对抗网络研究综述(下)
- html5快捷键保存,保存的快捷键是什么?有了快捷键保存太方便了
- 【大数据实战】招聘网站职位分析