以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  代码执行不过来怎么解决?  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=11347)

--  作者:guotx2010
--  发布时间:2012/4/26 22:27:15
--  代码执行不过来怎么解决?

    最近写一个程序,需要监控10多个品种的价格变化,我使用了marketdata_RegReportNotify来注册这些品种,这样监控的任意一种合约价格变化都会在MarketData_ReportNotify(ReportData)中反应,其中ReportData就包含我要的品种代码和最新价,我用这些价格与我设置的入场条件进行比较(入场条件预计50-100之间,因为有开仓、平仓、止盈止损等条件),看是否满足开平仓条件,如果监控的品种少,价格变化较慢,程序应该是可以顺畅执行的,如果监控的品种多了,比如5个以上,每一秒都会有好几个品种价格变化了,问题就出现了:前一个品种的开平仓判断还没有执行完,后一个品种的数据又来了,就会导致程序阻塞,很可能导致电脑死机,而vba又不能使用多线程,不知道有哪位高人有好的解决方法。

   

    我之前写的甲跟踪乙账户开平仓的程序就碰到这个问题了,当乙账户密集成交,瞬间成交多单时,代码执行不过来导致漏掉一些指令,现在这个程序又碰到类似的问题。

 

    有碰到类似问题的同志们,一起来讨论讨论吧,该怎么解决这个问题?

 

 


--  作者:admin
--  发布时间:2012/4/27 0:12:41
--  
正常情况下区区几个品种是不会出现阻塞的,应该还是你的程序处理的效率问题,建议仔细看看代码,那些地方设计的不够优化,代码编写是不是重复计算的地方过多