Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共12 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:REF函数的调试问题,调试了几天都没有明白

1楼
分析者 发表于:2015/11/11 16:45:58

      H2:=ref(high,1);
      H1:=ref(H2,1);     
      tmph2:=ref(h2,1);
      tmph1:=ref(h1,1);
      bool:=close>open;
      if   bool  then BEGIN h2:=tmph2;h1:=tmph1;  end

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

 

  用鼠标右键查看运行时变量,明明上一根K线的H2是15.57,第二根K线执行之前H2还是15.57,理论上H1应该是ref(H2,1),应该还是15.57,可实际结果是 15.64,是上上根K线的高点。

  单步调试:看的很清楚,当前K线代码执行之前,上一根K线的H2是15.57 ,然后执行当前K线的 H1:=ref(H2,1); 执行完之后,H1就是15.64    
   


图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:4.jpg
图片点击可在新窗口打开查看
2楼
分析者 发表于:2015/11/11 16:47:06
就因为这么一个问题,耽误了我好多天进度,还没有进入到正式开发。
3楼
yukizzc 发表于:2015/11/11 16:59:43

H2:=ref(high,1);
      H1:=ref(H2,1);                         //这个地方取的是上一根k线执行这一行时候 H2的值,不是上一根k最后的H2  
      tmph2:=ref(h2,1);
      tmph1:=ref(h1,1);
      bool:=close>open;
      if   bool  then BEGIN h2:=tmph2;h1:=tmph1;  end

 

您如果对这儿还有疑问直接电话我把,2033087

4楼
分析者 发表于:2015/11/11 17:04:04
021-2033087?提示号码不正确呢
5楼
yukizzc 发表于:2015/11/11 17:07:44
20339087,漏了一位
6楼
分析者 发表于:2015/11/12 14:56:02

您好,昨天与您沟通后,还有两点疑惑:

  1、知道这里的H1其实是取得上上根K线的H2,但我就要取昨天的H2,怎么处理呢?可否麻烦您直接在我上述代码上修改一下。

  2、为什么我只要将“if   bool  then BEGIN h2:=tmph2;h1:=tmph1;  end”这句话删除,H1取得就是昨天的H2。

 

7楼
yukizzc 发表于:2015/11/12 15:38:20

    H2:=ref(high,1); 
      tmph2:=ref(h2,1);
      tmph1:=ref(h1,1);
      bool:=close>open;
      if   bool  then BEGIN h2:=tmph2;h1:=tmph1;  end

 

H1:=ref(H2,1);  

 

最后再去引用,另外不要变量和变量之间来回引用,必须h1放在最后去引用,才是上一根k最后的h2

8楼
分析者 发表于:2015/11/12 16:45:37
这是您昨天说的两个方法之一,但这不能满足我的需求啊,我不能将H1放在所有代码的最后,因为在前面的代码中需要对其进行计算,而且那个IF语句的目的就是根据不同条件对H1做不同赋值。
9楼
分析者 发表于:2015/11/12 16:45:56
记得您昨天说还有一个方法的。
10楼
yukizzc 发表于:2015/11/12 16:53:37
没有办法的,你必须在最后去引用。
共12 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in 0.04199 s, 2 queries.