以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- 用VBA实现自定义函数的功能 (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=49697) |
-- 作者:biggsun -- 发布时间:2013/3/14 14:26:17 -- 用VBA实现自定义函数的功能 在逐K线模式下,我想用VBA实现自定义一个函数,但函数想有多个参数返回(返回的个数也不固定),我想返回一个数组,不知道应该怎么写? |
-- 作者:rushtaotao -- 发布时间:2013/3/14 14:33:55 -- 自定义函数中有例子,你肯定是要传递进去一个下标 返回出来一个值 Function CU_MA1(Formula,CLOSE,CYC) CU_MA1=0 \'防止公式逐周期模式时调用 If Formula.WorkMode = 0 Then Exit Function End If \'CLOSE数组数据长度一定会与Formula.DataSize-1相等 DataCount = UBound(CLOSE) If DataCount <> Formula.DataSize-1 Then Exit Function End If \'定义一个计算返回的数组 Dim ResultMa Redim ResultMa(DataCount) For i = Cyc-1 To Formula.DataSize-1 Count = 0 For k = i-(Cyc-1) To i Count = Count + CLOSE(k) Next ResultMa(i) = Count / Cyc Next \'返回一个计算完毕的均线数组 CU_MA1 = ResultMa End Function [此贴子已经被作者于2013-3-14 14:34:59编辑过]
|
-- 作者:biggsun -- 发布时间:2013/3/14 15:14:31 -- 这个例子我看过,这个不是在序列模式下吗? 我想在逐K模式下运行。 另外,我想一个自定义函数,返回多个参数,而且返回参数的数目也不固定,比如返回压力位,只有在计算完成后,我才知道有几个压力位,每个压力位的位置,这样的要求能实现吗?
谢谢!! |
-- 作者:admin -- 发布时间:2013/3/14 15:43:48 -- 自定义函数在逐K线模式下无法返回数组。 |
-- 作者:biggsun -- 发布时间:2013/3/14 15:53:04 -- 哦,多谢! |
-- 作者:admin -- 发布时间:2013/3/14 15:56:19 -- 如果想有多个返回,只能借助数据库技术。 在VBA中将结果保存到数据库,调用自定自定义函数以后,用PEL读取VBA写入的数据库数据 |