网友的奇思妙想总会时不时地惊艳到每一个人,在“背离”之外,本文学到了一个新的名词“空中加油”,这是什么思路呢?先看网友的留言:
网友的留言1
网友的补充留言
网友的思路需求是说:当MACD算法中的DIF线靠近DEA线后,不下穿,再次远离DEA线,建立该思路的数据筛选算法。
(一)、思路步骤:
1.引入系统已有指标MACD,对DIF 行、DEA行进行赋值处理,并删除内容“,COLORSTICK”;
2.本文采用“限定两线空间”的方法,来表达“靠近”;
3.没有悬念的,使用LONGCROSS函数来实现金叉,为的是过滤掉短期向下,当然也可以改用CROSS来完成算法;
4.空中加油,采用左侧一死叉加上最近一次的金叉,来限定当前发生的“靠近”发生情况,否则会筛选出频繁交叉的品种。
(二)、算法的建立过程:
1. 引入系统已有指标MACD,完成赋值与删除处理
DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:=EMA(DIF,MID);
MACD:=(DIF-DEA)*2;
2.零轴上方金叉,本文用了持续了10个数据的才发生
DEA>0 AND CONST(BARSLAST(LONGCROSS(DIF,DEA,10)))=0;
3. 零轴上方空中加油
a.确定两次交叉的位置
D1CSC:=CONST(BARSLAST(CROSS(DEA,DIF)=1));{第一次死叉位置}
D1CJC:=CONST(BARSLAST(CROSS(DIF,DEA)=1));{第一次金叉位置}
b.数据筛选逻辑链
·最近的交叉是金叉D1CSC>D1CJC
·最近的金叉发生在零轴下方REF(DEA,D1CJC)<0
·当下处在零轴上方DEA>0
·DIF向上趋势UPNDAY(DIF,1)=1
·DEA向上趋势UPNDAY(DEA,5)=1
·“靠近”的表达 (DIF/DEA>1 AND DIF/DEA<1.05);
(三)、数据筛选的完整代码:
A. MACD零轴之上金叉
代码流程1
DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:=EMA(DIF,MID);
MACD:=(DIF-DEA)*2;
DEA>0 AND CONST(BARSLAST(LONGCROSS(DIF,DEA,10)))=0;
B. MACD零轴之上“空间加油”
代码流程2
DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:=EMA(DIF,MID);
MACD:=(DIF-DEA)*2;
D1CSC:=CONST(BARSLAST(CROSS(DEA,DIF)=1));{第一次死叉位置}
D1CJC:=CONST(BARSLAST(CROSS(DIF,DEA)=1));{第一次金叉位置}
D1CSC>D1CJC AND REF(DEA,D1CJC)<0 AND DEA>0 AND UPNDAY(DIF,1)=1 AND UPNDAY(DEA,5)=1 AND (DIF/DEA>1 AND DIF/DEA<1.05);
(四)、最后的筛选效果示意图:
A. MACD零轴之上金叉
效果示意图1
B. MACD零轴之上“空间加油”
效果示意图2
联系客服