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
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
您好,昨天与您沟通后,还有两点疑惑:
1、知道这里的H1其实是取得上上根K线的H2,但我就要取昨天的H2,怎么处理呢?可否麻烦您直接在我上述代码上修改一下。
2、为什么我只要将“if bool then BEGIN h2:=tmph2;h1:=tmph1; end”这句话删除,H1取得就是昨天的H2。
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