欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助下面程序哪里有问题,为什么说else前缺少if

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有11204人关注过本帖平板打印复制链接

主题:[求助下面程序哪里有问题,为什么说else前缺少if

美女呀,离线,留言给我吧!
ppliu
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:156 威望:0 精华:0 注册:2010/12/22 16:29:24
[求助]  发帖心情 Post By:2011/2/16 11:20:20    Post IP:116.227.134.36[只看该作者]

INPUT: PercentOfRange(0.3,0,1,0.1),MinRange(0.2,0,1.0.1),StopLossSet(0.5,0,1,0.1),
       TrailingStart(0.8,0,1,0.1),TrailingStop(0.5,0,1,0.1),
       ExitOnCloseMins(145000,140000,150000,100);
VARIABLE:blongStoped=false,bshortStoped=false,predayhigh:=0,predayrange=0,
         predaylow:=0, higherAfterEntry:=0,lowerAfterEntry:=0,myprice=0,dayopen=0;

 N1:=BARSLAST(DATE<>REF(DATE,1))+1;
 N2:=REF(N1,N1);
 PreDayHigh:=REF(HHV(HIGH,N2),N1);
 PreDayLow:=REF(LLV(LOW,N2),N1);

 if date<>ref(date,1) then begin
 dayopen:=open;  //dayopen取当天的开盘价//
 predayrange:=predayhigh-predaylow;
 brange:=open*minrange*0.01;
 if predayrange<brange then
  predayrange:=brange;
end  else begin
 dayopen:=ref(dayopen,1);
 predayrange:=ref(predayrange,1);
 blongstoped:=ref(blongstoped,1);
 bshortstoped:=ref(bshortstoped,1);

end

该程序显示ref函数在逐周期模式下不能再if控制语句中使用

但是把ref语句提到外面:

INPUT: PercentOfRange(0.3,0,1,0.1),MinRange(0.2,0,1.0.1),StopLossSet(0.5,0,1,0.1),
       TrailingStart(0.8,0,1,0.1),TrailingStop(0.5,0,1,0.1),
       ExitOnCloseMins(145000,140000,150000,100);
VARIABLE:blongStoped=false,bshortStoped=false,predayhigh:=0,predayrange=0,
         predaylow:=0, higherAfterEntry:=0,lowerAfterEntry:=0,myprice=0,dayopen=0,p1=0,b1=0,b2=0,h1=0,h2=0,l1=0,l2=0;
  N1:=BARSLAST(DATE<>REF(DATE,1))+1;
 N2:=REF(N1,N1);
 PreDayHigh:=REF(HHV(HIGH,N2),N1);
 PreDayLow:=REF(LLV(LOW,N2),N1);//跨周期取昨日的最高价与最低价//
 d1:=ref(dayopen,1);
 p1:=ref(predayrange,1);
 b1:=ref(blongstoped,1);
 b2:=ref(bshortstoped,1);
  if date<>ref(date,1) then begin
 dayopen:=open;  //dayopen取当天的开盘价//
 predayrange:=predayhigh-predaylow;
 brange:=open*minrange*0.01;
 if predayrange<brange then
  predayrange:=brange;
end  else begin
 dayopen:=d1;
 predayrange:=p1;
 blongstoped:=b1;
 bshortstoped:=b2;

end

测试正常,但调试dayopen等值都有问题,是怎么回事呢?

 


 回到顶部
总数 12 1 2 下一页