- 精华
- 1
- 在线时间
- 27 小时
- UID
- 3800
- 积分
- 133
- 帖子
- 28
- 阅读权限
- 40
- 注册时间
- 2009-3-12
- 最后登录
- 2009-9-27
- 精华
- 1
- UID
- 3800
- 积分
- 133
- 帖子
- 28
- 主题
- 6
- 阅读权限
- 40
- 注册时间
- 2009-3-12
- 最后登录
- 2009-9-27
|
回复 #13 pwqzc 的帖子
【这个例子,怎么看不明白呢?】
// 简称: HHV
// 名称: 求N周期的最高值
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
//------------------------------------------------------------------------
Params
NumericSeries Price(0);【这是在定义参数,价格序列,默认值是0】
Numeric Length(5); 【定义长度,默认5个元素】
Vars
Numeric highestValue(0);【定义一个变量,存放最大值】
Numeric minDay; 【定义一个变量,存放参与比较的有效元素个数】
Numeric i; 【定义一个循环变量】
Begin
minDay = Min(CurrentBar,Length-1);【取出CurrentBar和Length-1中较小的数,比如:只有3个Bar,则CurrentBar=3,而Length默认是5,此时,只需要从3个元素中挑选最大的即可。】
for i=0 to minDay
{
highestValue=Max(highestValue,Price);
【疑问:highestValue是个变量,默认值是0,Price是个参数序列,默认值也是0,此处调用,也没有指出下标,会取出什么值呢?是不是应该写成“Price"?
2、price参数序列的默认值有意义吗?NumericSeries Price(0) 和NumericSeries Price(2)在实际使用中,效果应该是一样的吧?因为这个默认值都会被传过来的值所覆盖。这样理解对不对?
】
}
Return highestValue;
End
[ 本帖最后由 leixb 于 2009-3-25 20:39 编辑 ] |
|