Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共24 条记录, 每页显示 10 条, 页签: [1] [2][3]
[浏览完整版]

标题:自定义函数传入变量问题

1楼
matador_liu 发表于:2012/3/28 1:34:27
能否实现如下功能,如何实现:
 
写一个逐周期自定义函数CF(Formula, Series), series既可以传入C,又可以传入(H+L)/2等,这样才能体现函数的价值嘛:)
2楼
guotx2010 发表于:2012/3/28 8:48:13
既然是参数,传入什么,不是你自己说了算了吗?
3楼
matador_liu 发表于:2012/3/28 11:44:15
 可是在K线模式下,函数中Series(n)的写法报错,是不是K线模式不能传入数组啊,还是我的写法有问题?
4楼
matador_liu 发表于:2012/3/28 11:48:18
比如说在K线模式下 UBound(Series)  类型不匹配,是不是说明Series不能是个数组啊。那我传入close、(H+L)/2也就不能达到所期望的那样了。
5楼
admin 发表于:2012/3/28 11:54:00
将你的公式调用方式,及VBA函数代码贴过来我们看看
6楼
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)  求低点点最大值
7楼
admin 发表于:2012/3/28 13:21:12

问题主要出在,在逐K线模式下,你传递过来的变量都是单值数据而非数组,

DataCount = UBound(Series)
你这样来调用取数组的数量大小是错误的,正确的方法是程序内部使用一个数组,保存传递过来的数据,然后进行对比

8楼
matador_liu 发表于:2012/3/28 13:43:09
不知您能看明白我的需求没,能不能帮忙写个小小的示例,关键代码即可。
即我想写一个函数能在逐K线模式下用,可传入不同变量(如Close、如High等),函数中可以调用这个变量不同时期的值以进行计算。
多谢!!
9楼
admin 发表于:2012/3/28 14:18:37

稍后给你做个范例

10楼
matador_liu 发表于:2012/3/28 14:28:51
非常感谢!!图片点击可在新窗口打开查看
共24 条记录, 每页显示 10 条, 页签: [1] [2][3]


Powered By Dvbbs Version 8.3.0
Processed in 0.01172 s, 2 queries.