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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → GetHistoryDataByDate取历史数据报错

   

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


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

主题:GetHistoryDataByDate取历史数据报错

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


加好友 发短信
等级:新手上路 帖子:14 积分:0 威望:0 精华:0 注册:2014/1/1 18:42:28
GetHistoryDataByDate取历史数据报错  发帖心情 Post By:2015/1/28 11:43:02 [只看该作者]

for date_i = 1 to Ubound(date_array) - 1

       my_HistoryData  = marketdata.GetHistoryDataByDate(TCCODE, TCMARKET, 5, date_i_b_str, date_i_e_str)

next

 

以上代码中的这一句:

marketdata.GetHistoryDataByDate(TCCODE, TCMARKET, 5, date_i_b_str, date_i_e_str)

在循环了几次后,就开始报错:

编译器错误:438

对象不支持此属性或方法

 

另外,出现这个报错后,如果再执行这段代码,不报错,但是一条数据也取不出来,结果都是空的。

 

说明:我下载了最近5年的历史日K线数据,数据应该是全的。

 

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
FexTel
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:5960 积分:0 威望:0 精华:2 注册:2014/6/12 11:29:04
  发帖心情 Post By:2015/1/28 13:30:25 [只看该作者]

代码给全,让工作人员看下。是不是数组的问题


金字塔—专业程序化交易量化投资平台

产品部

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

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

看你使用的是那种模式读取的数据,如果你用的是独立模式的,那么调用完一个品种数据后,你要释放对象的,否则会导致内存不足


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

金字塔-技术部

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

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

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


加好友 发短信
等级:新手上路 帖子:14 积分:0 威望:0 精华:0 注册:2014/1/1 18:42:28
  发帖心情 Post By:2015/1/28 13:45:34 [只看该作者]

Sub APPLICATION_VBAStart()
 application.MsgOut  "开始运行..."
 dim my_HistoryData, date_array(250)
 Set my_HistoryData  = marketdata.GetHistoryData("000001", "SH", 5)
 for i = 750 to 1000 -1
  date_array(i-750) = my_HistoryData.Date(i)
 next

  for date_i = 1 to Ubound(date_array) - 1
  date_i_b_str = date_array(date_i-1) 
     date_i_e_str = date_array(date_i) 
     application.MsgOut   date_i_b_str & " " & date_i_e_str
     my_HistoryData  = marketdata.GetHistoryDataByDate("600109", "SH", 5, date_i_b_str, date_i_e_str)
     application.MsgOut  my_HistoryData.count & " " & my_HistoryData.close(0)
     marketdata.DestroyHistoryData
    next

 

输出结果:

开始运行...
2014/1/21 2014/1/22
开始运行...
0:00:00 0:00:00
开始运行...
2014/1/21 2014/1/22

 

不但报错,而且多次运行的输出结果也很奇怪,每次都不一样,如上。


 回到顶部
帅哥哟,离线,有人找我吗?
greatcat
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:14 积分:0 威望:0 精华:0 注册:2014/1/1 18:42:28
  发帖心情 Post By:2015/1/28 13:52:58 [只看该作者]

看你使用的是那种模式读取的数据,如果你用的是独立模式的,那么调用完一个品种数据后,你要释放对象的,否则会导致内存不足

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

上面我已经贴了完整的代码,大哥帮忙看看啥问题


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/1/28 14:57:57 [只看该作者]

set my_HistoryData  = marketdata.GetHistoryDataByDate("600109", "SH", 5, date_i_b_str, date_i_e_str)       //这里set对象

另外看下工具-选项-维护这里内存保留调大点,在运行看看。下面是我这边输出情况

 

2013/1/16 2013/1/17
367 10.035
2013/1/17 2013/1/18
367 10.16
2013/1/18 2013/1/21
367 10.755
2013/1/21 2013/1/22
367 10.895


 回到顶部
帅哥哟,离线,有人找我吗?
greatcat
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:14 积分:0 威望:0 精华:0 注册:2014/1/1 18:42:28
  发帖心情 Post By:2015/1/28 16:39:16 [只看该作者]

非常感谢 yukizzc! 真是这两个原因,解决了!!!


 回到顶部