以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  高级功能研发区  (http://222.73.7.161/bbs/list.asp?boardid=5)
----  VBA中,获取一个价格还权的历史数据,怎么写  (http://222.73.7.161/bbs/dispbbs.asp?boardid=5&id=67697)

--  作者:明心
--  发布时间:2014/7/22 17:57:42
--  VBA中,获取一个价格还权的历史数据,怎么写

VBA中,获取一个价格还权的历史数据,怎么写?

实现技术分析图标中的价格还权(剔除合约换月带来的问题)

我找到一个PowerAspect 复权方向,0向前复权 1向后复权。

但具体的不会用。请高手指教!


--  作者:王锋
--  发布时间:2014/7/22 18:06:29
--  

示例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

 

默认就是价格还权的


--  作者:明心
--  发布时间:2014/7/23 8:22:34
--  

不是吧。

你这个例子是读取的剔除连续合约换月造成的大幅跳空的因素了吗?应该不是吧。


--  作者:明心
--  发布时间:2014/7/23 8:23:57
--  
我输出来的值还是有换月跳空的,如何利用这个复权还权功能剔除这个因素
--  作者:王锋
--  发布时间:2014/7/23 8:45:33
--  
只要有除权数据,上面的范例得到的就是没有换月跳空的数据
--  作者:明心
--  发布时间:2014/7/24 10:36:40
--  

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


这个公式函数获取的是除权的数据还是没有除权的。