Rss & SiteMap

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

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

标题:求助,在读取tick数据时不能记录程序

1楼
kkk1234567 发表于:2014/10/9 15:57:29
本人自制了一个记录五档行情的程序,在其他SUb处都能正常记录,但是在Sub MARKETDATA_ReportNotify(ReportData)下记录总是失败,求问题原因!
代码如下:


Sub MARKETDATA_ReportNotify(ReportData)
application.MsgOut  "运行到这里1" 
xlSheet.Cells(row+2, 1)=438
xlSheet.Cells(row+1, 2)=26550
row=row+1
application.MsgOut  "运行到这里2" 
end sub

其中
在主程序中已经定义好文件,如下:
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象 
Set xlBook = xlApp.Workbooks.Open("d:\wudangjilu.xlsx") '打开已经存在的EXCEL工件簿文件 
xlApp.Visible = true '设置EXCEL对象可见(或不可见) 
Set xlSheet = xlBook.Worksheets("sheet1") '设置活动工作表  
row=xlSheet.UsedRange.Rows.Count     '已经使用行数
col=xlSheet.UsedRange.Columns.Count 


上述程序只要采用call Marketdata.RegReportNotify(“IF10”,"ZJ")注册的事件均只会运行到
application.MsgOut  "运行到这里1" 
运行不到
application.MsgOut  "运行到这里2" 

而当我自己调试着尝试主动调用时 call MARKETDATA_ReportNotify(1),程序会正常跑到application.MsgOut  "运行到这里2" ,且记录完全正常!!


请问一下这问题出在哪里,谢谢了!!!
2楼
kkk1234567 发表于:2014/10/9 16:08:21
目前解决办法为在程序运行完后,即VBAEND事件中,从内存中读取数据,数据能正常读取书写,但是一旦达到很大的数据,如160000条,很容易崩溃,因此还是需要在 
Sub MARKETDATA_ReportNotify(ReportData)事件中逐条记录,请大家试试看能不能正常解决该问题。本人新手,谢谢你们的支持和帮助
[此贴子已经被作者于2014/10/9 16:08:49编辑过]
3楼
王锋 发表于:2014/10/9 18:18:35
估计你的代码出在EXCEL问题上把,这个已经不属于我们金字塔的客服范畴了,建议你试试导出到文本文件
4楼
kkk1234567 发表于:2014/10/10 9:02:16
导入到文本文件数据不好读取,后续处理不好做,因而需要导入到excle
为什么主动call能正常运行,金字塔事件自动触发却不行了,理论上来说除了500ms事件太短的原因外(即一个tick运行时另一个tick到了冲掉了后续程序)不会出现这种情况,但是我只写几个数据500ms应该完全够了的
5楼
王锋 发表于:2014/10/10 9:20:09

分笔数据的量还有速度是很快的,EXCEL是受不了这些的,你还是考虑用文本吧

共5 条记录, 每页显示 10 条, 页签: [1]


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