以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- 自定义函数传入变量问题 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=10795) |
-- 作者:matador_liu -- 发布时间:2012/3/28 1:34:27 -- 自定义函数传入变量问题 能否实现如下功能,如何实现: 写一个逐周期自定义函数CF(Formula, Series), series既可以传入C,又可以传入(H+L)/2等,这样才能体现函数的价值嘛:) |
-- 作者:guotx2010 -- 发布时间:2012/3/28 8:48:13 -- 既然是参数,传入什么,不是你自己说了算了吗? |
-- 作者:matador_liu -- 发布时间:2012/3/28 11:44:15 -- 可是在K线模式下,函数中Series(n)的写法报错,是不是K线模式不能传入数组啊,还是我的写法有问题? |
-- 作者:matador_liu -- 发布时间:2012/3/28 11:48:18 -- 比如说在K线模式下 UBound(Series) 类型不匹配,是不是说明Series不能是个数组啊。那我传入close、(H+L)/2也就不能达到所期望的那样了。 |
-- 作者:admin -- 发布时间:2012/3/28 11:54:00 -- 将你的公式调用方式,及VBA函数代码贴过来我们看看 |
-- 作者:matador_liu -- 发布时间:2012/3/28 12:17:09 -- 很简单,比如我想求最近两个数据的最大值,如以下代码: Function CU_HHV(Formula,Series) \'改为逐周期调用 If Formula.WorkMode = 1 Then Exit Function End If DataCount = UBound(Series) IF Series(DataCount) > Series(DataCount-1) THEN \'Function.Max(Series(DataCount), Series(DataCount-1)) CU_HHV = Series(DataCount) ELSE CU_HHV = Series(DataCount - 1) END IF End Function 调用的时如下: CU_HHV(H) 求高点最大值 CU_HHV(L) 求低点点最大值 |
-- 作者:admin -- 发布时间:2012/3/28 13:21:12 -- 问题主要出在,在逐K线模式下,你传递过来的变量都是单值数据而非数组, DataCount = UBound(Series) |
-- 作者:matador_liu -- 发布时间:2012/3/28 13:43:09 -- 不知您能看明白我的需求没,能不能帮忙写个小小的示例,关键代码即可。 即我想写一个函数能在逐K线模式下用,可传入不同变量(如Close、如High等),函数中可以调用这个变量不同时期的值以进行计算。 多谢!! |
-- 作者:admin -- 发布时间:2012/3/28 14:18:37 -- 稍后给你做个范例 |
-- 作者:matador_liu -- 发布时间:2012/3/28 14:28:51 -- 非常感谢!! ![]() |