- 精华
- 3
- 在线时间
- 196 小时
- UID
- 2459
- 积分
- 14113
- 帖子
- 179
- 阅读权限
- 150
- 注册时间
- 2008-9-26
- 最后登录
- 2015-12-3
- 精华
- 3
- UID
- 2459
- 积分
- 14113
- 帖子
- 179
- 主题
- 19
- 阅读权限
- 150
- 注册时间
- 2008-9-26
- 最后登录
- 2015-12-3
|
原帖由 nopain 于 2009-9-12 17:04 发表
请注意全局变量的初始化问题:
断线重连之后会重头计算,可能导致全局变量被重新初始化。
解决方法:只有全局变量是无效值的时候才对其赋初值。
MyGlobalVar1 = GetGlobalVar(0);
If(BarStatus==0)
{
If(MyGlobalVar1 ...
我的是这样的
If (GetGlobalVar(0)==InvalidNumeric)//初始化
{
FileAppend(filename,"自动交易开始运行,"+"时间:"+DateTimeToString (SystemDateTime()));
SetGlobalVar(0,0);
}
系统中有用到这种初始化方式,但我遇到的问题并不是“断线重连之后会重头计算,可能导致全局变量被重新初始化”这个原因,因为我情况是TB处于一直开启状态,断线重连之后并没有导致全局变量被重新初始化,只有在重新启动TB或关闭工作区重起开启工作区是才会被初始化,这从我的FileAppend(filename,"自动交易开始运行,"+"时间:"+DateTimeToString (SystemDateTime()));执行状态中可以看出,因为断线重连之后并没有输出文本“自动交易开始运行.....” |
|