以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- RegReportNotify 的用法疑惑 (http://www.weistock.com/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这一语言太弱造成的问题 |