以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4)
----  请教这个公式为什么无法测试  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=53237)

--  作者:大灰狼
--  发布时间:2013/6/20 17:09:05
--  请教这个公式为什么无法测试

请教一个问题
 我最近编写程序,需要用到一个循环语句,
但是 测试的结果 都是0,也就是等于都不满足条件,无论怎么调试,都不行。

   我将我的程序减缩成几条,大家看看到底哪里出了问题,一周都无法解决:
  程序代码:
   m:=0;
for i=10 to  20 do
begin
   if(ref(close,1)<ref(hhv(close,i),1)&&close>ref(hhv(close,i),1)) then
    exit;
 end;

  BK:=hhv(close,i);
  SP:=CLOSE<BK;
                
开多:BUY(BK AND HOLDING=0,1,THISCLOSE);          //开多信号
平多:SELL(SP AND HOLDING>0,1,THISCLOSE);                       //平多信号

 

测试结果为0


--  作者:jinzhe
--  发布时间:2013/6/20 17:20:29
--  

http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332

参考这里的问题12


--  作者:RogarZ
--  发布时间:2013/6/20 17:55:00
--  
BK sp是函数
--  作者:王锋
--  发布时间:2013/6/20 18:01:21
--  

不能出现信号的主要原因是

for i=10 to  20 do
begin
   if(ref(close,1)<ref(hhv(close,i),1)&&close>ref(hhv(close,i),1)) then
    exit;
 end;

  BK:=hhv(close,i);
  SP:=CLOSE<BK;
你这上面的代码的逻辑问题导致没有信号,由于不知道你具体的想法和思路,我们无法帮你整改的,建议你:

1,仔细学习一下金字塔的单步跟踪调试技巧,遇到循环语句时这种调试最为有效

2,如果你自己无法调试出问题,那么请将你的逻辑思路说出来,我们帮你做出范例