使用成交量均线替换成OBV线,会是怎样的效果呢?请看下图:
网友的留言
留言的意思是说,把成交量均线替换成OBV线,这个想法很脑洞,令人惊喜。
算法思路
- 引用系统指标算法VOL,删除均线计算部分;
- 复制系统指标算法OBV,删除均线计算部分;
- 匹配比例计算---计算OBV在一定时间区间M内的最值;计算VOL在同样时间区间M内的最大值;
- 输出新的VOL量柱;
- 输出新的OBV线。
效果示意(副图)
主图算法源自评论区网友留言的思路---箱体研究:计算出人意料
效果示意图(副图)
算法建立
- 引用系统指标算法VOL,删除均线计算部分,当然,原有参数也用不到了:
引用系统VOL指标
2.复制系统指标算法OBV,原有参数保留:
引用系统OBV指标
3.匹配比例计算
a.计算OBV在一定时间区间M内的最值:
HHO:=CONST(HHV(OBV0,M));
LLO:=CONST(LLV(OBV0,M));
b.计算VOL在同样时间区间M内的最大值:
CONST(HHV(VOL,M));
c.匹配比例:
BS:=(HHO-LLO)/HHV(VOL,M);{倍数}
d.请注意原有变量名的修改和赋值变化,以及时间区间M的添加:
两个参数与代码
4. 输出新的VOL量柱:
VVOL:IF((CURRBARSCOUNT=1 AND DYNAINFO(8)>1),VOL*(TOTAL 3)*BS/(CTIME 3),DRAWNULL),NODRAW;
STICKLINE((CURRBARSCOUNT=1 AND DYNAINFO(8)>1),VVOL,0,-1,-1),COLOR00C0C0;
VOLUME:VOL*BS,VOLSTICK;
5. 输出新的OBV线并进行标示:
OBVD:OBV0-LLO,COLORWHITE;
DRAWICON(OBVD=0,VOLUME,11);
参数与完整代码
两个参数与完整代码流程
TOTAL:=IF(PERIOD=1,5,IF(PERIOD=2,15,IF(PERIOD=3,30,IF(PERIOD=4,60,IF(PERIOD=5,TOTALFZNUM,1)))));
MTIME:=MOD(FROMOPEN,TOTAL);
CTIME:=IF(MTIME<0.5,TOTAL,MTIME);
VA:=IF(CLOSE>REF(CLOSE,1),VOL,-VOL);
OBV0:=SUM(IF(CLOSE=REF(CLOSE,1),0,VA),0);
MAOBV0:=MA(OBV,M);
HHO:=CONST(HHV(OBV0,N));
LLO:=CONST(LLV(OBV0,N));
BS:=(HHO-LLO)/CONST(HHV(VOL,N));
VVOL:IF((CURRBARSCOUNT=1 AND DYNAINFO(8)>1),VOL*(TOTAL 3)*BS/(CTIME 3),DRAWNULL),NODRAW;
STICKLINE((CURRBARSCOUNT=1 AND DYNAINFO(8)>1),VVOL,0,-1,-1),COLOR00C0C0;
VOLUME:VOL*BS,VOLSTICK;
OBVD:OBV0-LLO,COLORWHITE,LINETHICK2;
MAOBV:MAOBV0-LLO,COLORYELLOW,LINETHICK2;
DRAWICON(OBVD=0,VOLUME,11);
计算创造价值,分享助力成功,文中代码均可运行。
江丰鱼的文章只在今日头条首发,未经授权禁止引用或者转载。