金字塔决策交易系统高级教程
3.4.3MarketData 对象
该对象描述了市场行情数据。可以通过这个对象来访问指定的品种的各种数据,也可以维护接收数据的设置。作为一个程序化交易软件,是离不开大量数据支持的,该对象也是一个数据的集中地,包括所有的数据处理均可以在该对象中找到方法。
下面我们例举一些最常用的方法和事件,该方法还包含了有关后台预警,后台程序化,以及股票池、期权等很多的操作这里不再一一列举,请用户参考 帮助菜单->VBA编程信息->内部对象。
GetReportData:取指定品种行情数据ReportData对象,该对象用于表示该品种最新
行情数据.
'在Test过程中打印出上海600217品种当前最新价。 Sub test()
set Report1 = marketdata.GetReportData(\msgbox Report1.NewPrice End Sub
GetReportCount:得到指定市场的品种数量.例如:GetReportCount(\表示取上海
期货交易所所有合约数量.如果调用失败返回-1.
GetReportDataByIndex:得到指定市场指定基于0索引的ReportData对象,该方法
主要可以用来对整个市场的品种进行遍历.
示例
‘该示例从郑州市场筛选SR合约得最大持仓量做为主力合约 Sub Test() Dim MaxCode Dim MaxVolume
'得到市场所有品种
Count = MarketData.GetReportCount(\ For i = 0 To Count-1
Set Report1 = MarketData.GetReportDataByIndex(\ '只处理SR合约
if Left(Report1.Label,2) = \ '只处理有效合约
if Right(Report1.Label,2) >= \ If Report1.Volume > MaxVolume Then
45
金字塔决策交易系统高级教程
MaxCode = Report1.Label MaxVolume = Report1.Volume End if end if End if Next
'显示成交量最大得合约 MsgBox MaxCode End Sub
GetHistoryData:取指定品种历史数据HistoryData对象,该对象记录了该品种历史数
据。
注意:
(1)HistoryDataMode属性为0时,该对象使用一个共有的缓冲区来保存用户打开的市场数据,这意味着用户所调用的数据内容再下次重新调用其他品种或者调用不同种类的数据后会自动失效,若要在不同的品种间做横向数据处理请注意备份之前打开的数据,用户可以使用Visual Basic内部提供的数组,另外还可以使用金字塔为您提供的功能强大的数组类Array.
(2)HistoryDataMode属性为1时,不同品种为独立的缓冲区,这样你就可以同时打开多个品种进行横向统计处理了,但是注意当HistoryDataMode=1时,数据使用完毕请调用DestroyHistoryData方法清理内存缓冲区.处于该模式时只有不同的品种才是独立的内存缓冲区,如果相同品种的多次调用,同样是共享缓冲区的.
GetHistoryData (Code, Market,CycType,[Count,Parameter]) Code 品种代码 Market 市场标识
Cyctype 周期类型,0 1分钟 1 5分钟 2 15分钟 3 30分钟 4 60分钟 5日线 6周线 7月线 8年线 9多日线 10分笔成交11多小时线 12多秒线13多分钟线14季度线 15半年线 16节气线 17 3分钟 18 10分钟 19 多笔线
Count 可选参数,若填数字则表示指定的调用数量,为0或者不填表示读取该品种在本地硬盘保存的全部数据
Parameter 可选参数若,当Cyctype为自定义周期时指定自定义周期数字。不填则表示使用系统选项设置中的自定义周期数字。
返回值 返回品种HistoryData对象 范例1:
46
相关推荐: