设为首页收藏本站

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

关于断线重连的全局变量 [复制链接]

Rank: 5Rank: 5

精华
0
UID
7206
积分
922
帖子
170
主题
57
阅读权限
60
注册时间
2010-3-10
最后登录
2018-2-23
跳转到指定楼层
1#
发表于 2010-11-3 14:31:13 |只看该作者 |倒序浏览
如下:

If(BarStatus==0)//初始化
{
setGlobalVar(1,InvalidNumeric);
setGlobalVar(0,InvalidNumeric);
SetTBProfileString(Symbol,"sm",Text(0));
SetTBProfileString(Symbol,"buym",Text(0));
SetTBProfileString(Symbol,"bm",Text(0));
SetTBProfileString(Symbol,"sellm",Text(0));  
}

断线重连后全局变量是不是又被初始化?

Rank: 7Rank: 7Rank: 7

精华
0
UID
8209
积分
3268
帖子
413
主题
78
阅读权限
80
注册时间
2010-4-6
最后登录
2013-3-18
2#
发表于 2010-11-3 14:33:42 |只看该作者
是的。应该加入额外控制条件。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20901
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
3#
发表于 2010-11-3 15:14:21 |只看该作者
If( BarStatus==0 || getglobalvar(0)==InvalidNumeric )
{
//初始化
}

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
5525
积分
1473
帖子
429
主题
93
阅读权限
60
注册时间
2009-9-22
最后登录
2022-5-23
4#
发表于 2010-11-3 16:05:00 |只看该作者
本帖最后由 efrog 于 2010-11-3 16:12 编辑

错了!应该:
If( BarStatus==0 && getglobalvar(0)==InvalidNumeric )
{
//初始化
}
说明:第一个Bar是由于公共变量没有使用过,所以其值为InvalidNumeric,一旦初始化其值就有效了,以后即使遇行情中断,程序再次从BarStatus==0从新执行,由于getglobalvar(0)已经不为InvalidNumeric,所以不会被重新初始化。
上善若水,无欲则刚

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
7206
积分
922
帖子
170
主题
57
阅读权限
60
注册时间
2010-3-10
最后登录
2018-2-23
5#
发表于 2010-11-3 16:20:59 |只看该作者
谢谢各位大侠!

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
7206
积分
922
帖子
170
主题
57
阅读权限
60
注册时间
2010-3-10
最后登录
2018-2-23
6#
发表于 2010-11-20 15:31:03 |只看该作者
If ( date!=date[1] )
{
SetGlobalVar ( 1,0 );
SetGlobalVar ( 2,0 );
SetGlobalVar ( 3,0 );
SetGlobalVar ( 4,0 );
}
这个代码断线重连后全局变量会被归零吗?

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15246
积分
704
帖子
167
主题
74
阅读权限
60
注册时间
2010-8-17
最后登录
2021-9-5
7#
发表于 2010-11-20 16:35:22 |只看该作者
1# jsz123

请教SetTBProfileString(Symbol,"sm",Text(0));是什么意思?问题弱了点。不好意思

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
5525
积分
1473
帖子
429
主题
93
阅读权限
60
注册时间
2009-9-22
最后登录
2022-5-23
8#
发表于 2010-11-20 21:40:20 |只看该作者
6# jsz123


会,因为断线后,TB会重新从Bar0开始执行,如果样本数够多,那么肯定执行到2个Bar分处不同的日期情况,使(date!=date[1])条件成立。
上善若水,无欲则刚

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
5525
积分
1473
帖子
429
主题
93
阅读权限
60
注册时间
2009-9-22
最后登录
2022-5-23
9#
发表于 2010-11-20 21:48:14 |只看该作者
1# jsz123

请教SetTBProfileString(Symbol,"sm",Text(0));是什么意思?问题弱了点。不好意思
文韦 发表于 2010-11-20 16:35

Symbol是返回图表的商品名函数,这里用作数据库的名称。
"sm”是关键字名,相当于变量名。
Text(0),将sm设置为"0"。必须转换成字符串,这是TB所谓“数据库”的弱点!
上善若水,无欲则刚

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15246
积分
704
帖子
167
主题
74
阅读权限
60
注册时间
2010-8-17
最后登录
2021-9-5
10#
发表于 2010-11-21 18:21:24 |只看该作者
If ( date!=date[1] )
SetGlobalVar ( 1,0 );

if(A_TotalPosition==0 && condition  && GetGlobalVar(1)==0)
{
Buy(Lots,NextOpen,True)
SetGlobalVar ( 1,1 );
}
开仓成交后2个问题:
1、如果断线再续后,此时的全局变量是0还是1?A_TotalPosition是等于0还是大于0?
2、如果在超级图表上的取消自动交易策略,再重新加载一次,此时的全局变量是0还是1?A_TotalPosition是等于0还是大于0?

使用道具 举报

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

bottom

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

GMT+8, 2024-5-8 17:35

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部