以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请教一个问题,求大大解答。  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=74434)

--  作者:lsx0514
--  发布时间:2015/1/14 14:16:10
--  请教一个问题,求大大解答。
IF BARPOS=1 THEN begin
 AA:=1;
END
AR:=ref(AA,1);
if barpos>1 then begin
AA:=AR+1;
end

如上公式,第二根K线走完后,AA变成了2,但在第3根K线时,AR依旧为1,请问这里要怎么理解?谢谢!

--  作者:jinzhe
--  发布时间:2015/1/14 14:23:16
--  

runmode:0;
IF BARPOS=1 THEN begin
 AA:=1;
END
r1:=ref(aa,1);

if barpos>1 then begin
   ar:=r1;
  AA:=AR+1;
end


--  作者:lsx0514
--  发布时间:2015/1/14 14:36:20
--  
版主,你这个代码并没有解决我的问题,事实上我这个代码想要得到的是让aa第m根K线走完后的值为m,而在第二根k线走完后,aa的值为2,但在第3根k线时,无论是ar还是r1,他们的值还是为1,导致第3根k线走完后aa的值仍为2。
当然直接写成aa:=aa+1就做到,但我不明白的是为什么ref(aa,1)在第3根时调用的不是第2根的aa值而是第1根的aa值。

--  作者:jinzhe
--  发布时间:2015/1/14 14:54:23
--  
计算顺序的问题,R1获取的是上一个周期未获得计算AA的值,所以没必要的话就不要反复嵌套REF
--  作者:lsx0514
--  发布时间:2015/1/14 15:12:41
--  
那为什么第二个周期末aa的值为2,但第3个周期r1=ref(aa,1)的值为1?

这个例子中可以不用ref,但实际中总会用到吧。。。上面的问题无法弄清原因以后编程都提心掉胆图片点击可在新窗口打开查看

--  作者:jinzhe
--  发布时间:2015/1/14 15:20:42
--  

这样的循环嵌套里面ref的值获取的是上一个周期没有被计算过的AR

看下顺序代码,AR的取值是在R1的赋值之前,那么REF之后获取的上一个周期的AR是没有被上一个周期赋值过的


--  作者:hohotss
--  发布时间:2015/1/14 15:47:59
--  
以下是引用jinzhe在2015/1/14 15:20:42的发言:

这样的循环嵌套里面ref的值获取的是上一个周期没有被计算过的AR

看下顺序代码,AR的取值是在R1的赋值之前,那么REF之后获取的上一个周期的AR是没有被上一个周期赋值过的



之前?


--  作者:jinzhe
--  发布时间:2015/1/14 15:57:19
--  

runmode:0;
IF BARPOS=1 THEN begin
 AA:=1;
END
r1:=ref(aa,1);

if barpos>1 then begin
   ar:=r1;
  AA:=AR+1;
end

 

AA=AR+1这句在R1=REF(AA,1)后面,那么ref时,就是R1获取的是上个周期的这一个没有被AA=AR+1计算过的AA值


--  作者:jinzhe
--  发布时间:2015/1/14 15:57:42
--  
如果搞不明白就简化掉,直接记结果