设为首页收藏本站

 找回密码
 注册
查看: 2493|回复: 2
打印 上一主题 下一主题

一个关于引用参数的使用问题 [复制链接]

Rank: 3Rank: 3

精华
0
UID
117784
积分
147
帖子
67
主题
17
阅读权限
40
注册时间
2013-4-5
最后登录
2013-10-22
跳转到指定楼层
1#
发表于 2013-6-15 23:56:54 |只看该作者 |倒序浏览
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
--------------------------

HigherValue,LowerValue两个代码和oHigher、oLower 的关系是怎么样的?能不能写一个完整的公式应用?谢谢

Rank: 6Rank: 6

精华
0
UID
116229
积分
2373
帖子
2247
主题
18
阅读权限
70
注册时间
2013-3-4
最后登录
2019-3-24
2#
发表于 2013-6-18 15:16:46 |只看该作者
这个是关于理解参数传递的问题。函数中NumericRef      oHigher(0);     NumericRef      oLower(0);这样来定义的两个参数,传递的是地址,即这个函数不再为这两个参数分配内存单元,而是直接使用主程序中变量的地址单元。因此,就用你的例子,调用之后,highervalue中自然就保存了函数中oHigher的值,LowerValue保存了函数中oLower的值。

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
117784
积分
147
帖子
67
主题
17
阅读权限
40
注册时间
2013-4-5
最后登录
2013-10-22
3#
发表于 2013-6-18 20:26:44 |只看该作者
ample 发表于 2013-6-18 15:16
这个是关于理解参数传递的问题。函数中NumericRef      oHigher(0);     NumericRef      oLower(0);这样来 ...

谢谢 终于搞明白了

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-17 17:21

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部