仅供参考
[PEL] 复制代码 //全局变量
variable:gsumr=0; //gsum红柱总和
variable:glongr=0; //glong最长红柱
variable:gshortr=0; //glong最短红柱
variable:ghighr=0; //glow红柱区域最高价
variable:glowr=0; //glow红柱区域最低价
//中间变量
//MACD指标
DIFF := EMA(CLOSE,12) - EMA(CLOSE,26);
DEA := EMA(DIFF,9);
MACD := 2*(DIFF-DEA);
gnum:=barslast(ref(macd>0,1) and macd<0); //红转绿
bnum:=barslast(ref(macd<0,1) and macd>0); //绿转红
if cross(macd,0) then
begin
gsumr:=0; //红柱开始,清0
glongr:=0;
gshortr:=0; //红柱开始,清0
ghighr:=high; //红柱开始,初始化
glowr:=0;
end
if macd>0 then
begin
gsumr:=gsumr+macd; //累加
if abs(macd)>abs(glongr) then glongr:=macd; //如果红柱更长,则记录
if abs(macd)<abs(gshortr) or gshortr=0 then gshortr:=macd;
if high>ghighr then ghighr:=high;
if low<glowr then glowr:=low; //如果价格更高,则记录
end
numb:=max(gnum,bnum)+1; //两次红柱/绿柱之间间隔
//顶背离
con1:=abs(gsumr)<abs(ref(gsumr,numb)); //面积小于前一波--面积没创新高
con2:=abs(glongr)<abs(ref(glongr,numb)); //柱子长度小于前一波----长度没创新高
con3:=ghighr>ref(ghighr,numb); //价格大于前一波-----价格创新高
//低背离,面积没创新低,长度没创新低,价格创新低
con11:=abs(gsumr)>abs(ref(gsumr,numb)); //面积大于前一波--
con22:=abs(gshortr)>abs(ref(gshortr,numb)); //柱子长度大于前一波
con33:=glowr<ref(glowr,numb); //价格新低
|