[求助]怎么统计收盘价是否在布林带之外的次数? (文华财经WH8赢智V8.2)

投资者咨询:[求助]怎么统计收盘价是否在布林带之外的次数? (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-11-20 15:16
 怎么判断收盘价是否在布林带之外,定义布林带上轨UP=20日均线+2.5*SD (SD是过去20日收市价的标准差),下轨down=20日均线-2.5*SD
如何统计过去3年,收盘价有多少次在布林带之外?若突破布林带,即上轨或下轨则标记显示,并统计突破那天后5天内又回到布林带的概率,麦函数如何写?
技术人员回复
日期:2018-11-20 15:39
参考:


MID:MA(CLOSE,20);//中轨
TMP2:=STD(CLOSE,20);
TOP:MID+2.5*TMP2;//上轨
BOTTOM:MID-2.5*TMP2;//下轨
AA:=IF(C>TOP||C<BOTTOM,1,0);
NA:SUM(AA,BARPOS);//在外个数

DRAWICON(CROSS(C,TOP),C,1);
DRAWICON(CROSSDOWN(C,BOTTOM),C,2);

N1:=BARSLAST(CROSS(C,TOP))+1;
N2:=BARSLAST(CROSSDOWN(C,BOTTOM))+1;
BB:=IF(CROSS(N1<=5&&C<TOP&&C>BOTTOM,0.5)||CROSS(N2<=5&&C<TOP&&C>BOTTOM,0.5),1,0);
BN:SUM(BB,BARPOS)/SUM(CROSS(C,TOP)||CROSSDOWN(C,BOTTOM),BARPOS);//概率

投资者咨询:[求助]怎么统计收盘价是否在布林带之外的次数? (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-11-20 15:16

根据上述问题,想改变突破布林带之外的策略,定义布林带上轨UP=20日均线+2.5*SD (SD是过去20日收市价的标准差),下轨down=20日均线-2.5*SD
如何统计过去3年,收盘价有多少次布林带上下轨?具体策略如下:

比如过去3年中,第一次突破布林带标记为A日,A日后五天以A日当天的布林带上下轨作基准,若突破布林带也标记,即在K线上标记显示。到A日后第6天还是按照正常画出的布林带上下轨作依据来标记突破日。若在A日后五天以内再次突破,比如A日后第3天再次突破,记为B日,则B日作为新的基准,往后5天以B的上下轨作为基准,以此策略来标记突破日。麦语言如何实现。在上述的函数中如何修改?

技术人员回复
日期:2018-11-28 17:08
您的思路较复杂,我们分析下

预计周五前回复,请稍后
投资者咨询:[求助]怎么统计收盘价是否在布林带之外的次数? (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-11-20 15:16

能否实现?

技术人员回复
日期:2018-11-30 10:11
请参考:

VARIABLE:HH:=0,NH:=0;
MID:MA(CLOSE,20);//中轨
TMP2:=STD(CLOSE,20);
TOP:=MID+2.5*TMP2;//上轨
BOTTOM:MID-2.5*TMP2;//下轨
N1:=BARSLAST(CROSS(C,TOP))+1;
YE:BARSLAST(YEAR<>REF(YEAR,1)&&YEAR=2015)+1;
VERTLINE1(YE=1);
A:=COUNT(N1=1,YE)=1&&N1=1;
DRAWTEXT(A,H,'A'),COLORGREEN,FONTSIZE18;
NB:=BARSLAST(A)+1;
IF ISNULL(NB) THEN HH:=TOP;
IF A THEN BEGIN
HH:=TOP;
NH:=NH+1;
END
IF NB<=5&&C<HH&&A=0 THEN BEGIN
HH:=HH;
END
IF NB<=5&&C>HH&&A=0 THEN BEGIN
HH:=TOP;
NH:=NH+1;
END
NA:BARSLAST(HH<>REF(HH,1))+1;
IF NA<NB &&NA>5 THEN BEGIN
HH:=TOP;
END
DRAWTEXT(REF(HH<>REF(HH,1),1)&&HH=REF(HH,1)&&NA=2&&NA<NB,H,'B'),COLORGREEN,FONTSIZE18;
HH;
投资者咨询:[求助]怎么统计收盘价是否在布林带之外的次数? (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-11-20 15:16

你好,根据所给的函数测试后,没有标注所有突破的点,能否标识?

技术人员回复
日期:2018-11-30 12:12
参考:


VARIABLE:HH:=0,NH:=0;
MID:MA(CLOSE,20);//中轨
TMP2:=STD(CLOSE,20);
TOP:=MID+2.5*TMP2;//上轨
BOTTOM:MID-2.5*TMP2;//下轨
N1:=BARSLAST(CROSS(C,TOP))+1;
YE:BARSLAST(YEAR<>REF(YEAR,1)&&YEAR=2015)+1;
VERTLINE1(YE=1);
A:=COUNT(N1=1,YE)=1&&N1=1;
DRAWTEXT(A,H,'A'),COLORGREEN,FONTSIZE18;
NB:=BARSLAST(A)+1;
IF ISNULL(NB) THEN HH:=TOP;
IF A THEN BEGIN
HH:=TOP;
NH:=NH+1;
END
IF NB<=5&&C<HH&&A=0 THEN BEGIN
HH:=HH;
END
IF NB<=5&&C>HH&&A=0 THEN BEGIN
HH:=TOP;
NH:=NH+1;
END
NA:BARSLAST(HH<>REF(HH,1))+1;
IF NA<NB &&NA>5 THEN BEGIN
HH:=TOP;
END
DRAWTEXT(REF(HH<>REF(HH,1),1)&&HH=REF(HH,1)&&NA=2&&NA<NB,H,'B'),COLORGREEN,FONTSIZE18;
HH;
DRAWICON(NA>5&&CROSS(C,TOP),C,1);
投资者咨询:[求助]怎么统计收盘价是否在布林带之外的次数? (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-11-20 15:16

你好,根据上述函数计算结果还是不正确,我想要的效果是这样的,按附件图片为例:

计算的结果找到1位置是突破下轨,则1位置当天标记为突破日,则以1位置当天的上下轨价格作为基准,往后看五天是否突破,所以2位置再次突破(相对1位置的上下轨价格),则2位置为新的

突破日,也应该标记,然后新的突破日2位置的上下轨价格作为基准,看后面五天是否突破,结果过了2天3位置再次突破,则以3位置为新的基准,往后看5天,结果3位置后面5天没突破,则第6天也就是图中4位置开始恢复图中布林带为基准开始标记新的突破日。



图片点击可在新窗口打开查看
技术人员回复
日期:2018-11-30 13:29

核实一下:

 

以上轨为例,是上穿上轨统计,还是上穿或下穿上轨都统计?

 

如果是统计上穿,那么5日内回到上轨的概率,是指5日内价格回到上穿上轨那根K线的上轨值?