分享

MACD的背离计算(一)

 cxm54666 2022-09-09 发布于吉林

背离的计算,是处理时序数据的永恒思路,请看网友的留言截图:

文章图片1

网友的留言

留言的需求是,日内的macd的背离---今天是阳线,而macd指标的数据却是下降和持平;今天是阴线,而macd的指标数据却是在上升和持平。

显而易见,该思路要建立的算法,只在单个交易日的内部---MACD的背离计算之“日内背离”,下面展开算法的建立流程。

思路步骤

  1. 日内,在这里选择5分钟时间周期数据,作为筛选的对象;

  2. 首先引入系统MACD指标;

  3. 阳线与阴线,以4%的升幅与跌幅作为本次筛选标准,4%的值也可以自定义;

  4. 计算5分钟时间周期的第一根数据位置;

  5. 计算5分钟时间周期内的今日的开盘价;

  6. 通常的日内数据是4个小时的区间分割,借用这一特点,对日内的5分钟数据的MACD中的DEA线进行动态的4分法,如图所示:

文章图片2

思路示意图

字母WZ是“位置”的意思,详细表达式,请见算法建立部分。

算法建立

1. 首先引入系统MACD指标:

文章图片3

参数表1

文章图片4

参数表2

算法内容强调了要在5分钟时间周期内进行数据筛选才可以使用。

2. 阳线与阴线,以4%的升幅与跌幅作为本次筛选标准:

阴K线的界定---C<WSO*0.96,WSO的意思为“5分钟首根K线的开盘价”,详细表达式,请见算法建立部分;

阳K线的界定---C>WSO*1.04。

3. 计算5分钟时间周期的第一根数据位置:

WZ:=CONST(BARSLAST(CURRBARSCOUNT<=48 AND DAY!=REF(DAY,1)));

4. 计算5分钟时间周期内的今日的开盘价:

WSO:=IF(CURRBARSCOUNT<=WZ+1,CONST(REF(O,WZ)),DRAWNULL);{ WSO:5分钟首根开盘价}

5. 对日内的5分钟数据的MACD中的DEA线进行动态的4分法的界定:

a.DEA线走平或者向上的量化定义

DEA>=REF(DEA,INTPART(WZ/4))*1.001 AND DEA >=REF(DEA,INTPART(WZ/2))*1.001 AND DEA >=REF(DEA,INTPART(WZ*3/4))*1.001 AND DEA >=REF(DEA,WZ)*1.001;

b.DEA线走平或者向下的量化定义

DEA<=REF(DEA,INTPART(WZ/4))*0.999 AND DEA <=REF(DEA,INTPART(WZ/2))*0.999 AND DEA<=REF(DEA,INTPART(WZ*3/4))*0.999 AND DEA <= REF(DEA,WZ)*0.999;

完整代码

  1. 日线阴线,日内MACD走平或者上行

文章图片5

参数表3

DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);

DEA:=EMA(DIF,MID);

WZ:=CONST(BARSLAST(CURRBARSCOUNT<=48 AND DAY!=REF(DAY,1)));

WSO:=IF(CURRBARSCOUNT<=WZ+1,CONST(REF(O,WZ)),DRAWNULL);

C<WSO*0.96 AND CONST(DEA)>=CONST(REF(DEA,INTPART(WZ/4)))*1.001 AND CONST(DEA)>=CONST(REF(DEA,INTPART(WZ/2)))*1.001 AND CONST(DEA)>=CONST(REF(DEA,INTPART(WZ*3/4)))*1.001 AND CONST(DEA)>=CONST(REF(DEA,WZ))*1.001;

2.日线阳线,日内MACD走平或者下行

文章图片6

参数表4

DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);

DEA:=EMA(DIF,MID);

WZ:=CONST(BARSLAST(CURRBARSCOUNT<=48 AND DAY!=REF(DAY,1)));

WSO:=IF(CURRBARSCOUNT<=WZ+1,CONST(REF(O,WZ)),DRAWNULL);

C>WSO*1.04 AND CONST(DEA)<=CONST(REF(DEA,INTPART(WZ/4)))*0.999 AND CONST(DEA)<=CONST(REF(DEA,INTPART(WZ/2)))*0.999 AND CONST(DEA)<=CONST(REF(DEA,INTPART(WZ*3/4)))*0.999 AND CONST(DEA)<=CONST(REF(DEA,WZ))*0.999;

因为这里所有的思路以及代码,只是专注于函数的应用和算法的建立,不面向应用。所以,后续将根据网友的应用层面的反馈进行必要的优化。

计算创造价值,分享助力成功,代码均可运行。 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约