- 精华
- 1
- 在线时间
- 62 小时
- UID
- 2048
- 积分
- 218
- 帖子
- 29
- 阅读权限
- 40
- 注册时间
- 2008-8-1
- 最后登录
- 2016-8-2
- 精华
- 1
- UID
- 2048
- 积分
- 218
- 帖子
- 29
- 主题
- 8
- 阅读权限
- 40
- 注册时间
- 2008-8-1
- 最后登录
- 2016-8-2
|
NOPAIN版主:请问关于跨周期问题!!
这是"跨周期情况下的均线计算"的函数部分,请帮忙回答一下红色部分问题!!感谢!!
同时对本函数整体编程也有点模糊,是否从思路结构方面点拔一下!!
http://www.tradeblazer.net/forum/viewthread.php?tid=1996 原贴!!
Params
NumericSeries Price(1);
Numeric nMinSet(5);
Numeric MinsAgo(2);
Vars
NumericSeries barCnt;// 定义和周期长度一致的Numeric型序列值变量BarCnt
NumericSeries MinData;
Numeric i;
Numeric j;
Numeric nIndex(0);
Begin
If(IntPart(Minute%nMinSet)==0)
/* IntPart:Number 需要进行取整处理的实数,返回实数舍入后的整数值,
IntPart (8.9) = 8;IntPart (-8.9) = -9。Minute:获得当前Bar的分钟信息, 获得当前Bar的分钟信息,
格式为0-59之间的整数, 如果当前Bar的时间为11:34:21,Minute返回值为34.*/
{
barCnt = 1;
}Else
{
barCnt = barCnt[1] + 1;
}
MinData = Price;//Price是参数,是不是就一直等于1呢,那么本句是不是把Minadata赋值为1
If(MinsAgo == 0)// MinsAgo是参数,不是赋了2了吗?何时等于0呢???
{
return MinData;//如果minsAgo等于0,返回MinData
}Else
{
For i = 1 To MinsAgo
{
If( i == 1)
{
j = 0;
}Else
{
j = j + BarCnt[j];
}
If (j > CurrentBar ) Return InvalidNumeric;// InvalidNumeric: 返回数值型的无效值
nIndex = nIndex + BarCnt[j];
}
Return MinData[nIndex];
}
End |
|