在我的VBA交易程序中有一个界面能显示当前持仓的条目,我希望能在点击列表中某个条目时能在金字塔显示相应合约的K线图(就像点击账户栏里的持仓品种那样),请问在VBA中如何实现呢?
相关参考范例代码:
call Application.ActivateFrameWithCode("MainFrame",Grid.StockLabel,Grid.Market,Grid.CycType)
还有一个问题,我想用以下代码获取主窗格的周期类型:
以下内容为程序代码:
1 dim grid
2 set grid=Technic.GetGridByName("Main")
3 application.MsgOut grid.cyctype
但却弹出出错信息:调用了尚未启动运行框架中的属性或方法。
请问如何检测到框架是否已启动运行?
Application 对象
IsActivateFrame 确定一个框架是否激活显示状态。例如:IsActivateFrame("Technic") 确认框架名称为Technic的技术分析主框架是否被打开,是返回1否则为0。
请问"Technic"和"MainFrame"两个框架有什么不一样?
我想实现:如果原来框架是分时图,就在点击持仓的条目时显示对应品种的分时图;如果原来框架是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编辑过]
MainFrame 是一个内置的主框架,金字塔会根据情况自动与Technic K线图和 分时图框架进行自动切换的。
因此
Set Grid=MainFrame.GetGridByName("Main")
If Grid.MinuteGraph then
这都是错误的写法,请改到
Set Grid=Technic.GetGridByName("Main")