设为首页收藏本站

 找回密码
 注册
查看: 2820|回复: 2
打印 上一主题 下一主题

全局变量求解 [复制链接]

Rank: 2

精华
0
UID
112465
积分
63
帖子
36
主题
3
阅读权限
30
注册时间
2012-9-11
最后登录
2013-7-3
跳转到指定楼层
1#
发表于 2013-2-28 21:28:54 |只看该作者 |倒序浏览
第一个问题:一个图表里,插入两个策略a和b,a里的全局变量setglobalvar(0,0),在b里使用getglobalvar(0),取到的是什么值?
第二个问题:
vars
numeric a(0);

begin

if(condition1=ture)
  {
     setglobalvar(0.1);
  }
a=getglobalvar(0);
if(a==0 && condition2==ture)
{
  buy(0,open);
}



vars
numeric a(0);

begin
a=getglobalvar(0);

if(a==0 && condition2==ture)
{
  buy(0,open);
}
if(condition1=ture)
  {
     setglobalvar(0.1);
  }
a=getglobalvar(0);
这个两个程序有区别吗?

Rank: 1

精华
0
UID
176121
积分
25
帖子
14
主题
3
阅读权限
10
注册时间
2013-11-22
最后登录
2014-1-24
2#
发表于 2014-1-2 14:14:18 |只看该作者
第一个问题:b应该是0.
第二个问题:第一个策略a为0,第二个策略a为1,但是if(a==0 && condition2==ture)
{
  buy(0,open);
}
均不执行。。。
个人见解哈,不一定对!

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
116229
积分
2373
帖子
2247
主题
18
阅读权限
70
注册时间
2013-3-4
最后登录
2019-3-24
3#
发表于 2014-1-9 14:42:21 |只看该作者
这个问题,1:b中取到的是无效值
2:两种写法会有区别,根据楼主的程序, 我修改了一下,进行测试
  1. vars
  2. numeric a(0);

  3. begin

  4. if (BarStatus==0)
  5.    setglobalvar(0,0);

  6. if(time>0.100000)
  7.    {
  8.       setglobalvar(0,1);
  9.    }
  10. a=getglobalvar(0);

  11. if(a==0 )
  12. {
  13.    buy(0,open);
  14. }
  15. end
复制代码
这个代码编译之后,程序里一个信号都没有
  1. vars
  2. numeric a(0);

  3. begin

  4. if (BarStatus==0)
  5.    setglobalvar(0,0);
  6.    
  7. a=getglobalvar(0);

  8. if(a==0 )
  9. {
  10.    buy(0,open);
  11. }
  12. if(time>0.100000)
  13.    {
  14.       setglobalvar(0,1);
  15.    }

  16. End
复制代码
这个代码,图表中会有一个信号。

主要是改变条件的位置不同,造成的信号不一致,这里要求理解程序的执行顺序。当然如果条件写的合适的话,二者也可能结果会相同。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-3 00:21

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部