VBA中,获取一个价格还权的历史数据,怎么写?
实现技术分析图标中的价格还权(剔除合约换月带来的问题)
我找到一个PowerAspect 复权方向,0向前复权 1向后复权。
但具体的不会用。请高手指教!
示例2:
'读取白糖得日线数据
Set HistroyData = marketdata.GetHistoryData("SRX00","ZQ",5)'若要是分钟这里填0
for i = 0 to HistroyData.count-1
if i = 10 then
'显示第11个数据得时间,收盘,成交量
msgbox HistroyData.date(i)
msgbox HistroyData.Close(i)
msgbox HistroyData.Volume(i)
end if
next
默认就是价格还权的
不是吧。
你这个例子是读取的剔除连续合约换月造成的大幅跳空的因素了吗?应该不是吧。
Formula 对象
公式对象,每个公式都有该对象与之对应。
Formula对象提供了通过VBA系统与公式系统交互的方法,用户可以通过两种途径与FORMULA对象交互:
1、通过自定义函数,系统会每个周期调用自定义函数,然后通过传送的FORMULA对象交互
2、通过图表查询,调用图表上已经计算好的公式数据。
金字塔的公式有两种执行模式,即序列计算和逐周期计算两种模式,详情请参考 这里 的下半部分介绍
示例:
Sub Test()
'该示例将把技术分析主图上的MA指标前两条线输出到EXCEL中,使用前请注意将K线主图打开,并显示MA指标
'
得到框架名称为"Technic",窗格名称为"Main"的窗格对象
Set Grid =
Technic.GetGridByName("Main")
Set Formula =
Grid.GetFormulaByIndex(1)
'创建EXCEL对象
Set
objExcel = CreateObject("Excel.Application")
objExcel.Visible =
True
objExcel.Workbooks.Add
'循环遍历得到公式线
for i = 0 to Formula.DataSize-1
'将两条数据线插入到EXCEL第一、二列
objExcel.Cells(i+1,1).Value
=Formula.GetBufData("MA1",i)
objExcel.Cells(i+1,2).Value
=Formula.GetBufData("MA2",i)
objExcel.Cells(i+1,3).Value
=Formula.GetBufDateData(i)
next
End Sub
这个公式函数获取的是除权的数据还是没有除权的。