以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- MARKETDATA_ReportNotify请教 (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=55925) |
-- 作者:klc -- 发布时间:2013/8/29 11:59:13 -- MARKETDATA_ReportNotify请教 在练习编写vba的高频交易程序,在测试中发现MARKETDATA_ReportNotify好像一个tick调用两次,是不是有什么原因(或者是我用了双数据)?
另外,MARKETDATA_ReportNotify的调用是不是阻塞的?就是说一个行情通知中的代码尚未处理完毕,后面的通知是不是会一直排队?如果执行的时间太长,后面的行情tick的排队会不会乱? 我编写的程序,通常每tick的处理时间在0.01秒以内,正常情况下肯定是执行得过来的,但可能在某些关键时候(例如第一个tick进行初始化、或出信号等时候),需要执行6、7秒,那么执行未完成的过程中,后续的tick的通知,是被丢弃了,还是同步调用处理,还是排队等待处理?如果是排队,有没有消息队列长度限制?另外排队会不会先后次序乱掉? |
-- 作者:王锋 -- 发布时间:2013/8/29 12:21:01 -- 1,调用两次很正常的。 2,默认是排队处理的,如果你希望中间能插杂其他的事件处理,可以调用 PeekAndPump 方法 |
-- 作者:z7c9 -- 发布时间:2013/8/29 12:30:48 -- 为什么同一个tick要调用2次? |
-- 作者:王锋 -- 发布时间:2013/8/29 12:38:24 -- 比如只是委托手数变化也会调用一次 另外,刷新时的机制很复杂,偶尔出现调用两次也正常的 |
-- 作者:klc -- 发布时间:2013/8/29 13:40:36 -- 基本上都是调用两次,不过没影响,我会判断下相同品种的MinuteData的count,知道是不是有新的tick来,这样可以避免某些变量的计算重复两次 |
-- 作者:klc -- 发布时间:2013/8/29 17:54:31 -- 是不是可以这样理解,只要我不调用PeekAndPump,后续的通知就自然会排队 |
-- 作者:王锋 -- 发布时间:2013/8/29 21:34:33 -- 是的 |
-- 作者:klc -- 发布时间:2013/9/1 11:13:03 -- 谢谢,明白了 |