欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → VBA取图表的参数

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有7343人关注过本帖树形打印复制链接

主题:VBA取图表的参数

帅哥哟,离线,有人找我吗?
黄金精算师
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:836 积分:0 威望:0 精华:0 注册:2014/12/26 11:47:55
VBA取图表的参数  发帖心情 Post By:2016/7/11 20:37:43 [只看该作者]

你好,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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2016/7/12 11:46:42 [只看该作者]

不明白你的问题描述,你是想从图表中读取公式的数值?

 回到顶部
帅哥哟,离线,有人找我吗?
黄金精算师
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:836 积分:0 威望:0 精华:0 注册:2014/12/26 11:47:55
  发帖心情 Post By:2016/7/12 17:25:43 [只看该作者]

我是一个套利的图表,我在图表里写的一个数据,VBA想读取这个数据,但是上面的那句是没有办法读到,
他读到的,是他指定的品种,
我要的是,我写的数据,如KKK:HOLDING;这样持仓就写到KKK里面,但是,VBA并不会了到策略里的KKK

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

 回到顶部
帅哥哟,离线,有人找我吗?
admin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
黄金精算师
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:836 积分:0 威望:0 精华:0 注册:2014/12/26 11:47:55
  发帖心情 Post By:2016/7/12 18:12:51 [只看该作者]

不明白你的问题描述,你是想从图表中读取公式的数值?
------------------------------------------------------------------------------------------
我是想取到图表策略中的数值,
     Set Formula = marketdata.STKINDI(sCode,sMarket,sPolicyName,0,iPeriod)      这一句,什么都控制了,就变成了,根据不是我真实的图表策略中的数值了
但是VBA中的取值确指定了品种, iKKK=Formula.GetBufData("KKK",Formula.DataSize-1)  ' 这是 读取图表策略    

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

 回到顶部
帅哥哟,离线,有人找我吗?
黄金精算师
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:836 积分:0 威望:0 精华:0 注册:2014/12/26 11:47:55
  发帖心情 Post By:2016/7/12 18:37:15 [只看该作者]

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

 

示例:


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

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

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



 回到顶部
帅哥哟,离线,有人找我吗?
黄金精算师
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:836 积分:0 威望:0 精华:0 注册:2014/12/26 11:47:55
  发帖心情 Post By:2016/7/12 18:48:18 [只看该作者]

图表策略中有一个叫全局变量的,EXTGBDATASET( , )这个VBA可以读取吗?

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


 回到顶部
帅哥哟,离线,有人找我吗?
jinn
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:217 积分:0 威望:0 精华:0 注册:2016/3/3 13:31:35
  发帖心情 Post By:2016/7/13 9:46:08 [只看该作者]

excel读写都比较慢

 回到顶部
帅哥哟,离线,有人找我吗?
黄金精算师
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:836 积分:0 威望:0 精华:0 注册:2014/12/26 11:47:55
  发帖心情 Post By:2016/7/13 17:19:04 [只看该作者]

要不,指导一下这个,EXCEL怎么创建可以吗
'创建EXCEL对象
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.Workbooks.Add

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By: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)



 回到顶部
总数 35 1 2 3 4 下一页