以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  【提问】加variable和不加variable好像没有区别?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=65753)

--  作者:cathero2001
--  发布时间:2014/6/3 15:10:12
--  【提问】加variable和不加variable好像没有区别?
老师,您好。

我试了以下代码:

==========================
test:=0
VARIABLE: vtest=0;
GLOBALVARIABLE: gtest=0;

debugout(\'tp1: test = %.2f\', test);
test:=1;
debugout(\'tp2: test = %.2f\', test);

debugout(\'tp1: vtest = %.2f\', vtest);
vtest:=1;
debugout(\'tp2: vtest = %.2f\', vtest);

debugout(\'tp1: gtest = %.2f\', gtest);
gtest:=1;
debugout(\'tp2: gtest = %.2f\', gtest);
==========================

输出结果是:


tp1: test = 0.00
tp2: test = 1.00

tp1: vtest = 0.00
tp2: vtest = 1.00

tp1: gtest = 0.00
tp2: gtest = 1.00
运行结束

tp1: test = 0.00
tp2: test = 1.00

tp1: vtest = 0.00
tp2: vtest = 1.00

tp1: gtest = 1.00
tp2: gtest = 1.00
运行结束

这样看来,有没有VARIABLE效果是一样的,每次循环这个变量都会别初始化,对吗?


谢谢!



--  作者:jinzhe
--  发布时间:2014/6/3 15:21:05
--  

这个是在同一根k线上才是这的样,同一根k线数据还没有被计算,

你到第二根k线看看输出结果,variable的那个是不是都是1了

[此贴子已经被作者于2014/6/3 15:21:13编辑过]

--  作者:cathero2001
--  发布时间:2014/6/3 15:29:05
--  
第二根K线上也不是全1: (怎么看后台程序用的是什么周期的k线?我在设置里设的应该是1分钟线)

以下是真实的打印结果(test就是vtest):

14.06.03 14:54:48 IF00
tp1: test = 0.00
14.06.03 14:54:48 IF00
tp2: test = 1.00
14.06.03 14:54:48 IF00
tp1: gtest = 0.00
14.06.03 14:54:48 IF00
tp2: gtest = 1.00
14.06.03 14:54:48 IF00
运行结束
14.06.03 14:54:58 IF00
tp1: test = 0.00
14.06.03 14:54:58 IF00
tp2: test = 1.00
14.06.03 14:54:58 IF00
tp1: gtest = 1.00
14.06.03 14:54:58 IF00
tp2: gtest = 1.00
14.06.03 14:54:58 IF00
运行结束
14.06.03 14:55:08 IF00
tp1: test = 0.00
14.06.03 14:55:08 IF00
tp2: test = 1.00
14.06.03 14:55:08 IF00
tp1: gtest = 1.00
14.06.03 14:55:08 IF00
tp2: gtest = 1.00
14.06.03 14:55:08 IF00
运行结束
14.06.03 14:55:18 IF00
tp1: test = 0.00
14.06.03 14:55:18 IF00
tp2: test = 1.00
14.06.03 14:55:18 IF00
tp1: gtest = 1.00
14.06.03 14:55:18 IF00
tp2: gtest = 1.00
14.06.03 14:55:18 IF00
运行结束
14.06.03 14:55:28 IF00
tp1: test = 0.00
14.06.03 14:55:28 IF00
tp2: test = 1.00
14.06.03 14:55:28 IF00
tp1: gtest = 1.00
14.06.03 14:55:28 IF00
tp2: gtest = 1.00
14.06.03 14:55:28 IF00
运行结束
14.06.03 14:55:38 IF00
tp1: test = 0.00
14.06.03 14:55:38 IF00
tp2: test = 1.00
14.06.03 14:55:38 IF00
tp1: gtest = 1.00
14.06.03 14:55:38 IF00
tp2: gtest = 1.00
14.06.03 14:55:38 IF00
运行结束
14.06.03 14:55:48 IF00
tp1: test = 0.00
14.06.03 14:55:48 IF00
tp2: test = 1.00
14.06.03 14:55:48 IF00
tp1: gtest = 1.00
14.06.03 14:55:48 IF00
tp2: gtest = 1.00
14.06.03 14:55:48 IF00
运行结束
14.06.03 14:55:58 IF00
tp1: test = 0.00
14.06.03 14:55:58 IF00
tp2: test = 1.00
14.06.03 14:55:58 IF00
tp1: gtest = 1.00
14.06.03 14:55:58 IF00
tp2: gtest = 1.00
14.06.03 14:55:58 IF00
运行结束
14.06.03 14:56:08 IF00
tp1: test = 0.00
14.06.03 14:56:08 IF00
tp2: test = 1.00
14.06.03 14:56:08 IF00
tp1: gtest = 1.00
14.06.03 14:56:08 IF00
tp2: gtest = 1.00
14.06.03 14:56:08 IF00
运行结束
14.06.03 14:56:18 IF00
tp1: test = 0.00
14.06.03 14:56:18 IF00
tp2: test = 1.00
14.06.03 14:56:18 IF00
tp1: gtest = 1.00
14.06.03 14:56:18 IF00
tp2: gtest = 1.00
14.06.03 14:56:18 IF00
运行结束
14.06.03 14:56:28 IF00
tp1: test = 0.00
14.06.03 14:56:28 IF00
tp2: test = 1.00
14.06.03 14:56:28 IF00
tp1: gtest = 1.00
14.06.03 14:56:28 IF00
tp2: gtest = 1.00
14.06.03 14:56:28 IF00
运行结束
14.06.03 14:56:38 IF00
tp1: test = 0.00
14.06.03 14:56:38 IF00
tp2: test = 1.00
14.06.03 14:56:38 IF00
tp1: gtest = 1.00
14.06.03 14:56:38 IF00
tp2: gtest = 1.00
14.06.03 14:56:38 IF00
运行结束
14.06.03 14:56:48 IF00
tp1: test = 0.00
14.06.03 14:56:48 IF00
tp2: test = 1.00
14.06.03 14:56:48 IF00
tp1: gtest = 1.00
14.06.03 14:56:48 IF00
tp2: gtest = 1.00
14.06.03 14:56:48 IF00
运行结束
14.06.03 14:56:58 IF00
tp1: test = 0.00
14.06.03 14:56:58 IF00
tp2: test = 1.00
14.06.03 14:56:58 IF00
tp1: gtest = 1.00
14.06.03 14:56:58 IF00
tp2: gtest = 1.00
14.06.03 14:56:58 IF00
运行结束
14.06.03 14:57:08 IF00
tp1: test = 0.00
14.06.03 14:57:08 IF00
tp2: test = 1.00
14.06.03 14:57:08 IF00
tp1: gtest = 1.00
14.06.03 14:57:08 IF00
tp2: gtest = 1.00
14.06.03 14:57:08 IF00
运行结束
14.06.03 14:57:18 IF00
tp1: test = 0.00
14.06.03 14:57:18 IF00
tp2: test = 1.00
14.06.03 14:57:18 IF00
tp1: gtest = 1.00
14.06.03 14:57:18 IF00
tp2: gtest = 1.00
14.06.03 14:57:18 IF00
运行结束
14.06.03 14:57:28 IF00
tp1: test = 0.00
14.06.03 14:57:28 IF00
tp2: test = 1.00
14.06.03 14:57:28 IF00
tp1: gtest = 1.00
14.06.03 14:57:28 IF00
tp2: gtest = 1.00
14.06.03 14:57:28 IF00
运行结束
14.06.03 14:57:38 IF00
tp1: test = 0.00
14.06.03 14:57:38 IF00
tp2: test = 1.00
14.06.03 14:57:38 IF00
tp1: gtest = 1.00
14.06.03 14:57:38 IF00
tp2: gtest = 1.00
14.06.03 14:57:38 IF00
运行结束
14.06.03 14:57:48 IF00
tp1: test = 0.00
14.06.03 14:57:48 IF00
tp2: test = 1.00
14.06.03 14:57:48 IF00
tp1: gtest = 1.00
14.06.03 14:57:48 IF00
tp2: gtest = 1.00
14.06.03 14:57:48 IF00
运行结束
14.06.03 14:57:59 IF00
tp1: test = 0.00
14.06.03 14:57:59 IF00
tp2: test = 1.00
14.06.03 14:57:59 IF00
tp1: gtest = 1.00
14.06.03 14:57:59 IF00
tp2: gtest = 1.00
14.06.03 14:57:59 IF00
运行结束
14.06.03 14:58:09 IF00
tp1: test = 0.00
14.06.03 14:58:09 IF00
tp2: test = 1.00
14.06.03 14:58:09 IF00
tp1: gtest = 1.00
14.06.03 14:58:09 IF00
tp2: gtest = 1.00
14.06.03 14:58:09 IF00
运行结束

--  作者:jinzhe
--  发布时间:2014/6/3 15:31:12
--  
?test不是全局变量,是普通变量,每根k线都会被重新赋值成0,这个不明白?
--  作者:cathero2001
--  发布时间:2014/6/3 15:34:45
--  
“(test就是vtest)”

这里的test就是vtest,真实的代码是这个:


VARIABLE: test=0;
GLOBALVARIABLE: gtest=0;

debugout(\'tp1: test = %.2f\', test);
test:=1;
debugout(\'tp2: test = %.2f\', test);

debugout(\'tp1: gtest = %.2f\', gtest);
gtest:=1;
debugout(\'tp2: gtest = %.2f\', gtest);


谢谢~:)

--  作者:jinzhe
--  发布时间:2014/6/3 15:44:21
--  

上面有两段代码,哪段是你测试的,你确定下


--  作者:cathero2001
--  发布时间:2014/6/3 15:46:59
--  
好吧。

代码:
VARIABLE: test=0;
GLOBALVARIABLE: gtest=0;

debugout(\'tp1: test = %.2f\', test);
test:=1;
debugout(\'tp2: test = %.2f\', test);

debugout(\'tp1: gtest = %.2f\', gtest);
gtest:=1;
debugout(\'tp2: gtest = %.2f\', gtest);

输出:
14.06.03 14:54:48 IF00
tp1: test = 0.00
14.06.03 14:54:48 IF00
tp2: test = 1.00
14.06.03 14:54:48 IF00
tp1: gtest = 0.00
14.06.03 14:54:48 IF00
tp2: gtest = 1.00
14.06.03 14:54:48 IF00
运行结束
14.06.03 14:54:58 IF00
tp1: test = 0.00
14.06.03 14:54:58 IF00
tp2: test = 1.00
14.06.03 14:54:58 IF00
tp1: gtest = 1.00
14.06.03 14:54:58 IF00
tp2: gtest = 1.00
14.06.03 14:54:58 IF00
运行结束
14.06.03 14:55:08 IF00
tp1: test = 0.00
14.06.03 14:55:08 IF00
tp2: test = 1.00
14.06.03 14:55:08 IF00
tp1: gtest = 1.00
14.06.03 14:55:08 IF00
tp2: gtest = 1.00
14.06.03 14:55:08 IF00
运行结束
14.06.03 14:55:18 IF00
tp1: test = 0.00
14.06.03 14:55:18 IF00
tp2: test = 1.00
14.06.03 14:55:18 IF00
tp1: gtest = 1.00
14.06.03 14:55:18 IF00
tp2: gtest = 1.00
14.06.03 14:55:18 IF00
运行结束
14.06.03 14:55:28 IF00
tp1: test = 0.00
14.06.03 14:55:28 IF00
tp2: test = 1.00
14.06.03 14:55:28 IF00
tp1: gtest = 1.00
14.06.03 14:55:28 IF00
tp2: gtest = 1.00
14.06.03 14:55:28 IF00
运行结束
14.06.03 14:55:38 IF00
tp1: test = 0.00
14.06.03 14:55:38 IF00
tp2: test = 1.00
14.06.03 14:55:38 IF00
tp1: gtest = 1.00
14.06.03 14:55:38 IF00
tp2: gtest = 1.00
14.06.03 14:55:38 IF00
运行结束
14.06.03 14:55:48 IF00
tp1: test = 0.00
14.06.03 14:55:48 IF00
tp2: test = 1.00
14.06.03 14:55:48 IF00
tp1: gtest = 1.00
14.06.03 14:55:48 IF00
tp2: gtest = 1.00
14.06.03 14:55:48 IF00
运行结束
14.06.03 14:55:58 IF00
tp1: test = 0.00
14.06.03 14:55:58 IF00
tp2: test = 1.00
14.06.03 14:55:58 IF00
tp1: gtest = 1.00
14.06.03 14:55:58 IF00
tp2: gtest = 1.00
14.06.03 14:55:58 IF00
运行结束
14.06.03 14:56:08 IF00
tp1: test = 0.00
14.06.03 14:56:08 IF00
tp2: test = 1.00
14.06.03 14:56:08 IF00
tp1: gtest = 1.00
14.06.03 14:56:08 IF00
tp2: gtest = 1.00
14.06.03 14:56:08 IF00
运行结束
14.06.03 14:56:18 IF00
tp1: test = 0.00
14.06.03 14:56:18 IF00
tp2: test = 1.00
14.06.03 14:56:18 IF00
tp1: gtest = 1.00
14.06.03 14:56:18 IF00
tp2: gtest = 1.00
14.06.03 14:56:18 IF00
运行结束
14.06.03 14:56:28 IF00
tp1: test = 0.00
14.06.03 14:56:28 IF00
tp2: test = 1.00
14.06.03 14:56:28 IF00
tp1: gtest = 1.00
14.06.03 14:56:28 IF00
tp2: gtest = 1.00
14.06.03 14:56:28 IF00
运行结束
14.06.03 14:56:38 IF00
tp1: test = 0.00
14.06.03 14:56:38 IF00
tp2: test = 1.00
14.06.03 14:56:38 IF00
tp1: gtest = 1.00
14.06.03 14:56:38 IF00
tp2: gtest = 1.00
14.06.03 14:56:38 IF00
运行结束
14.06.03 14:56:48 IF00
tp1: test = 0.00
14.06.03 14:56:48 IF00
tp2: test = 1.00
14.06.03 14:56:48 IF00
tp1: gtest = 1.00
14.06.03 14:56:48 IF00
tp2: gtest = 1.00
14.06.03 14:56:48 IF00
运行结束
14.06.03 14:56:58 IF00
tp1: test = 0.00
14.06.03 14:56:58 IF00
tp2: test = 1.00
14.06.03 14:56:58 IF00
tp1: gtest = 1.00
14.06.03 14:56:58 IF00
tp2: gtest = 1.00
14.06.03 14:56:58 IF00
运行结束
14.06.03 14:57:08 IF00
tp1: test = 0.00
14.06.03 14:57:08 IF00
tp2: test = 1.00
14.06.03 14:57:08 IF00
tp1: gtest = 1.00
14.06.03 14:57:08 IF00
tp2: gtest = 1.00
14.06.03 14:57:08 IF00
运行结束
14.06.03 14:57:18 IF00
tp1: test = 0.00
14.06.03 14:57:18 IF00
tp2: test = 1.00
14.06.03 14:57:18 IF00
tp1: gtest = 1.00
14.06.03 14:57:18 IF00
tp2: gtest = 1.00
14.06.03 14:57:18 IF00
运行结束
14.06.03 14:57:28 IF00
tp1: test = 0.00
14.06.03 14:57:28 IF00
tp2: test = 1.00
14.06.03 14:57:28 IF00
tp1: gtest = 1.00
14.06.03 14:57:28 IF00
tp2: gtest = 1.00
14.06.03 14:57:28 IF00
运行结束
14.06.03 14:57:38 IF00
tp1: test = 0.00
14.06.03 14:57:38 IF00
tp2: test = 1.00
14.06.03 14:57:38 IF00
tp1: gtest = 1.00
14.06.03 14:57:38 IF00
tp2: gtest = 1.00
14.06.03 14:57:38 IF00
运行结束
14.06.03 14:57:48 IF00
tp1: test = 0.00
14.06.03 14:57:48 IF00
tp2: test = 1.00
14.06.03 14:57:48 IF00
tp1: gtest = 1.00
14.06.03 14:57:48 IF00
tp2: gtest = 1.00
14.06.03 14:57:48 IF00
运行结束
14.06.03 14:57:59 IF00
tp1: test = 0.00
14.06.03 14:57:59 IF00
tp2: test = 1.00
14.06.03 14:57:59 IF00
tp1: gtest = 1.00
14.06.03 14:57:59 IF00
tp2: gtest = 1.00
14.06.03 14:57:59 IF00
运行结束
14.06.03 14:58:09 IF00
tp1: test = 0.00
14.06.03 14:58:09 IF00
tp2: test = 1.00
14.06.03 14:58:09 IF00
tp1: gtest = 1.00
14.06.03 14:58:09 IF00
tp2: gtest = 1.00
14.06.03 14:58:09 IF00
运行结束


--  作者:jinzhe
--  发布时间:2014/6/3 15:49:03
--  
行, 明天我测试下看看
--  作者:cathero2001
--  发布时间:2014/6/3 15:52:47
--  
好,多谢。等你回复:)
--  作者:cathero2001
--  发布时间:2014/6/3 15:53:21
--  
后台系统运行。