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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 自定义函数的几个问题

   

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


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

主题:自定义函数的几个问题

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


加好友 发短信
等级:论坛游侠 帖子:112 积分:65 威望:0 精华:0 注册:2010/9/30 7:57:18
自定义函数的几个问题  发帖心情 Post By:2010/11/28 18:47:30 [只看该作者]

 金字塔软件管理员:
     您好。下面关于自定义函数的几个问题,希望可以解答一下,谢谢。
     (1)自定义函数下调用标准函数
          a)以前在论坛曾经问过"自定义函数中是否可以直接调用标准函数",被告知有部分函数是可以的。
            我现在想知道,自定义函数下可以直接调用的标准函数有多少。(例如,CLOSE),最好能够告诉一下,能在什么地方查询到。
          b)对于自定义函数下可以直接调用的CLOSE,如果不做传入,会报错,说类型不匹配,在此请问一下是否可以在自定义函数下直接调用CLOSE。
          c)如果传入的话我们知道CLOSE是一个序列函数,也就是说是一个数组。那么此时CLOSE(i),是会出现数据的。
            但是我想请问一下,这里的i的含义是什么。
          d)在论坛文章http://www.weistock.com/bbs/dispbbs.asp?BoardID=5&ID=158&replyID=&skin=1中我看到了自定义函数的Formula:
            它应该是自定义函数生成时候自动加入的(并非参数),它有自己的属性,分别是:
               Formula.WorkMode,
               Formula.ParentGrid.GetHistoryData,
               Formula.IndexData,
               Formula.DataSize,
            能否解释一下这些属性的含义,最好能够告知在什么地方能够看到文档,可以在编程的时候进行查询。
      (2)自定义函数和全局变量设置函数EXTGBDATASET
          自定义函数中可以不可以使用全局变量设置函数EXTGBDATASET,全局变量设置函数EXTGBDATASET是否只可以设定10个,就是0-9。
      (3)在程序化交易系统中的函数调用
          在程序化交易系统中,想调用函数是否一定需要自定义函数。另外想请问一下,自定义函数是否支持递归调用。
           


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


加好友 发短信
等级:论坛游民 帖子:269 积分:1502 威望:0 精华:0 注册:2010/11/1 21:37:43
  发帖心情 Post By:2010/11/29 11:37:09 [只看该作者]

据我了解,自定义函数是vba,而不是pel,所以数据引用不同。

另外补充个问题:在pel执行中含有vba自定义函数,而同时有vba宏在运行,那自定义函数是直接就进行计算,还是必须等宏执行完才计算。谢谢!


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


加好友 发短信
等级:论坛游民 帖子:269 积分:1502 威望:0 精华:0 注册:2010/11/1 21:37:43
  发帖心情 Post By:2010/11/29 17:36:45 [只看该作者]

以下是引用grecian在2010-11-28 18:47:30的发言:
 金字塔软件管理员:
     您好。下面关于自定义函数的几个问题,希望可以解答一下,谢谢。
     (1)自定义函数下调用标准函数
          a)以前在论坛曾经问过"自定义函数中是否可以直接调用标准函数",被告知有部分函数是可以的。
            我现在想知道,自定义函数下可以直接调用的标准函数有多少。(例如,CLOSE),最好能够告诉一下,能在什么地方查询到。
          b)对于自定义函数下可以直接调用的CLOSE,如果不做传入,会报错,说类型不匹配,在此请问一下是否可以在自定义函数下直接调用CLOSE。
          c)如果传入的话我们知道CLOSE是一个序列函数,也就是说是一个数组。那么此时CLOSE(i),是会出现数据的。
            但是我想请问一下,这里的i的含义是什么。
          d)在论坛文章http://www.weistock.com/bbs/dispbbs.asp?BoardID=5&ID=158&replyID=&skin=1中我看到了自定义函数的Formula:
            它应该是自定义函数生成时候自动加入的(并非参数),它有自己的属性,分别是:
               Formula.WorkMode,
               Formula.ParentGrid.GetHistoryData,
               Formula.IndexData,
               Formula.DataSize,
            能否解释一下这些属性的含义,最好能够告知在什么地方能够看到文档,可以在编程的时候进行查询。
      (2)自定义函数和全局变量设置函数EXTGBDATASET
          自定义函数中可以不可以使用全局变量设置函数EXTGBDATASET,全局变量设置函数EXTGBDATASET是否只可以设定10个,就是0-9。
      (3)在程序化交易系统中的函数调用
          在程序化交易系统中,想调用函数是否一定需要自定义函数。另外想请问一下,自定义函数是否支持递归调用。
           

其实所有的问题,你只要看作是vba的function就会非常容易的理解了


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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2010/12/1 22:33:44 [只看该作者]

帮助-》编程信息

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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2010/12/2 15:34:36 [只看该作者]

1)

a: 自定义函数使用的是VBS脚本语言,与PEL的交互只能通过参数传递方式,故PEL的函数功能大都需要用户自行编写,少数统计函数可以直接使用,具体请参阅 帮助-》编程信息

b: 可以在VBA代码里直接取行情的CLOSE数据,不用参数传递,自定义函数中直接取收盘价,例子很多,请楼主参考 http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=158 教程里,逐周期模式的自定义函数做法。

c: 自定义的函数参数传递,由于公式系统的模式不同,分序列和逐周期,对于序列模式,参数是数组,对于逐周期,参数是单值数据。请参考上面的教程。

d:帮助-》编程信息

 

 (2)自定义函数和全局变量设置函数EXTGBDATASET
不限制数量,EXTGBDATASET的设置,请参考编程信息中的Document对象

(3)在程序化交易系统中的函数调用
  程式化交易不一定非要自定义函数,只有在PEL无法描述的某些复杂的操作我们采用VBA的自定义函数进行扩充


 回到顶部