
等级: 标准版
- 注册:
- 2023-2-16
- 曾用名:
|

楼主 |
发表于 2023-8-3 12:34
|
显示全部楼层
在加上这个上次绿柱中的最长绿柱是三次最长,前两次红柱中的最长红柱是三次中的最长
//全局变量
//中间变量
variable:rsum=0; //rsum红柱总和
variable:rlong=0; //rlong最长红柱
variable:rh=0; //rlow红柱区域最低高价
variable:gsum=0; //gsum绿柱总和
variable:glong=0; //glong最长绿柱
variable:glow=0; //glow绿柱区域最低价
//macd指标
diff := ema(close,S) - ema(close,P);
dea := ema(diff,M);
macd := 2*(diff-dea);
gnum:=barslast(ref(macd>0,1) and macd<0); //红转绿
bnum:=barslast(ref(macd<0,1) and macd>0); //绿转红
if ref(macd,1)<0 and macd>0 then
begin
rsum:=0;
rlong:=0;
rh:=h;
end
if macd>0 then
begin
rsum:=rsum+macd; //累加
if abs(macd)>abs(rlong) then rlong:=macd; //如果柱更长,则记录
if h>rh then rh:=h;
end
numb:=max(gnum,bnum)+1;
//交易条件
Rcon1:=abs(rsum)<abs(ref(rsum,numb)); //面积小于前一波--面积
Rcon2:=abs(rlong)<abs(ref(rlong,numb)); //柱子长度小于前一波
Rcon3:=rh>ref(rh,numb); //价格大于前一波-----价格创新高
//下单模块
//当绿柱开始收缩时(熊市即将结束,可能反转向上(或低位盘整)),如果出现低背离,则少量建仓
if ref(macd,1)>0 and macd<0 then
begin
gsum:=0; //绿柱开始,清0
glong:=0; //绿柱开始,清0
glow:=low; //绿柱开始,初始化
end
if macd<0 then
begin
gsum:=gsum+macd; //累加
if abs(macd)>abs(glong) then glong:=macd; //如果绿柱更长,则记录
if low<glow then glow:=low; //如果价格更低,则记录
end
numb:=max(gnum,bnum)+1;
//交易条件
con1:=abs(gsum)<abs(ref(gsum,numb)); //面积小于前一波--面积没创新低
con2:=abs(glong)<abs(ref(glong,numb)); //柱子长度小于前一波----长度没创新低
con3:=glow<ref(glow,numb); //价格小于前一波-----价格创新低
|
|