以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  [求助]VBA里如何调用某个品种的K线图  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=147754)

--  作者:du_zb
--  发布时间:2017/2/14 15:30:16
--  [求助]VBA里如何调用某个品种的K线图
在我的VBA交易程序中有一个界面能显示当前持仓的条目,我希望能在点击列表中某个条目时能在金字塔显示相应合约的K线图(就像点击账户栏里的持仓品种那样),请问在VBA中如何实现呢?
--  作者:王锋
--  发布时间:2017/2/14 20:18:40
--  

相关参考范例代码:

call Application.ActivateFrameWithCode("MainFrame",Grid.StockLabel,Grid.Market,Grid.CycType)


--  作者:du_zb
--  发布时间:2017/2/15 13:44:03
--  
谢谢
--  作者:du_zb
--  发布时间:2017/2/15 17:40:46
--  
还有一个问题,我想用以下代码获取主窗格的周期类型:
以下内容为程序代码:

1 dim grid
2 set grid=Technic.GetGridByName("Main")
3 application.MsgOut grid.cyctype

但却弹出出错信息:调用了尚未启动运行框架中的属性或方法。

请问如何检测到框架是否已启动运行?

--  作者:王锋
--  发布时间:2017/2/15 19:13:52
--  

Application 对象

IsActivateFrame 确定一个框架是否激活显示状态。例如:IsActivateFrame("Technic") 确认框架名称为Technic的技术分析主框架是否被打开,是返回1否则为0。


--  作者:du_zb
--  发布时间:2017/2/16 8:54:34
--  
请问"Technic"和"MainFrame"两个框架有什么不一样?
--  作者:du_zb
--  发布时间:2017/2/16 9:23:45
--  
我想实现:如果原来框架是分时图,就在点击持仓的条目时显示对应品种的分时图;如果原来框架是K线图,就在点击持仓条目时显示K线图;如果框架还没有激活,就激活日K线图。代码如下:
以下内容为程序代码:

1     If Application.IsActivateFrame("MainFrame") then
2         Set Grid=MainFrame.GetGridByName("Main")
3         If Grid.MinuteGraph then
4             Call Application.ActivateFrameWithCode("MainFrame",Contract,Market,-1)
5         Else
6             Call Application.ActivateFrameWithCode("MainFrame",Contract,Market,Grid.CycType)
7         End If
8     Else
9         Call Application.ActivateFrameWithCode("MainFrame",Contract,Market,5)
10     End If

但当我每次点击持仓条目时都是显示日K线图,请问代码哪里出问题了?
[此贴子已经被作者于2017-2-16 9:24:48编辑过]

--  作者:王锋
--  发布时间:2017/2/16 9:34:13
--  

MainFrame 是一个内置的主框架,金字塔会根据情况自动与Technic K线图和 分时图框架进行自动切换的。

因此

Set Grid=MainFrame.GetGridByName("Main")
         If Grid.MinuteGraph then
这都是错误的写法,请改到

 

Set Grid=Technic.GetGridByName("Main")