问题1:
我的用法是,在技术指标编辑器的函数帮助的“自定义函数”选项里添加新的自定义函数FFL,建立FFL(),这个自定义函数的代码如下:
Function FFL(Formula)
Set fm=UserFrame1.GetFormulaByName("Window5")
Count=fm.FormulaCount
MsgBox Count
End Function
然后再建立一个新的技术指标,代码如下:
FFL();
然后在窗口中加载这个指标,一加载就出问题,请问老师,这是为什么,我该怎么呢?
问题2:
请老师,听说Formula对象,是“PEL公式”和“VBA“ 进行交互的,能否详细的说说 Formula 对象的使用方法啊?
就用Macd来举例一下吧。。。。
:-)顶。。。。
下面这些代码都能正常运行的,说明用" Window1 ",没问题,用"Window5"就出问题了,但是,"Window5"窗格是存在的:
Set xGrid = UserFrame1.GetGridByName("Window1")
'创建窗格对象后,创建ReportData(行情数据对象)对象
Set xReportData=xGrid.GetReportData()
'显示窗格内的公式个数
Count =xGrid.FormulaCount
'输出当前窗口加载的公式数量
MsgBox "加载的公式数量是:"&Count
'输出“金字塔”程序的安装目录
MsgBox "金字塔软件的安装路径是:"&Application.AppPath
'输出昨日收盘价:
LastClose=xReportData.LastClose
MsgBox "昨日收盘价是:"&LastClose
'输出最新价格:
NewPrice=xReportData.NewPrice
MsgBox "最新价格是:"&NewPrice
'对历史数据进行处理
Set xHistoryData=xGrid.GetHistoryData()
MsgBox "当前有多少天的历史数据:"&xHistoryData.Count
'关于Formula对象
Set xFormula=xGrid.GetFormulaByName("MyMa")
xFCount=xFormula.LineCount
MsgBox "MyMa公式的数据是:"&xFCount
检查出来了,是代码写错了,Formula对象要通过Grid对象创建,而不能通过Frame对象创建,正确的代码应该是这样的:
'Formula对象的用法
Function FFL(Formula)
If Formula.IsLastBar <> 1 THEN Exit Function
Set xGrid=UserFrame1.GetGridByName("Window5")
'Set xFormula=xGrid.GetFormulaByName("MyMa")
xCount=xGrid.FormulaCount
Dim i
i=0
If i=0 Then
MsgBox xCount
i=i+1
End If
End Function