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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → [求助]如何在VBA中以时间节点为参数取历史成交数据!

   

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


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

主题:[求助]如何在VBA中以时间节点为参数取历史成交数据!

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


加好友 发短信
等级:新手上路 帖子:28 积分:195 威望:0 精华:0 注册:2012/2/26 22:09:42
[求助]如何在VBA中以时间节点为参数取历史成交数据!  发帖心情 Post By:2012/12/5 14:22:16 [只看该作者]

请教各位高手个问题! 如果我想在VBA中取得今天某一时点的成交价格 用什么对象能实现啊?

我考察了下取数据的对象 report 是取及时数据的这个时点过去了就不能回头取了

minute和history取的数据是按成交顺序排的并不按时间序列排序,如果这样的话我11点开电脑想调用9:30的成交价格就成问题了!!!

求各位大侠赐教!

[此贴子已经被作者于2012-12-5 14:23:13编辑过]

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


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

HistoryData 对象

 

GetPosFromDate(DateData)

得到得到指定日期时间DateData的数据的基于0索引的序号。
如果指定日期超过数据范围返回-1。

示例:
'得到上期所指定品种的日线数据
Set History = marketdata.GetHistoryData("rb00","sq",5)
'显示指定日期的数据所在位置
MSGBOX HISTORY.GetPosFromDate("2010/12/28")



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

金字塔-技术部

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

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

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


加好友 发短信
等级:新手上路 帖子:28 积分:195 威望:0 精华:0 注册:2012/2/26 22:09:42
  发帖心情 Post By:2012/12/6 9:57:30 [只看该作者]

谢谢王锋老师!

 

您的方法我试了,但是当我取当日的分笔成交数据的的时候又碰到了新问题

dim i

Set History = marketdata.GetHistoryData("IF12","ZJ",10)
i = HISTORY.GetPosFromDate("2012/12/6 9:18:20")

mydate = History.Close(i)

上边这段代码运行的时候报错了, 提示 i 的用法错误!!

我查了下帮助里的范例 发现用法是mydate = History.Close(History.Count-1)这样的话 我只能倒序取数据,但是我从GetHistoryData函数里取得的是正序,无法传递到History.Close函数也就取不到数据。。。。。。。。。

请问王锋老师这个问题怎么解决?


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


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

Sub Test()
dim i

Set History = marketdata.GetHistoryData("IF12","ZJ",10)
i = HISTORY.GetPosFromDate("2012/12/6 9:18:20")

MSGBOX I
mydate = History.Close(i)

msgbox mydate

End Sub

 

经过上述代码测试没发现问题。

你出现的情况有可能是 GetPosFromDate 返回的数据索引为-1导致,处理数据时做下判断即可。

 

----------

发现用法是mydate = History.Close(History.Count-1)这样的话 我只能倒序取数据,但是我从GetHistoryData函数里取得的是正序,无法传递到History.Close函数也就取不到数据。。。。。。。。。

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

上面这句话看不懂是什么意思,想要表达什么? 

 



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

金字塔-技术部

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

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

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


加好友 发短信
等级:新手上路 帖子:28 积分:195 威望:0 精华:0 注册:2012/2/26 22:09:42
  发帖心情 Post By:2012/12/6 17:20:23 [只看该作者]

问题解决了 谢谢 王锋老师


 回到顶部