Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共5 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:请大侠,帮我看看,这段自定义函数代码,怎么一调用,系统就奔溃啊?

1楼
dzfp2010 发表于:2010/3/13 13:03:46

问题1:

我的用法是,在技术指标编辑器的函数帮助的“自定义函数”选项里添加新的自定义函数FFL,建立FFL(),这个自定义函数的代码如下:

 

Function FFL(Formula)
Set fm=UserFrame1.GetFormulaByName("Window5")
Count=fm.FormulaCount
MsgBox Count
End Function

 

然后再建立一个新的技术指标,代码如下:

 

FFL(); 

 

然后在窗口中加载这个指标,一加载就出问题,请问老师,这是为什么,我该怎么呢?

 


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

 

 

问题2:

 

请老师,听说Formula对象,是“PEL公式”和“VBA“ 进行交互的,能否详细的说说 Formula 对象的使用方法啊?

 

就用Macd来举例一下吧。。。。

[此贴子已经被作者于2010-3-13 19:03:10编辑过]
2楼
dzfp2010 发表于:2010/3/13 19:09:56

:-)顶。。。。

[此贴子已经被作者于2010-3-13 19:20:29编辑过]
3楼
admin 发表于:2010/3/13 19:11:23
UserFrame1 这个框架对象,是否存在
4楼
dzfp2010 发表于:2010/3/13 19:30:23

下面这些代码都能正常运行的,说明用" Window1 ",没问题,用"Window5"就出问题了,但是,"Window5"窗格是存在的:

 


图片点击可在新窗口打开查看此主题相关图片如下:window5.jpg
图片点击可在新窗口打开查看 

 

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


[此贴子已经被作者于2010-3-13 19:31:46编辑过]
5楼
dzfp2010 发表于:2010/3/13 22:00:28

检查出来了,是代码写错了,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

共5 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in .30859 s, 2 queries.