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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 请大侠,帮我看看,这段自定义函数代码,怎么一调用,系统就奔溃啊?

   

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


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

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

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


加好友 发短信 元帅
等级:论坛游民 帖子:100 积分:948 威望:0 精华:2 注册:2010/3/8 20:28:24
请大侠,帮我看看,这段自定义函数代码,怎么一调用,系统就奔溃啊?  发帖心情 Post By: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编辑过]

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


加好友 发短信 元帅
等级:论坛游民 帖子:100 积分:948 威望:0 精华:2 注册:2010/3/8 20:28:24
[原创]日内震荡交易策略  发帖心情 Post By:2010/3/13 19:09:56 [显示全部帖子]

:-)顶。。。。

[此贴子已经被作者于2010-3-13 19:20:29编辑过]

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


加好友 发短信 元帅
等级:论坛游民 帖子:100 积分:948 威望:0 精华:2 注册:2010/3/8 20:28:24
  发帖心情 Post By: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编辑过]

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


加好友 发短信 元帅
等级:论坛游民 帖子:100 积分:948 威望:0 精华:2 注册:2010/3/8 20:28:24
  发帖心情 Post By: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


 回到顶部