本文探讨的是一位网友的思路,请留言函数的配合与应用,请看留言截图:
网友的留言
(资料图片)
留言的思路是说: 编写一个彩色布林线(参数26,2)
要求:
布林线中轨线趋势向上; 股价突破中轨线形成金叉,该日k线显示黄颜色;3、5日均线突破中轨线或者5日均线大于中轨线时股价突破5日均线形成金叉,日k线显示为紫色;
4、股价突破上轨线,日k线显示深红色。
、思路步骤1、网友没有给出具体的布林线算法,本文引用系统自带的布林线指标;
(二)、算法建立
1、引入系统指标BOLL
系统BOLL算法
1、数据筛选算法的建立过程
a.布林带中轨
BOLL:=MA(CLOSE,M),COLORWHITE;
b. 最近一次C上穿BOLL的位置
CBOLLWZ:=CONST(BARSLAST(CROSS(C,BOLL)));
c.数据筛选逻辑链
CBOLLWZ<=2 AND BARSSINCEN(UPNDAY(BOLL,中轨)=1,中轨)=0;
2、主图标注算法的建立过程
a.5日均线
MA5:MA(C,5),COLORWHITE,DOTLINE;
b.布林带
BOLL:MA(CLOSE,M),COLORWHITE;
UB:BOLL+2*STD(CLOSE,M),COLORYELLOW;
LB:BOLL-2*STD(CLOSE,M),COLORMAGENTA;
c. C上穿UB的所有位置
CUBWZ:=BARSLAST(CROSS(C,UB))=0;
d.对K线进行变色标识
STICKLINE(CUBWZ,L,H,0,0),COLOR0000AA;
STICKLINE(CUBWZ,CLOSE,OPEN,3,0),COLOR000055;
STICKLINE(CUBWZ,CLOSE,OPEN,2.8,0),COLOR000066;
STICKLINE(CUBWZ,CLOSE,OPEN,2.5,0),COLOR000077;
STICKLINE(CUBWZ,CLOSE,OPEN,2.2,0),COLOR000088;
STICKLINE(CUBWZ,CLOSE,OPEN,1.7,0),COLOR000099;
STICKLINE(CUBWZ,CLOSE,OPEN,1.2,0),COLOR0000AA;
STICKLINE(CUBWZ,CLOSE,OPEN,0.7,0),COLOR0000CC;
STICKLINE(CUBWZ,CLOSE,OPEN,0.2,0),COLOR0000FF;
e. MA5上穿BOLL的所有位置
MA5BOLLWZ:=BARSLAST(CROSS(MA(C,5),BOLL))=0;
f. C上穿MA5的所有位置,其中C>BOLL条件很重要,不采用上穿
CMA5WZ:=BARSLAST(C>BOLL AND CROSS(C,MA(C,5)))=0;
g.逻辑条件,并对K线进行变色标识
TJ:=MA5BOLLWZ OR CMA5WZ;
STICKLINE(TJ,H,L,0,0),COLORFF00FF;
STICKLINE(TJ,C,O,3,0),COLOR990099;
STICKLINE(TJ,C,O,2,0),COLORBB00BB;
STICKLINE(TJ,C,O,1,0),COLORDD00DD;
STICKLINE(TJ,C,O,0.3,0),COLORFF00FF;
h. 最近一次C上穿BOLL的位置
CBOLLWZ:=CURRBARSCOUNT=CONST(BARSLAST(CROSS(C,BOLL)))+1;
i. BOLL上涨趋势
BOLLQS:=UPNDAY(BOLL,中轨);
j.K线的变色标识
STICKLINE(CBOLLWZ,H,L,0,1),COLORYELLOW;
STICKLINE(CBOLLWZ,C,O,3.2,0),COLOR117777;
STICKLINE(CBOLLWZ,C,O,2.6,0),COLOR119999;
STICKLINE(CBOLLWZ,C,O,1.9,0),COLOR11BBBB;
STICKLINE(CBOLLWZ,C,O,1.1,0),COLOR11DDDD;
STICKLINE(CBOLLWZ,C,O,0.3,0),COLOR44FFFF;
(三)、完整代码
A.数据筛选算法的完整代码:
代码流程1
BOLL:=MA(CLOSE,M),COLORWHITE;
CBOLLWZ:=CONST(BARSLAST(CROSS(C,BOLL)));{最近一次C上穿BOLL的位置}
CBOLLWZ<=2 AND BARSSINCEN(UPNDAY(BOLL,中轨)=1,中轨)=0;
B.主图标注的完整代码:
代码流程2
MA5:MA(C,5),COLORWHITE,DOTLINE;
BOLL:MA(CLOSE,M),COLORWHITE;
UB:BOLL+2*STD(CLOSE,M),COLORYELLOW;
LB:BOLL-2*STD(CLOSE,M),COLORMAGENTA;
CUBWZ:=BARSLAST(CROSS(C,UB))=0;{C上穿UB的所有位置};
STICKLINE(CUBWZ,L,H,0,0),COLOR0000AA;
STICKLINE(CUBWZ,CLOSE,OPEN,3,0),COLOR000055;
STICKLINE(CUBWZ,CLOSE,OPEN,2.8,0),COLOR000066;
STICKLINE(CUBWZ,CLOSE,OPEN,2.5,0),COLOR000077;
STICKLINE(CUBWZ,CLOSE,OPEN,2.2,0),COLOR000088;
STICKLINE(CUBWZ,CLOSE,OPEN,1.7,0),COLOR000099;
STICKLINE(CUBWZ,CLOSE,OPEN,1.2,0),COLOR0000AA;
STICKLINE(CUBWZ,CLOSE,OPEN,0.7,0),COLOR0000CC;
STICKLINE(CUBWZ,CLOSE,OPEN,0.2,0),COLOR0000FF;
MA5BOLLWZ:=BARSLAST(CROSS(MA(C,5),BOLL))=0;{MA5上穿BOLL的所有位置};
CMA5WZ:=BARSLAST(C>BOLL AND CROSS(C,MA(C,5)))=0;{C上穿MA5的所有位置}{C>BOLL条件很重要,与上穿是不同的};
TJ:=MA5BOLLWZ OR CMA5WZ;
STICKLINE(TJ,H,L,0,0),COLORFF00FF;
STICKLINE(TJ,C,O,3,0),COLOR990099;
STICKLINE(TJ,C,O,2,0),COLORBB00BB;
STICKLINE(TJ,C,O,1,0),COLORDD00DD;
STICKLINE(TJ,C,O,0.3,0),COLORFF00FF;
CBOLLWZ:=CURRBARSCOUNT=CONST(BARSLAST(CROSS(C,BOLL)))+1;{最近一次C上穿BOLL的位置}
BOLLQS:=UPNDAY(BOLL,中轨);{BOLL上涨趋势}
STICKLINE(CBOLLWZ,H,L,0,1),COLORYELLOW;
STICKLINE(CBOLLWZ,C,O,3.2,0),COLOR117777;
STICKLINE(CBOLLWZ,C,O,2.6,0),COLOR119999;
STICKLINE(CBOLLWZ,C,O,1.9,0),COLOR11BBBB;
STICKLINE(CBOLLWZ,C,O,1.1,0),COLOR11DDDD;
STICKLINE(CBOLLWZ,C,O,0.3,0),COLOR44FFFF;
(四)、最后的筛选效果示意图:
效果示意图1
效果示意图2
效果示意图3