设为首页收藏本站

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

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

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
31#
发表于 2016-1-29 11:10:09 |只看该作者
fqxing95 发表于 2016-1-29 10:23
我是按数据库持仓来调整,这样看来数据库是没有问题的,还是持仓函数的问题。。。。。。。。。 ...

好的,这个我转交开发人员排查 一下吧。

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
14994
积分
2352
帖子
449
主题
54
阅读权限
70
注册时间
2010-7-31
最后登录
2021-12-26
32#
发表于 2016-1-29 13:39:45 |只看该作者
小米 发表于 2016-1-29 11:10
好的,这个我转交开发人员排查 一下吧。

谢谢,结果如何希望能在这里反馈一下。

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
14994
积分
2352
帖子
449
主题
54
阅读权限
70
注册时间
2010-7-31
最后登录
2021-12-26
33#
发表于 2016-1-29 15:20:27 |只看该作者
if(BarStatus()==2 and jytime==True)
{
buycc=A_BuyPosition();
sellcc=A_SellPosition();
if(buycc==InvalidNumeric or sellcc==InvalidNumeric or buycc>10000 or sellcc>10000 or BuyLotsz01==InvalidNumeric or BuyLotsz02==InvalidNumeric or BuyLotsz01>10000 or BuyLotsz02>10000) {
                   FileAppend("d:\\A"+Symbol+"_"+Text(CurrentDate)+".txt",DateTimeToString(SystemDateTime)+"多头"+Text(buycc)+"数据库多头"+text(BuyLotsz01)+"空头"+text(sellcc)+"数据库空头"+text(BuyLotsz02)+"无效值返回");
                                   return;}
if(TimeDiff(Myvar0,SystemDateTime)>300)
{
  if(strValued_x=="x+1" and buycc<>BuyLotsz01)
   {
                                   if(buycc>BuyLotsz01)  {A_SendOrder(Enum_Sell,Enum_Exit,buycc-BuyLotsz01,Q_BidPrice-3*chajia);SetGlobalVar(44,SystemDateTime);
                                   FileAppend("d:\\A"+Symbol+"_"+Text(CurrentDate)+".txt",DateTimeToString(SystemDateTime)+"多头"+Text(buycc)+"数据库多头"+text(BuyLotsz01)+"空头"+text(sellcc)+"数据库空头"+text(BuyLotsz02)+"多头错误1");
                                   return;}
                                   if(buycc<BuyLotsz01)  {A_SendOrder(Enum_Buy,Enum_Entry,BuyLotsz01-buycc,Q_AskPrice+3*chajia);SetGlobalVar(44,SystemDateTime);
                                   FileAppend("d:\\A"+Symbol+"_"+Text(CurrentDate)+".txt",DateTimeToString(SystemDateTime)+"多头"+Text(buycc)+"数据库多头"+text(BuyLotsz01)+"空头"+text(sellcc)+"数据库空头"+text(BuyLotsz02)+"多头错误2");
                                   return;}
                                   }
  if(strValuek_x=="x-1" and sellcc<>BuyLotsz02)
   {
                                   if(sellcc>BuyLotsz02) {A_SendOrder(Enum_Buy,Enum_Exit,sellcc-BuyLotsz02,Q_AskPrice+3*chajia);SetGlobalVar(44,SystemDateTime);
                                   FileAppend("d:\\A"+Symbol+"_"+Text(CurrentDate)+".txt",DateTimeToString(SystemDateTime)+"多头"+Text(buycc)+"数据库多头"+text(BuyLotsz01)+"空头"+text(sellcc)+"数据库空头"+text(BuyLotsz02)+"空头错误1");
                                   return;}
                                   if(sellcc<BuyLotsz02) {A_SendOrder(Enum_Sell,Enum_Entry,BuyLotsz02-sellcc,Q_BidPrice-3*chajia);SetGlobalVar(44,SystemDateTime);
                                   FileAppend("d:\\A"+Symbol+"_"+Text(CurrentDate)+".txt",DateTimeToString(SystemDateTime)+"多头"+Text(buycc)+"数据库多头"+text(BuyLotsz01)+"空头"+text(sellcc)+"数据库空头"+text(BuyLotsz02)+"空头错误2");
                                   return;}
                                   }
  if(strValued_x=="xdt" and buycc<>0)    {A_SendOrder(Enum_Sell,Enum_Exit,buycc,Q_BidPrice-3*chajia);SetGlobalVar(44,SystemDateTime);return;}
  if(strValuek_x=="xkt" and sellcc<>0)   {A_SendOrder(Enum_Buy,Enum_Exit,sellcc,Q_AskPrice+3*chajia);SetGlobalVar(44,SystemDateTime);return;}
                   }
if((strValued_x=="x+1" and buycc<>BuyLotsz01) or (strValuek_x=="x-1" and sellcc<>BuyLotsz02) or (strValued_x=="xdt" and buycc<>0) or (strValuek_x=="xkt" and sellcc<>0)) {
                   FileAppend("d:\\A"+Symbol+"_"+Text(CurrentDate)+".txt",DateTimeToString(SystemDateTime)+"多头"+Text(buycc)+"数据库多头"+text(BuyLotsz01)+"空头"+text(sellcc)+"数据库空头"+text(BuyLotsz02)+"错误返回");
                                   return;}

//记录一下,到底是什么东西错误。下午测了30分钟也没有发现问题,毕竟好像3天左右出现一次。

使用道具 举报

Rank: 2

精华
0
UID
172734
积分
64
帖子
25
主题
2
阅读权限
30
注册时间
2013-9-22
最后登录
2021-6-5
34#
发表于 2016-1-29 19:23:12 |只看该作者
本帖最后由 uniwin 于 2016-1-29 21:54 编辑

TB 版本 5257 32 位。同时交易10个品种。碰到好几次JD1605空头有持仓,然后数据库键值会莫名清0。 而其它品种,以及多头持仓好象没发现类似问题。

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
14994
积分
2352
帖子
449
主题
54
阅读权限
70
注册时间
2010-7-31
最后登录
2021-12-26
35#
发表于 2016-1-29 21:07:17 |只看该作者
uniwin 发表于 2016-1-29 19:23
同时交易10个品种。碰到好几次JD1605空头有持仓,然后数据库键值会莫名清0。 而其它品种,以及多头持仓好象 ...

最近两次也是空头,前面有点忘记了有没有多头出问题。

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
14994
积分
2352
帖子
449
主题
54
阅读权限
70
注册时间
2010-7-31
最后登录
2021-12-26
36#
发表于 2016-2-1 11:37:53 |只看该作者
本帖最后由 fqxing95 于 2016-2-1 17:17 编辑

通过输出信息分析,发现我自己读写数据库错误,数据库错误是平仓后数据库持仓数据没有清零。但是判断数据库持仓时前面还有加一个条件判断,而再次交易时,数据库是必须重新写的,好像也不至于造成和实际持仓不符的情况,再观察看看。。。

使用道具 举报

Rank: 1

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

使用道具 举报

Rank: 1

精华
0
UID
216747
积分
16
帖子
10
主题
1
阅读权限
10
注册时间
2015-8-12
最后登录
2022-3-29
38#
发表于 2017-4-13 07:25:41 |只看该作者
fqxing95 发表于 2016-1-26 00:47
这样问吧:账户实际有持仓,函数A_BuyPosition、A_SellPosition在什么情况下返回值为0 ...

个人卓见:持仓是读取的交易所的数据,网络的原因,丢包引起的

使用道具 举报

Rank: 1

精华
0
UID
216747
积分
16
帖子
10
主题
1
阅读权限
10
注册时间
2015-8-12
最后登录
2022-3-29
39#
发表于 2017-4-13 07:28:25 |只看该作者
网络丢包引起的

使用道具 举报

Rank: 1

精华
0
UID
250753
积分
16
帖子
10
主题
2
阅读权限
10
注册时间
2017-5-2
最后登录
2018-7-5
40#
发表于 2017-6-26 10:15:54 |只看该作者
请问频繁读数据库数据发生的读出数据错误后来解决了吗?各位前辈是怎么处理这个问题的?前些天突然就错误把我仓位平掉了,太可怕了!!

使用道具 举报

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

bottom

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

GMT+8, 2024-4-27 09:35

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部