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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 调试问题,是不是BUG啊?

   

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


  共有2070人关注过本帖树形打印复制链接

主题:调试问题,是不是BUG啊?

帅哥哟,离线,有人找我吗?
分析者
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:319 积分:0 威望:0 精华:1 注册:2015/11/1 14:20:16
调试问题,是不是BUG啊?  发帖心情 Post By:2015/11/9 15:58:50 [只看该作者]

 

      RUNMODE :0;//逐K线模式


      tmpH1:=ref(high,2);tmpH2:=ref(high,1);

      if BARPOS <3 then EXIT;

      if BARpos =3 then BEGIN h1:=tmph1;H2:=tmph2; end ;

      H1:=ref(H2,1);h2:=REF(HIGH,1);



    上述代码中,理论上H2应该等于左侧第一根K线高点,而H1:=ref(H2,1)应该是左侧第二根K线高点,可为什么实际测试结果H1却等于左侧第三根K线高点???

  


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/11/9 16:32:08 [只看该作者]

你是调试界面看的?你调试要按黄色那个箭头执行完最后一句话才行

 回到顶部
帅哥哟,离线,有人找我吗?
分析者
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:319 积分:0 威望:0 精华:1 注册:2015/11/1 14:20:16
  发帖心情 Post By:2015/11/9 16:47:40 [只看该作者]

不是在调试界面看的,是在K线图上,右键查看运行时变量。


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/11/9 17:11:25 [只看该作者]

 if BARpos =3 then BEGIN h1:=tmph1;H2:=tmph2; end ;

      H1:=ref(H2,1);h2:=REF(HIGH,1);

 

H2是只有在barpos=3的时候才有赋值,其他k线上H2取得的是上一根k的tmph2而不是当前k的tmph2


 回到顶部
帅哥哟,离线,有人找我吗?
分析者
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:319 积分:0 威望:0 精华:1 注册:2015/11/1 14:20:16
  发帖心情 Post By:2015/11/9 17:30:01 [只看该作者]

似乎还是不太对,干脆就执行最简单的语句:

    h2:=REF(HIGH,1); H1:=ref(H2,1);

 

   理论上H2是上一根K线的高点,H1是上一根K线的H2,那就应该是上上根(左侧第2根)K线的高点,但实际结果是左侧第三根K线的高点。


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/11/9 20:31:33 [只看该作者]

如图


图片点击可在新窗口打开查看此主题相关图片如下:kz{w65mblb3~8)%f@quri.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
分析者
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:319 积分:0 威望:0 精华:1 注册:2015/11/1 14:20:16
  发帖心情 Post By:2015/11/9 21:03:40 [只看该作者]

哈哈,谢谢您的解答,有启发了,能调试通过,但现在还是不理解为什么,如下代码看起来差不多,只是计算顺序不一样,执行结果就不同,这是为什么?或许我对金字塔的机制还不太了解、熟悉,希望能尽快熟悉,以后就长期固定使用金字塔了。

代码1:    

      H1:=NULL;H2:=NULL;

      H1:=ref(H2,1);h2:=REF(HIGH,1); hh:=ref(high,2);

      // h2:=REF(HIGH,1); H1:=ref(H2,1); hh:=ref(high,2);

代码2:

     H1:=NULL;H2:=NULL;

     // H1:=ref(H2,1);h2:=REF(HIGH,1); hh:=ref(high,2);

     h2:=REF(HIGH,1); H1:=ref(H2,1); hh:=ref(high,2);

 

上述两段代码执行后的H1  数值是不一样的。

代码1执行后的H1和HH不相等,代码2执行后的H1和HH相等。

不理解的地方在于:代码1的H1应该等于上根K线的H2,而上根K线的H2应该等于再上一根K线的HIGH,其实应该就是ref(high,2),理论上H1和HH应该是相等的,但实际结果不相等。

而代码2就是将H1和H2的计算顺序换了一下,执行结果H1就等于HH了。

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2015/11/9 21:17:27 [只看该作者]

在逐K线模式下,使用公式调试器,然后使用单步跟踪,详细看一下每执行一步后的变量变化流程


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/11/9 21:24:14 [只看该作者]

     H1:=NULL;H2:=NULL;

      H1:=ref(H2,1);                       //你这里取得的H2是上一根k代码执行到这里时候的H2值并没有运算到后一步

h2:=REF(HIGH,1);

 hh:=ref(H2,1);                           //和上面H1作比较一样的额代码,这里执行过了h2所以结果不同


 回到顶部
帅哥哟,离线,有人找我吗?
分析者
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:319 积分:0 威望:0 精华:1 注册:2015/11/1 14:20:16
  发帖心情 Post By:2015/11/9 21:33:22 [只看该作者]

OK,谢谢老师

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