欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → [求助]用VARIABLE定义的变量和直接赋值定义的变量有何不同?

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有28181人关注过本帖树形打印复制链接

主题:[求助]用VARIABLE定义的变量和直接赋值定义的变量有何不同?

帅哥哟,离线,有人找我吗?
z7c9
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小飞侠 帖子:1882 积分:3310 威望:0 精华:15 注册:2010/3/15 13:11:56
何时才能让交易系统评测可以使用信号出现价成交测试  发帖心情 Post By:2010/8/17 15:53:16 [只看该作者]

用VARIABLE定义的变量和直接赋值定义的变量有何不同?

比如

VARIABLE:N=0;

N:=0;

这两种定义N的方式在使用上有什么不一样么?

[此贴子已经被作者于2010-8-17 15:59:27编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
fly
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2010/8/17 16:48:30 [只看该作者]

variable 为全局变量申明语句,一般用在逐周期计算模式。因为variable变量在序列模式与普通的变量是没有区别的。

 

关于全局变量的用处,可参考

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

 

用下面的例子在股指期货上面测试,可直观的看到有何不同

//测试全局变量
variable:maxprofit=0;

IF BARPOS = 2 THEN
   MAXPROFIT := 10;
 
IF BARPOS = 10 THEN
   MAXPROFIT := 30;
 
AA:MAXPROFIT,linethick0;

 

 

//测试普通变量
n:=0;
IF BARPOS = 2 THEN
    n:=1;
IF BARPOS = 10 THEN
    n:=2;

BB:n,linethick0; 



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
readonly
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:514 积分:2695 威望:0 精华:0 注册:2011/3/4 18:24:01
  发帖心情 Post By:2012/10/18 13:58:19 [只看该作者]

楼上的例子,去掉第一行: variable:maxprofit=0;
得出的AA值,跟有那行,没有区别,为什么要加申明全局变量呢?

 回到顶部
帅哥哟,离线,有人找我吗?
jinzhe
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2012/10/18 14:15:34 [只看该作者]

逐k线模式下不定义全局变量,maxprofit每根k线上的初始值都是0,然后再进行计算。

定义全局变量后,第一根k线以初始值0进行计算,然后后面的k线就以上根k线计算出的值为初始值进行计算



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
readonly
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:514 积分:2695 威望:0 精华:0 注册:2011/3/4 18:24:01
  发帖心情 Post By:2012/10/18 14:33:39 [只看该作者]

事实上并非如你所说,你测试一下那段程序吧。
去掉variable:maxprofit=0;
在第三棍k线时,AA仍然等于10.


 回到顶部
帅哥哟,离线,有人找我吗?
every
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:211 积分:703 威望:0 精华:0 注册:2012/10/9 9:06:01
  发帖心情 Post By:2012/10/18 14:41:19 [只看该作者]

variable 为全局变量申明语句,一般用在逐周期计算模式。因为variable变量在序列模式与普通的变量是没有区别的。

 

你看到的,没有区别,就是因为是在序列模式下看的.

 

逐周期和序列的区别,请参考该页

http://www.weistock.com/runmode.htm

 

逐周期模式下,在每根K线上,代码都会从头到尾重新执行一次; 

         Variable型的全局变量,只会在一开始的时候初始化一次随后的每个周期,会根据具体条件对此全局变量赋予不同的值,从而可以让编程者根据其返回值再行判断和利用.

         全局变量maxprofit,只在第1根的K线上初始化为0,

                              在BARPOS = 2的K线上(第2根K线上),重新赋值为10,且此后的K线上为10

                              在BARPOS = 10的K线上(第10根K线上),重新赋值为30,且此后的K线上为30

        

         普通变量n则不是,执行每根K线,都会先赋值为0

                              在BARPOS = 2的K线上(第2根K线上),先赋值为0,在赋值为2

                              在BARPOS = 10的K线上(第10根K线上),先赋值为0,在赋值为10

                              在其它K线上,都是赋值为0

 

如果还不明白,就出去走动走动换换心情,自己用K线再看看理解理解

[此贴子已经被作者于2012-10-18 14:42:00编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
jinzhe
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2012/10/18 14:44:40 [只看该作者]

你不要用结果来套原理,

换个最简单的公式,然后再结合理解我的话


variable:n=0;
m:=0;
if c>o then n:=n+1;
if c>o then m:=M+1;
n1:n;
m1:m;

 

看看M和N的差别,是不是你所说的一样


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
readonly
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:514 积分:2695 威望:0 精华:0 注册:2011/3/4 18:24:01
  发帖心情 Post By:2012/10/18 14:45:18 [只看该作者]

我是在逐k模式下测试的,你试一下。

 回到顶部
帅哥哟,离线,有人找我吗?
3dian
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:416 积分:2483 威望:0 精华:0 注册:2012/5/17 9:23:48
  发帖心情 Post By:2012/10/18 14:47:39 [只看该作者]

Variable的变量有点类似一个类里面的public声明的变量,另外一个类似private声明的变量,生命周期不同!


 回到顶部
帅哥哟,离线,有人找我吗?
jinzhe
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2012/10/18 14:51:08 [只看该作者]

我给的公式能体现全局变量定义和不用全局变量定义的变量区别,READONLY导入公式看看结果。


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
总数 41 1 2 3 4 5 下一页