以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  高级功能研发区  (http://222.73.7.161/bbs/list.asp?boardid=5)
----  RegReportNotify 的用法疑惑  (http://222.73.7.161/bbs/dispbbs.asp?boardid=5&id=9159)

--  作者:金字塔学习者
--  发布时间:2011/11/28 14:56:07
--  RegReportNotify 的用法疑惑

请问用RegReportNotify 注册品种的话

如果某一个合约被注册两次

那是不是当ReportNotify 事件被触发的时候,会执行两次呢?

 

因为我导入数据库是用ReportNotify 来触发的,但是之前我第一次注册品种后没有取消

第二次又注册了。

然后发现数据库里的数据,有的在同一秒内,有4笔。然后两笔是一样的


--  作者:26327756l
--  发布时间:2011/11/28 15:02:58
--  

你可以写上几条语句试试

ReportNotify  方法里写上

application.msgout ReportData.NewPrice &ReportData.date
最后一笔数据到来的时间。如果有重复的话,就说明两次注册,就会执行两次触发。


--  作者:金字塔学习者
--  发布时间:2011/11/28 15:18:56
--  

额。我是每一笔新来的数据都记录下时间的(是REPORT里的时间)

然后输入到数据库,然后就发现重复啦


--  作者:26327756l
--  发布时间:2011/11/28 15:26:36
--  

那么知道结论了,你要解决吗?

只注册一次不就行了。

 

[此贴子已经被作者于2011-11-28 15:26:59编辑过]

--  作者:金字塔学习者
--  发布时间:2011/11/28 15:28:10
--  

有个细节需要知道

今天我开始注册了一次

然后把金字塔都关了

然后再开启金字塔

然后再注册一次

不知道这样算不算注册了两次呢?

 

因为现在看数据表 又发现了数据的重复


--  作者:金字塔学习者
--  发布时间:2011/11/28 15:28:50
--  

如果今天关闭金字塔后重新开启 然后注册 这个过程算注册一次的话

那就意味着有问题啦


--  作者:26327756l
--  发布时间:2011/11/28 15:35:41
--  

这样 你实现一个 Unload 或close 或endVBA

在关闭的软件的时间执行一下上面的函数,

先判断这个对象是否已注册,如果注册了就,取消注册。

UnRegReportNotify  取消品种数据注册


--  作者:金字塔学习者
--  发布时间:2011/11/28 15:41:53
--  

嗯 明天我试试吧 我直接先写了个按钮 实行取消注册的品种

然后看看 一次注册的情况下 数据会不会出错


--  作者:金字塔学习者
--  发布时间:2011/11/28 15:56:04
--  

另外,干脆咨询下RegReportNotify品种后,数据的传输机制吧

是一秒传输2笔数据么?

如果这一秒内没有成交,那是否还传输数据,如果传输,那传输的是什么数据呢?

如果某段时间内没有成交的交易,但是委买,委卖有变化,那是否还是会传输,传输的最新价还是上一笔成交的数据么?

如果这段时间内既没有成交的交易,委买,委卖也没有变化,这个时候又是怎么传输的呢?

 

暂时想到这么多,麻烦版主解答一下哈


--  作者:金字塔学习者
--  发布时间:2011/11/28 16:09:07
--  

我现在怀疑有的重复数据是因为VBA这个程序语言的不稳定造成的

因为我仔细回忆了一下

我是开始打开宏的时候当时出了个错误

然后我修改了代码

然后关闭了宏和金字塔软件

然后重开软件 重新执行宏

 

之后运行的大概十二分钟的时间内 程序运行的很顺利

这个时间段输入的数据也没有问题,也没有重复

 

然后之后我发现数据库貌似没有实时地插入数据了,但是宏在很稳定的运行

这个时候我没有去动金字塔软件,后来在ACCESS数据库里把时间点按升序排列,发现是有数据的

但是很奇怪为什么之前都是自动升序排列数据的,要知道这个实时的插入数据肯定是按时间点的前后来插入数据的,也就是说最新时间的数据肯定是在数据库的后面的

 

上面是一个问题,然后我在收盘后查看数据库的数据,发现后面的就有数据重复了。

 

那现在就需要搞清楚,究竟是金字塔在RegReportNotify 品种后,机制上有问题呢

还是VBA这一语言太弱造成的问题