设为首页收藏本站

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

我觉得我遇到的问题可能还是个BUG [复制链接]

Rank: 5Rank: 5

精华
0
UID
4613
积分
953
帖子
162
主题
37
阅读权限
60
注册时间
2009-6-10
最后登录
2019-3-30
跳转到指定楼层
1#
发表于 2010-4-2 22:04:29 |只看该作者 |倒序浏览
这几天在测试异常情况的时候,让我发现了个问题,我觉得这个问题可能还是一个BUG,还请管理员再看看。具体情况如下:

BUG名称:倒数第二根BAR在BarStatus == 1的时候还是有可能会往外发单

前提:所有的交易指令用的都是buy sell系列,不存在Q,A函数与buy sell指令混用的情况

如果收盘前的最后一个BAR有信号并发单,收盘后再重新进入,最后一个BAR的信号就消失了,这时一开盘,新的tick一来,这个BAR变成倒数第二个BAR,但仍然会被执行一遍,但除了显示信号外,还会往外发单。

这种情况在非收盘前的最后一个BAR也有同样的问题,比如某个BAR上产生信号且发单,然后假设TB宕掉重新启动,这时在刚才那个BAR上肯定会再发单,不过我们可以通过程序来控制此时不发单。但一旦当前的BAR执行完,变成倒数第二个BAR的时候,程序一旦不控制,还是会往外发单。

不过我发现,如果当前BAR产生信号后,只要信号不消失,当它变成倒数第二根BAR的时候是不会发单的。我想这应该是管理员说BarStatus==1的时候不会发单的缘故。

所以这个BUG就是BarStatus == 1的时候,在倒数第二个BAR上还是有可能会重复发单的。个人觉得不管在什么情况下,只要是BarStatus == 1,就一定不能发单,否则正常时候不出错,一旦有异常,比如关闭后重新运行就会有问题。

Rank: 5Rank: 5

精华
0
UID
4613
积分
953
帖子
162
主题
37
阅读权限
60
注册时间
2009-6-10
最后登录
2019-3-30
2#
发表于 2010-4-7 09:37:28 |只看该作者
怎么没有管理员关注?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20891
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
3#
发表于 2010-4-7 09:43:45 |只看该作者
历史数据上不会发单的

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
4613
积分
953
帖子
162
主题
37
阅读权限
60
注册时间
2009-6-10
最后登录
2019-3-30
4#
发表于 2010-4-7 09:56:30 |只看该作者
您测过了吗,为啥那么肯定呢

BarStatus == 1的时候,在倒数第二个BAR上还是有可能会重复发单的

请看:是倒数第二个BAR,刚刚从最新BAR切换到倒数第二个BAR的时候是有可能再次发单的。

当然再往前的BAR确实是不会发单。

我觉得你们应该在buy sellshort sell buytocover的函数中判断一下,只有BarStatus == 2才能往外发单,我估计你们目前是没有这么判断。

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
4485
积分
3032
帖子
164
主题
33
阅读权限
80
注册时间
2009-5-25
最后登录
2011-3-26
5#
发表于 2010-4-7 11:55:07 |只看该作者
当前面最后一根bar刚走完, 变成倒数第二根, 新Bar刚开始的一刻, 新的倒数第二根bar 需要按Barstatus==1执行一遍程序,这里似乎会有些超出预料的结果。 我这里就出现过平仓在前bar, 开仓在后bar的情况, 原因不明。 这里的处理方式, 尤其是时序需要详细列出,让大家清楚问题是怎么产生的, 怎么避免。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
4613
积分
953
帖子
162
主题
37
阅读权限
60
注册时间
2009-6-10
最后登录
2019-3-30
6#
发表于 2010-4-7 16:48:31 |只看该作者
请TB研发人员仔细看看倒数第二个BAR的最后一个tick的执行情况吧,不要总是让大家用A函数来发单呀,如果能把问题解决,测试与交易就不用再搞两套程序了,便于测试,也不会因为两套程序的代码不一致造成出错。

使用道具 举报

Rank: 4

精华
0
UID
7887
积分
527
帖子
65
主题
23
阅读权限
50
注册时间
2010-3-28
最后登录
2019-11-8
7#
发表于 2010-4-14 13:22:29 |只看该作者
我遇到和你同样的问题。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20891
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
8#
发表于 2010-4-14 13:42:03 |只看该作者
如果使用barstatus分别计算最新bar和历史bar,需要考虑If(CurrentBar==BarCount-2)的情况

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
4485
积分
3032
帖子
164
主题
33
阅读权限
80
注册时间
2009-5-25
最后登录
2011-3-26
9#
发表于 2010-4-19 13:05:03 |只看该作者
原帖由 幺林 于 2010-4-7 11:55 发表
当前面最后一根bar刚走完, 变成倒数第二根, 新Bar刚开始的一刻, 新的倒数第二根bar 需要按Barstatus==1执行一遍程序,这里似乎会有些超出预料的结果。 我这里就出现过平仓在前bar, 开仓在后bar的情况, 原因不明。 这里的处 ...


请TB做出详细说明, 尤其是时序

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20891
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
10#
发表于 2010-4-19 13:20:22 |只看该作者
如果使用barstatus来区分实盘和测试,需要注意CurrentBar==BarCount-2的情况
实时交易产生了新Bar的第一个Tick,图表上出现了一个新Bar,此时系统计算倒数第二个Bar和最新产生的Bar.计算一次后又只计算最新的Bar

使用道具 举报

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

bottom

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

GMT+8, 2024-4-21 00:05

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部