以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  VBA取图表的参数  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=100768)

--  作者:黄金精算师
--  发布时间:2016/7/11 20:37:43
--  VBA取图表的参数
你好,VBA 取图表上写的一个参数时,因为我的是套利,取不出来
sCode是合约,但是我的是套利,没有合约,这个写什么可以取到图表上的这个数据呢
    我能不能,什么都不限制,只取图表中KKK的值
程序如下



Sub RunReportData()  

sPolicyName="示范策略"
iPeriod=0
Set Formula = marketdata.STKINDI(sCode,sMarket,sPolicyName,0,iPeriod)   \'取策略
iFlag=Formula.GetBufData("Flag",Formula.DataSize-1)
nFlagPrice=Formula.GetBufData("FlagPrice",Formula.DataSize-1)
iBars=Formula.GetBufData("Bars",Formula.DataSize-1)
 iKKK=Formula.GetBufData("KKK",Formula.DataSize-1)  \' 这是 读取图表策略
 Application.MsgOut "iKK:"&iKKK
End Sub

--  作者:admin
--  发布时间:2016/7/12 11:46:42
--  
不明白你的问题描述,你是想从图表中读取公式的数值?
--  作者:黄金精算师
--  发布时间:2016/7/12 17:25:43
--  
我是一个套利的图表,我在图表里写的一个数据,VBA想读取这个数据,但是上面的那句是没有办法读到,
他读到的,是他指定的品种,
我要的是,我写的数据,如KKK:HOLDING;这样持仓就写到KKK里面,但是,VBA并不会了到策略里的KKK

实例,运行时,KKK:HOLDING     //KKK 等于,-1
但VBA,所调用的是KKK是1,因为VBA指定了品种,他不会去取当前图表的数据

--  作者:admin
--  发布时间:2016/7/12 17:43:47
--  

读取图表的公式数据不是你这么的用法,请参考下面的范例

 

示例:

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


--  作者:黄金精算师
--  发布时间:2016/7/12 18:12:51
--  
不明白你的问题描述,你是想从图表中读取公式的数值?
------------------------------------------------------------------------------------------
我是想取到图表策略中的数值,
     Set Formula = marketdata.STKINDI(sCode,sMarket,sPolicyName,0,iPeriod)      这一句,什么都控制了,就变成了,根据不是我真实的图表策略中的数值了
但是VBA中的取值确指定了品种, iKKK=Formula.GetBufData("KKK",Formula.DataSize-1)  \' 这是 读取图表策略    

换个说法就是,我只想取到一个图表中的一个数值,其他周期,品种,市场都不要限制我,只是图表中的数据是什么就读取出什么
 

--  作者:黄金精算师
--  发布时间:2016/7/12 18:37:15
--  

读取图表的公式数据不是你这么的用法,请参考下面的范例

 

示例:


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

这个例子这么复杂呀,我不会编程,有没有完整的例子给一个,

还有不明的想问一下,为什么要建EXL呀,不能直接读取吗?  像这个,Set Formula = marketdata.STKINDI(sCode,sMarket,sPolicyName,0,iPeriod)   \'取策略   这里只要把合约,时间什么指定去掉去掉就行



--  作者:黄金精算师
--  发布时间:2016/7/12 18:48:18
--  
图表策略中有一个叫全局变量的,EXTGBDATASET( , )这个VBA可以读取吗?

图表写到EXL不知道会不会影响速度什么的,能不能读取TXT文件呢,图表写出TXT文还是很容易的,只是VBA读取不会,


--  作者:jinn
--  发布时间:2016/7/13 9:46:08
--  
excel读写都比较慢
--  作者:黄金精算师
--  发布时间:2016/7/13 17:19:04
--  
要不,指导一下这个,EXCEL怎么创建可以吗
\'创建EXCEL对象
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.Workbooks.Add

--  作者:yukizzc
--  发布时间:2016/7/17 12:39:54
--  
excel只是范例,你不需要去关注。
只需要看这一部分就可以了,取得图表对应的公式对象,然后对这个对象取得输出值
Set Grid = Technic.GetGridByName("Main")
Set Formula = Grid.GetFormulaByIndex(1)
application.msgout  Formula.GetBufData("MA1", Formula.DataSize-1)