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)