设为首页收藏本站

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

全局变量的问题 [复制链接]

Rank: 2

精华
0
UID
6922
积分
75
帖子
16
主题
8
阅读权限
30
注册时间
2010-2-9
最后登录
2013-3-5
跳转到指定楼层
1#
发表于 2010-9-15 13:57:32 |只看该作者 |倒序浏览
Numeric myVol(0);
numeric G_myVol(0);

begin
myVol=GetGlobalVar(G_myVol);

if (myVol==0 and 满足开多条件)
   {myVol=1; buy();}

if( myVol==1 and  满足平多条件)
  { myVol=0;sell();}

SetGlobalVar(G_myVol,myVol);
end


这样用全局变量有什么问题?实盘中老是出些莫名奇妙的问题。

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20906
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
2#
发表于 2010-9-15 14:22:12 |只看该作者
这样使用没有问题,在盘中具体出现什么问题?

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
5525
积分
1473
帖子
429
主题
93
阅读权限
60
注册时间
2009-9-22
最后登录
2022-5-23
3#
发表于 2010-9-15 22:09:04 |只看该作者
今晚TB一直登录不上,是否大家遇到同样问题。
上善若水,无欲则刚

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
5525
积分
1473
帖子
429
主题
93
阅读权限
60
注册时间
2009-9-22
最后登录
2022-5-23
4#
发表于 2010-9-15 22:20:37 |只看该作者
管理员的回答可能有问题。
如果公共变量GV0没有初始化,那么执行myVol=GetGlobalVar(G_myVol);后其值为N/A,
那么其后只要是myVol变量参与的条件均为Flase, 因此不会对myVol赋值(仍为N/A),最后执行SetGlobalVar(G_myVol,myVol);结果GV0的值仍为N/A。
因此这段程序不可能执行开平仓指令。
解决的话,要加一段初始化程序:
begin
  If (BarStatus==0)
  {   If (SetGlobalVar(G_myVol)==InvalidNumeric) SetGlobalVar(G_myVol,0);
  }
  // 原程序;
end
上善若水,无欲则刚

使用道具 举报

Rank: 2

精华
0
UID
112465
积分
63
帖子
36
主题
3
阅读权限
30
注册时间
2012-9-11
最后登录
2013-7-3
5#
发表于 2012-12-28 14:58:15 |只看该作者
efrog 发表于 2010-9-15 22:20
管理员的回答可能有问题。
如果公共变量GV0没有初始化,那么执行myVol=GetGlobalVar(G_myVol);后其值为N/A ...

不错

使用道具 举报

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

bottom

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

GMT+8, 2024-5-23 12:47

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部