金字塔软件管理员:
您好。下面关于自定义函数的几个问题,希望可以解答一下,谢谢。
(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,而不是pel,所以数据引用不同。
另外补充个问题:在pel执行中含有vba自定义函数,而同时有vba宏在运行,那自定义函数是直接就进行计算,还是必须等宏执行完才计算。谢谢!
以下是引用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就会非常容易的理解了
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的自定义函数进行扩充