[求助]vba编程为什么多小时线和节气线没数据? [金字塔]
- 咨询内容:
'多小时线和节气线的数据都下载到了本地了,多小时是系统默认的2小时线
Sub SHSL()
Dim Grid '窗格引用对象变量
Dim iStockName '与窗格关联的证券名称
Dim iStockLabel '与窗格关联的证券代码
Dim iMarket '与窗格关联的市场代码
'参数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 多笔线
'不同周期数据的对象引用变量
Dim DataMinute1,DataMinute5,DataMinute15,DataMinute30,DataHour,DataDay,DataWeek,DataMonth,DataYear,DataDays
Dim DataBill,DataHours,DataSeconds,DataMinutes,DataQuarter,DataHalfYear,DataSolarTerms,DataMinute3,DataMinute10,DataBills
'用于数组的循环变量
Dim iMinute1,iMinute5,iMinute15,iMinute30,iHour,iDay,iWeek,iMonth,iYear,iDays
Dim iBill,iHours,iSeconds,iMinutes,iQuarter,iHalfYear,iSolarTerms,iMinute3,iMinute10,iBills
Dim i
'以下动态数组里的每列数据从左到右依次是:序号、时间、0、H、L、C、成交量、成交额、持仓量等八种数据
Dim arrMinute1(),arrMinute5(),arrMinute15(),arrMinute30(),arrHour(),arrDay(),arrWeek(),arrMonth(),arrYear(),arrDays()
Dim arrBill(),arrHours(),arrSeconds(),arrMinutes(),arrQuarter(),arrHalfYear(),arrSolarTerms(),arrMinute3(),arrMinute10(),arrBills()
MarketData.HistoryDataMode = 1 '不同周期品种为独立的缓冲区
Set Grid = Technic.GetGridByName("Main") '从图表上得到框架名称为"Technic"、窗格名称为"Main"的窗格对象——K线分析图
iStockName = Grid.StockName '与窗格关联的证券名称
iStockLabel = Grid.StockLabel '与窗格关联的证券代码
iMarket = Grid.Market '与窗格关联的市场代码
'以下得到图表关联品种的各周期类型数据
'读取多小时线数据
Set DataHours = MarketData.GetHistoryData(iStockLabel,iMarket,11) '设置引用对象
iHours = DataHours.Count - 1 '因为下标从0开始所以引用对象数据量减1
ReDim Preserve arrHours(iHours,8) '重置动态二维数组维度
For i = 0 To iHours '给动态数组写入以下值
arrHours(iHours,0) = i+1 '序号
arrHours(iHours,1) = DataHours.Date(i) '时间
arrHours(iHours,2) = DataHours.Open(i) '开盘
arrHours(iHours,3) = DataHours.High(i) '最高
arrHours(iHours,4) = DataHours.Low(i) '最低
arrHours(iHours,5) = DataHours.Close(i) '收盘
arrHours(iHours,6) = DataHours.Volume(i) '成交量
arrHours(iHours,7) = DataHours.Amount(i) '成交额
arrHours(iHours,8) = DataHours.Openint(i) '持仓量
Next
MsgBox "参数Cyctype为11即多小时"& arrHours(iHours - 3,5) '显示数据用于检查
'读取节气线数据
Set DataSolarTerms = MarketData.GetHistoryData(iStockLabel,iMarket,16) '设置引用对象
iSolarTerms = DataSolarTerms.Count - 1 '因为下标从0开始所以引用对象数据量减1
ReDim Preserve arrSolarTerms(iSolarTerms,8) '重置动态二维数组维度
For i = 0 To iSolarTerms '给动态数组写入以下值
arrSolarTerms(iSolarTerms,0) = i+1 '序号
arrSolarTerms(iSolarTerms,1) = DataSolarTerms.Date(i) '时间
arrSolarTerms(iSolarTerms,2) = DataSolarTerms.Open(i) '开盘
arrSolarTerms(iSolarTerms,3) = DataSolarTerms.High(i) '最高
arrSolarTerms(iSolarTerms,4) = DataSolarTerms.Low(i) '最低
arrSolarTerms(iSolarTerms,5) = DataSolarTerms.Close(i) '收盘
arrSolarTerms(iSolarTerms,6) = DataSolarTerms.Volume(i) '成交量
arrSolarTerms(iSolarTerms,7) = DataSolarTerms.Amount(i) '成交额
arrSolarTerms(iSolarTerms,8) = DataSolarTerms.Openint(i) '持仓量
Next
MsgBox "参数Cyctype为16即节气线"& arrSolarTerms(iSolarTerms - 3,5) '显示数据用于检查
MarketData.DestroyHistoryData '数据处理完毕后,清理缓冲区
End Sub - 金字塔客服:
消息输出框里有文字串但收盘价的值?
- 用户回复:
请大师们帮助
- 网友回复:
请大师们帮助啊
- 网友回复:
Set Grid = Technic.GetGridByName("Main") '从图表上得到框架名称为"Technic"、窗格名称为"Main"的窗格对象——K线分析图
iStockName = Grid.StockName '与窗格关联的证券名称
iStockLabel = Grid.StockLabel '与窗格关联的证券代码
iMarket = Grid.Market '与窗格关联的市场代码Set DataHours = MarketData.GetHistoryData(iStockLabel,iMarket,11) '设置引用对象
application.msgout DataHours .close(DataHours.Count - 1 )用这段代码测试正常,请您先简化分析,不要一次性堆积大量代码让工作人员去检查。。。
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容