没有信号 [金字塔]
- 咨询内容:
老师,
你好,能否帮忙看看我这段代码错误在哪里?怎么修改都没有信号发生?谢谢。
variable:Rsum=0; //Rsum红柱总和
variable:Rlong=0; //Rlong最长红柱
variable:Rhigh=0; //Rhigh红柱区域最低价//MACD指标
P:=26;
S:=12;
M:=9;DIFF := EMA(CLOSE,S) - EMA(CLOSE,P);
DEA := EMA(DIFF,M);
macd := 2*(DIFF-DEA);Rnum:=barslast(ref(macd<0,1) and macd>0);//绿转红
Rbnum:=barslast(ref(macd>0,1) and macd<0);//红转绿if ref(macd,1)<0 and macd>0 then
begin
Rsum:=0; //红柱开始,清0
Rlong:=0; //红柱开始,清0
Rhigh:=HIGH; //红柱开始,初始化
end
if macd>0 then
begin
Rsum:=Rsum+macd; //累加
if abs(macd)<abs(Rlong) then Rlong:=macd;//如果红柱更长,则记录
if HIGH>Rhigh then Rhigh:=HIGH; //如果价格更高,则记录
endrnumb:=max(Rnum,Rbnum)+1;
rcon1:=abs(Rsum)<abs(ref(Rsum,rnumb));//面积小于前一波--面积没创新低
rcon2:=abs(Rlong)<abs(ref(Rlong,rnumb));//柱子长度小于前一波----长度没创新低
rcon3:=Rhigh<ref(Rhigh,rnumb);//价格小于前一波-----价格创新低//当红柱开始收缩时(牛市即将结束,可能反转向上(或高位盘整)),如果出现低背离,则少量建仓
if all(macd>0,3) and ref(macd,1)>macd and ref(macd,1)>ref(macd,2) then
begin
if rcon1 and rcon2 and rcon3 then buyshort(1,1,market);//低背离,面积没创新低,长度没创新低,价格创新低
end//红柱消失、绿柱开始放出时(上涨行情(或高位盘整)已经结束),如果出现低背离,则加仓
if ref(macd>0,1) and macd<0 then
begin
if rcon1 and rcon2 and rcon3 then 加:buyshort(1,1,market);//低背离,面积没创新低,长度没创新低,价格创新低
end - 金字塔客服:
if abs(macd)<abs(Rlong) then Rlong:=macd;//如果红柱更长,则记录
这一句看你的意思应该是if abs(macd)>abs(Rlong) then Rlong:=macd;//如果红柱更长,则记录
- 用户回复:
谢谢老师,
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容