欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 求助,在读取tick数据时不能记录程序

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3181人关注过本帖树形打印复制链接

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

帅哥哟,离线,有人找我吗?
kkk1234567
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:3 积分:0 威望:0 精华:0 注册:2014/10/9 9:17:05
求助,在读取tick数据时不能记录程序  发帖心情 Post By: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" ,且记录完全正常!!


请问一下这问题出在哪里,谢谢了!!!


查看使用道具详细信息
获赠金币帖,共获得 0 个金币
 回到顶部
帅哥哟,离线,有人找我吗?
kkk1234567
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:3 积分:0 威望:0 精华:0 注册:2014/10/9 9:17:05
  发帖心情 Post By:2014/10/9 16:08:21 [只看该作者]

目前解决办法为在程序运行完后,即VBAEND事件中,从内存中读取数据,数据能正常读取书写,但是一旦达到很大的数据,如160000条,很容易崩溃,因此还是需要在 
Sub MARKETDATA_ReportNotify(ReportData)事件中逐条记录,请大家试试看能不能正常解决该问题。本人新手,谢谢你们的支持和帮助
[此贴子已经被作者于2014/10/9 16:08:49编辑过]

赠送楼主:0个金币
 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2014/10/9 18:18:35 [只看该作者]

估计你的代码出在EXCEL问题上把,这个已经不属于我们金字塔的客服范畴了,建议你试试导出到文本文件


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com 赠送楼主:0个金币
 回到顶部
帅哥哟,离线,有人找我吗?
kkk1234567
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:3 积分:0 威望:0 精华:0 注册:2014/10/9 9:17:05
  发帖心情 Post By:2014/10/10 9:02:16 [只看该作者]

导入到文本文件数据不好读取,后续处理不好做,因而需要导入到excle
为什么主动call能正常运行,金字塔事件自动触发却不行了,理论上来说除了500ms事件太短的原因外(即一个tick运行时另一个tick到了冲掉了后续程序)不会出现这种情况,但是我只写几个数据500ms应该完全够了的

赠送楼主:0个金币
 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2014/10/10 9:20:09 [只看该作者]

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



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com 赠送楼主:0个金币
 回到顶部