设为首页收藏本站

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

关于"FOR"语句取值的一些问题 [复制链接]

Rank: 4

精华
0
UID
1656
积分
273
帖子
36
主题
14
阅读权限
50
注册时间
2008-5-24
最后登录
2019-3-31
跳转到指定楼层
1#
发表于 2008-5-30 13:38:52 |只看该作者 |倒序浏览
在使用"FOR"语句编程对于"FOR"语句的内在取值规律有一些不明白的地方:

假设有一序列数组,有20条"BAR","FOR"语句如下:
vars
......
begin
FOR I=0 TO 5
{
BT语句(涉及需取BAR的值)
}
end
假如整条程序目前运行到第六条"BAR",问题如下:
1.当I=0时,"FOR"取第六条"BAR"的值;当I=1时,"FOR"是否是取第七条"BAR"D的值?
2.如果当I=0时,"FOR"取第六条BAR的值;I=1时,"FOR"是否是取第七条"BAR"的值;......;I=5时,"FOR"取第十一条"BAR"的值,"FOR"运行结束。此时当整条程序结束后,程序重新开始从上至下运行,整条程序梁取值是从第七条"BAR"开始,还是从第十二条"BAR"开始?

Rank: 5Rank: 5

精华
0
UID
1196
积分
1403
帖子
65
主题
0
阅读权限
60
注册时间
2008-2-19
最后登录
2008-8-11
2#
发表于 2008-5-30 14:21:15 |只看该作者
FOR I=0 TO 5
{
每人发一个苹果
}
当前从前到后排六个人的时候,上面的语句会这样执行,先给排在第六位的发一个苹果,然后再给排在第五位发苹果,然后再给第4位.......到排在第二位为止.
重新来了一个人排在后面,变成七个人的时候,上面的语句会这样执行,先给排在第七位的发一个苹果,然后再给排在第六位发苹果,然后再给第五位.......到排在第三位为止.
每增加一个人,就会做发苹果的事情,顺序是从最后一个到倒数第五个为止.

I=0指的是最后一个,I=1指的是倒数第二个........I=5指的是倒数第五个

使用道具 举报

Rank: 4

精华
0
UID
1656
积分
273
帖子
36
主题
14
阅读权限
50
注册时间
2008-5-24
最后登录
2019-3-31
3#
发表于 2008-5-30 20:55:59 |只看该作者
谢谢!

不过为什么在下面函数使用中,会出现错误的结果呢?

// 简称: hhv
// 名称: 求N周期的最高值
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
//------------------------------------------------------------------------
Params
   NumericSeries Price(0);
   Numeric Length(5);
Vars
   Numeric highestValue(0);
   Numeric minDay;
   Numeric i;
Begin
   minDay = Min(CurrentBar,Length-1);
   for i=0 to minDay
   {
           highestValue=Max(highestValue,Price);
   }
   Return highestValue;
End
//------------------------------------------------------------------------

使用道具 举报

Rank: 4

精华
0
UID
1656
积分
273
帖子
36
主题
14
阅读权限
50
注册时间
2008-5-24
最后登录
2019-3-31
4#
发表于 2008-5-30 21:14:21 |只看该作者
已解决,修改如下:
// 简称: hhv
// 名称: 求N周期的最高值
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
//------------------------------------------------------------------------
Params
   NumericSeries Price(0);
   Numeric Length(5);
Vars
   Numeric highestValue(0);
   Numeric minDay;
   Numeric i;
Begin
   minDay = Min(CurrentBar,Length-1);
   for i=0 to minDay
   {
           highestValue=Max(highestValue,Price);
   }
   Return highestValue;
End
//------------------------------------------------------------------------

使用道具 举报

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

bottom

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

GMT+8, 2024-5-17 08:01

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部