- 精华
- 0
- 在线时间
- 225 小时
- UID
- 1654
- 积分
- 1042
- 帖子
- 246
- 阅读权限
- 60
- 注册时间
- 2008-5-23
- 最后登录
- 2019-3-30
- 精华
- 0
- UID
- 1654
- 积分
- 1042
- 帖子
- 246
- 主题
- 41
- 阅读权限
- 60
- 注册时间
- 2008-5-23
- 最后登录
- 2019-3-30
|
引用参数
TradeBlazer公式的用户函数可以通过返回值,返回函数的计算结果,返回值只能是三种简单类型。当我们需要通过函数进行计算,返回多个值的时候,单个的返回值就不能满足需求了。在这种情况下,我们提出了引用参数的概念,引用参数是在调用的时候传入一个变量的地址,在用户函数内部会修改参数的值,在函数执行完毕,上层调用的公式会通过变量获得修改后的值。因为引用参数的使用是没有个数限制,因此,我们可以通过引用参数返回任意多个值。
例如,用户函数MyFunc如下:
Params
NumericSeries Price(0);
NumericRef oHigher(0);
NumericRef oLower(0);
Vars
Numeric Tmp(0);
Begin
Tmp = Average(Price,10);
oHigher = IIf(Tmp > High,Tmp,High);
oLower = IIf(Tmp < Low,Tmp,Low);
Return Tmp;
End
以上代码通过两个数值型引用参数返回10个周期的Price平均值和最高价的较大值oHigher,以及10个周期的Price平均值和最低价的较小值oLower,并且通过函数返回值输出10个周期的Price平均值。在调用该用户函数的公式中,可以通过调用该函数获得3个计算返回值,示例如下:
Vars
Numeric AvgValue;
Numeric HigherValue;
Numeric LowerValue;
Begin
AvgValue = MyFunc(Close,HigherValue,LowerValue);
...
End
这是帮助文档里关于引用参数的地方,但是MyFunc函数中并没有返回多个值啊?它只返回了一个Tmp而已,怎样能实现它返回多个值呢?另外怎样调用多个返回值? |
|