以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  VARIABLE的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=72920)

--  作者:lance0307
--  发布时间:2014/12/11 15:11:07
--  VARIABLE的问题
请问VARIABLE声明的变量初始赋值在每次公式刷新计算的时候都会被初始化一次吗?

主要是在K线周期内的刷新会初始化吗

--  作者:yukizzc
--  发布时间:2014/12/11 15:30:11
--  

当根k线内的值不会变化,你要盘中实时记录情况的话用EXTGBDATA这个

 

http://www.weistock.com/WeisoftHelp/zbgs003.htm


--  作者:lance0307
--  发布时间:2014/12/11 15:36:19
--  
我遇到一种情况了

我的代码最前面variable定义的变量在K线周期内不会刷新一次

但是我在策略的中间进行了variable变量声明,结果这些变量在K线周期内也会重新赋值初始化,这是什么情况
我用msgout打印出来看了,可以确定

--  作者:yukizzc
--  发布时间:2014/12/11 15:57:16
--  

逐k模式会在每根k线上去进行输出的,你用仅刷最后一根去看


--  作者:lance0307
--  发布时间:2014/12/11 16:27:30
--  
我是刷最后一根的
而且代码里面还加了

if ISLASTBAR then begin

end

--  作者:lance0307
--  发布时间:2014/12/11 16:28:53
--  
关键是最开始定义的variable变量是好的

就是中间用variable申明的就出现这种情况

简直诡异

--  作者:lance0307
--  发布时间:2014/12/11 16:30:41
--  
后来实在没辙了
申明为GLOBALVARIABLE,结果才好

但是这个现象我实在找不出原因啊
还请高手给解答

--  作者:yukizzc
--  发布时间:2014/12/11 17:09:04
--  

重新赋值初始化,你这个是指什么样的

把你msgout输出的信息发了看下,还有你全局变量申明输出的代码一起。


--  作者:lance0307
--  发布时间:2014/12/16 13:55:56
--  
你好,代码如下

VARIABLE:lastcalctime=0;
VARIABLE:buyzscount=0;
VARIABLE:sellzscount=0;
newhqtime:=DYNAINFO(207);
hqtimesec:=STRTONUM(STRRIGHT(NUMTOSTREX(newhqtime,0,6),2));

msgout(1,NUMTOSTREX(lastcalctime,0,2));
lastcalctime:=hqtimesec;

--  作者:yukizzc
--  发布时间:2014/12/16 14:41:00
--  

没有问题,这个就是我2楼给你的帖子说的,你没看吗?如果你要k线内刷新请用连接下面那几个全局变量去控制

VARIABLE

全局变量

一次指标刷新过程。

单个指标加载后的,一次刷新过程中起作用。指标加载后,定义语句在第一根K线处初始化为设定值,后面的K线调用此全局变量计算时,调用到的值是上一根K线计算的返回值。当行情更新,指标重新刷新时,那么此变量又会在第一根K线处被定义语句初始化。