移动平均线是由美国著名投资专家 Joseph E.Granville 于20世纪中期提出的,全称 Moving Average,简称MA,它是用统计分析的方法,将一定时期内的市场价格加以平均,然后把不同时间点的平均值连接起来的一条曲线。变色均线是通过一定的编程技巧,在均线上升、下降、走平时用不同的颜色来显示,视觉上形成一种均线随市场价格涨跌而变色的效果。
均线的变色,只是一种视觉、颜色上的优化,它通常是不改变均线本身的算法的。不但是均线,其它指标也同样可以通过编程实现视觉上的变色效果的。
上图是一根变色移动平均线MA指标,在图表中,可以看出它有红、绿、黄三种颜色,观察数据窗口,就会发现它有三个数值,也就是说这条均线它有三个指标缓冲区(SetIndexBuffer)。或者简单的理解为它有三条指标线吧,为了便于理解,下面也就说指标线吧。
这就是变色均线的编程原理,它需要几种变色,就定义几条指标线,一种线对应一种颜色,然后根据条件比较来运行显示哪条线,在显示一种颜色的线的时候,其它的颜色的线让它等于空值(EMPTY_VALUE),说起来可能有些绕,那就还是那上面图表中的均线来说。
1、定义数组,为了便于区分,这里直接在数组名称中加入颜色字母:
double RedMa_Buffer[];//红线
double LimeGreenMa_Buffer[];//绿线
double YellowMa_Buffer[];//黄线
2、在初始化函数int OnInit(void)中,捆绑好对应的指标缓冲区(SetIndexBuffer)。
3、在技术指标主函数int OnCalculate(……)中,三条线默认都是等于设定周期的均线值,然后比较两个单位的均线值,如果上升,那将绿线赋值空值(EMPTY_VALUE);如果下降,那将红线赋值空值(EMPTY_VALUE);其它情况将红线、绿色赋值空值(EMPTY_VALUE)。就会实现上图的效果。
上面只是简单的说说变色均线指标的编程原理,它是通过在图表中显示不同颜色的指标线来实现的,实际编程中可以基于这种原理进行演变。