设为首页收藏本站

 找回密码
 注册
楼主: zxjt10224500
打印 上一主题 下一主题

tb数据库读写bug [复制链接]

Rank: 1

精华
0
UID
205882
积分
11
帖子
9
主题
2
阅读权限
10
注册时间
2015-3-25
最后登录
2020-7-31
跳转到指定楼层
1#
发表于 2016-1-13 15:24:50 |显示全部楼层 |倒序浏览
前提,用A程序写入数据库变量,频率很低,只有发生信号才会写,6个B程序读取A写入的数据库变量,B程序是tick出发读取,不写入。
发现绝大部分程序运行正常,但小概率事件会出现,其中5个B程序读取正常,1个B程序读取错误,这个错误并不是invalidstring类型,而是数据库别的某个变量值。这个数值正确与否比较难判断。
很闹心,万一读错了,造成大量开仓和平仓是件非常可怕的事情。希望tb能解决上述数据库读写bug。

Rank: 1

精华
0
UID
205882
积分
11
帖子
9
主题
2
阅读权限
10
注册时间
2015-3-25
最后登录
2020-7-31
2#
发表于 2016-1-13 15:25:47 |显示全部楼层
补充一下:每个程序分别占用一个图表。

使用道具 举报

Rank: 1

精华
0
UID
205882
积分
11
帖子
9
主题
2
阅读权限
10
注册时间
2015-3-25
最后登录
2020-7-31
3#
发表于 2016-1-13 16:28:29 |显示全部楼层
superwin 发表于 2016-1-13 16:22
是的,我也发现了,特别是读写的程序一多,就会出现读写错误,会读写到别的健名上,比如我这里有30个公式( ...

你说的确实是个不错的解决方案,我试试。

使用道具 举报

Rank: 1

精华
0
UID
205882
积分
11
帖子
9
主题
2
阅读权限
10
注册时间
2015-3-25
最后登录
2020-7-31
4#
发表于 2016-1-22 14:38:38 |显示全部楼层
完全无规律,有时候就是读到别的数据库变量里边了,有时候竟然还能读一半别的变量,
还有一个隐晦的问题,就是一张图表里边加载两个合约,第二个合约是指数合约,读取data1.Q_Last类似的东西会出错,虽然概率很低,但有时候足够让程序平仓了,也是很狗血。

使用道具 举报

Rank: 1

精华
0
UID
205882
积分
11
帖子
9
主题
2
阅读权限
10
注册时间
2015-3-25
最后登录
2020-7-31
5#
发表于 2016-1-25 10:51:26 |显示全部楼层
win 7 旗舰版 sp1 32位系统
cpu=intel g1610 2.6ghz
ram=2gb

tb=5.2.0.37  

5个工作区,每个工作区平均5个图表,每个图表加载3个合约,data0=主力合约,data1=指数合约,data3=次主力合约
每个图表加载的程序都涉及数据库读写。使用data1_Q_last 引发信号。

使用道具 举报

Rank: 1

精华
0
UID
205882
积分
11
帖子
9
主题
2
阅读权限
10
注册时间
2015-3-25
最后登录
2020-7-31
6#
发表于 2016-1-26 14:01:01 |显示全部楼层
Data1_Q_Last=Data1.Q_Last;
Data0_Q_bid=Q_BidPrice;
Data0_Q_Ask=Q_AskPrice;
        If(BarStatus==2&&(Data0_Q_bid==InvalidNumeric||Data0_Q_Ask==InvalidNumeric||Data1_Q_last==InvalidNumeric||Data1_Q_last>Data1.High*1.008||Data1_Q_last<Data1.low*0.992)) //实时数据是否正确有效
        {
                FileAppend("d:\\log\\bd_system_1_"+Account_S1+symbol_000+"_error.log",DateTimeToString(CurrentDate+CurrentTime)+"行情数据错误:ask="+Text(Data0_Q_ask)+" bid="+Text(Data0_Q_bid)+" last="+Text(Data1_Q_last));
                return;
        }

这段代码记录错误的Q_last数据,极少出现,但会出现从螺纹的图表上读取到了橡胶图表的数据。会引发止损。

使用道具 举报

Rank: 1

精华
0
UID
205882
积分
11
帖子
9
主题
2
阅读权限
10
注册时间
2015-3-25
最后登录
2020-7-31
7#
发表于 2016-2-24 09:25:53 |显示全部楼层
今天测试发现,数据库错误和机器运行速度有一定关系,高内存,将内存虚拟成磁盘,然后将tb安装进去,错误率降低很多,但还不能完全不出错。

使用道具 举报

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

bottom

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

GMT+8, 2024-5-3 20:40

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部