能否实现如下功能,如何实现:
写一个逐周期自定义函数CF(Formula, Series), series既可以传入C,又可以传入(H+L)/2等,这样才能体现函数的价值嘛:)
可是在K线模式下,函数中Series(n)的写法报错,是不是K线模式不能传入数组啊,还是我的写法有问题?
比如说在K线模式下 UBound(Series) 类型不匹配,是不是说明Series不能是个数组啊。那我传入close、(H+L)/2也就不能达到所期望的那样了。
将你的公式调用方式,及VBA函数代码贴过来我们看看
很简单,比如我想求最近两个数据的最大值,如以下代码:
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) 求低点点最大值
问题主要出在,在逐K线模式下,你传递过来的变量都是单值数据而非数组,
DataCount = UBound(Series)
你这样来调用取数组的数量大小是错误的,正确的方法是程序内部使用一个数组,保存传递过来的数据,然后进行对比
不知您能看明白我的需求没,能不能帮忙写个小小的示例,关键代码即可。
即我想写一个函数能在逐K线模式下用,可传入不同变量(如Close、如High等),函数中可以调用这个变量不同时期的值以进行计算。
多谢!!