Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共8 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:MARKETDATA_ReportNotify请教

1楼
klc 发表于:2013/8/29 11:59:13

在练习编写vba的高频交易程序,在测试中发现MARKETDATA_ReportNotify好像一个tick调用两次,是不是有什么原因(或者是我用了双数据)?

 

另外,MARKETDATA_ReportNotify的调用是不是阻塞的?就是说一个行情通知中的代码尚未处理完毕,后面的通知是不是会一直排队?如果执行的时间太长,后面的行情tick的排队会不会乱?

我编写的程序,通常每tick的处理时间在0.01秒以内,正常情况下肯定是执行得过来的,但可能在某些关键时候(例如第一个tick进行初始化、或出信号等时候),需要执行6、7秒,那么执行未完成的过程中,后续的tick的通知,是被丢弃了,还是同步调用处理,还是排队等待处理?如果是排队,有没有消息队列长度限制?另外排队会不会先后次序乱掉?

2楼
王锋 发表于:2013/8/29 12:21:01

1,调用两次很正常的。

2,默认是排队处理的,如果你希望中间能插杂其他的事件处理,可以调用  PeekAndPump 方法

3楼
z7c9 发表于:2013/8/29 12:30:48
为什么同一个tick要调用2次?
4楼
王锋 发表于:2013/8/29 12:38:24

比如只是委托手数变化也会调用一次

另外,刷新时的机制很复杂,偶尔出现调用两次也正常的

5楼
klc 发表于:2013/8/29 13:40:36
基本上都是调用两次,不过没影响,我会判断下相同品种的MinuteData的count,知道是不是有新的tick来,这样可以避免某些变量的计算重复两次
6楼
klc 发表于:2013/8/29 17:54:31
是不是可以这样理解,只要我不调用PeekAndPump,后续的通知就自然会排队
7楼
王锋 发表于:2013/8/29 21:34:33
是的
8楼
klc 发表于:2013/9/1 11:13:03
谢谢,明白了
共8 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.02734 s, 2 queries.