以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  没有信号  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=98544)

--  作者:新手123
--  发布时间:2016/6/14 23:21:29
--  没有信号

老师,

     你好,能否帮忙看看我这段代码错误在哪里?怎么修改都没有信号发生?谢谢。

 

 

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;                         //如果价格更高,则记录
end

 

rnumb:=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

 


--  作者:jinzhe
--  发布时间:2016/6/15 9:08:33
--  

if abs(macd)<abs(Rlong) then Rlong:=macd;//如果红柱更长,则记录
这一句看你的意思应该是

if abs(macd)>abs(Rlong) then Rlong:=macd;//如果红柱更长,则记录


--  作者:新手123
--  发布时间:2016/6/15 19:21:24
--  

谢谢老师,