以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=158315)

--  作者:leiting99
--  发布时间:2017/9/28 0:02:58
--  这个问题如何产生的?
当前价1925明明大于“前次高,按照公式X值应该为1,怎么还是-10呢?而且前1根k线时X值就已经变成1了,公式如下

Variable:X2=0;
REFX2:=ref(X2,1);
前高:ref(C,20)+4,COLORRED;
前次高:ref(C,20)+2,COLORMAGENTA;
前低:ref(C,20)-4,COLORGREEN;
前次低:ref(C,20)-2,COLORCYAN;
If C>前高 then begin
 X2:=10;
 end
 else if C<前低 then begin
 X2:=-10;
 end
 else if X2=-10 and C>前次高 then begin
 X2:=1;
 end
 else if X2=10 and C<前次低 then begin
 X2:=-1;
 end
 else begin
 探针:1000;
 X2:=REFX2;
 end
 X:X2,COLORWHITE;

--  作者:leiting99
--  发布时间:2017/9/28 0:03:29
--  
图片
--  作者:leiting99
--  发布时间:2017/9/28 0:06:37
--  

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

--  作者:wenarm
--  发布时间:2017/9/28 8:35:27
--  
探针:1000;
 X2:=REFX2;上面的语段。而REFX2=ref(X2,1);取得的结果其实是前两个时的x2的值。

 

这种类似的问题,你可以输出你相应的条件,看他是在进入的是那个分支语句进而判断逻辑上的问题


--  作者:leiting99
--  发布时间:2017/9/28 12:18:17
--  
那么我想让X在这种情况取前一根k线x2的值应该怎么改?谢谢
--  作者:wenarm
--  发布时间:2017/9/28 12:38:47
--  
Variable:X2=0;
REFX2:=ref(X2,1);
前高:ref(C,20)+4,COLORRED;
前次高:ref(C,20)+2,COLORMAGENTA;
前低:ref(C,20)-4,COLORGREEN;
前次低:ref(C,20)-2,COLORCYAN;
If C>前高 then begin
 X2:=10;
 end
 else if C<前低 then begin
 X2:=-10;
 end
 else if X2=-10 and C>前次高 then begin
 X2:=1;
 end
 else if X2=10 and C<前次低 then begin
 X2:=-1;
 end
 X:REFX2,COLORWHITE;