以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  “每次执行一次循环检测时,都会被初始化一次”,是什么意思  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=51690)

--  作者:wn10000neng
--  发布时间:2013/5/5 16:48:39
--  “每次执行一次循环检测时,都会被初始化一次”,是什么意思

Variable: Myholding=0;

DEBUGFILE(\'C:\\test.txt\',\'VS:%.0f\',Myholding);
IF ISLASTBAR THEN
BEGIN
 IF Myholding=0 THEN
 BEGIN
  Myholding:=1;
  DEBUGFILE(\'C:\\test.txt\',\'Myholding:%.0f\',Myholding);
 END
END

 

按照我的理解,在Myholding:=1后,应该保持为1。但实际测试文件的结果如下:

2010-07-28 11:12:00.265    VS:0
2010-07-28 11:12:00.265    Myholding:1
2010-07-28 11:12:05.734    VS:0
2010-07-28 11:12:05.734    Myholding:1
2010-07-28 11:12:10.718    VS:0
2010-07-28 11:12:10.718    Myholding:1
2010-07-28 11:12:15.718    VS:0
2010-07-28 11:12:15.718    Myholding:1
2010-07-28 11:12:20.734    VS:0
2010-07-28 11:12:20.734    Myholding:1
2010-07-28 11:12:25.718    VS:0
2010-07-28 11:12:25.718    Myholding:1
2010-07-28 11:12:30.734    VS:0
2010-07-28 11:12:30.734    Myholding:1
2010-07-28 11:12:35.718    VS:0
2010-07-28 11:12:35.734    Myholding:1


能请教一下是怎么回事?Variable定义的全局变量为什么被不停地初始化了呢?

 

原文链接:http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=2262&page=5

 


 


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

--  作者:klc
--  发布时间:2013/5/5 23:03:11
--  
因为在ISLASTBAR时,计算的值是不保存的,只有历史K线计算的值,variable才会保留
--  作者:klc
--  发布时间:2013/5/5 23:06:20
--  

因为islastbar会被行情不断的刷新,会进行多次计算,所以如果不断的保存值,也会造成程序不可控,所以这样设计是合理的。

 

我现在设计的走完K线是这样设计的,islastbar就直接exit

然后就计算到上根K线为止,信号判断取上根K线的值就是了。

 

如果你要直接判断是否倒数第二根K线,可以用barpos=datacount-1来判断


--  作者:wn10000neng
--  发布时间:2013/5/6 9:42:49
--  
请客服回答,谢谢