设为首页收藏本站

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

问一个序列变量回溯的问题,求解答 [复制链接]

Rank: 1

精华
0
UID
45895
积分
12
帖子
4
主题
3
阅读权限
10
注册时间
2011-6-9
最后登录
2012-4-10
跳转到指定楼层
1#
发表于 2012-2-22 10:09:39 |只看该作者 |倒序浏览
Params

Numeric nMins(30);                // N分钟的突破
Numeric nOffset(3);                // 突破式的价格偏移
Vars
NumericSeries HighestOf30Min;
NumericSeries lowestOf30Min;
Numeric myPrice;
Numeric MinPoint;
Numeric lots(1);
Begin

        MinPoint = MinMove*PriceScale;
        If(Date <> Date[1])
        {
                HighestOf30Min = High;
                lowestOf30Min = Low;
                }
        Else If(Time < 0.0900+nMins*0.0001)
        {
                HighestOf30Min = max(high,HighestOf30Min[1]);
                lowestOf30Min = min(Low,lowestOf30Min[1]);
        }Else
        {
                HighestOf30Min = HighestOf30Min[1];
                lowestOf30Min = lowestOf30Min[1];
        }

if——else if——else
这个语句不是满足if才执行HighestOf30Min = High,否则判断else if,else if中的HighestOf30Min = max(high,HighestOf30Min[1]);中前面没有任何语句对HighestOf30Min这个变量进行赋值,那么这个序列变量回溯的话,是根据什么进行回溯的呢?
如果不满足if和else if的话,才执行else后面的语句
HighestOf30Min = HighestOf30Min[1];也是一样,没有对HighestOf30Min进行赋值,那么如何回溯?

Rank: 3Rank: 3

精华
0
UID
16418
积分
225
帖子
24
主题
4
阅读权限
40
注册时间
2010-9-17
最后登录
2019-3-30
2#
发表于 2012-2-22 10:44:46 |只看该作者
第一个值没有赋值时,会自动初始化为0。
Else
        {
                HighestOf30Min = HighestOf30Min[1];
                lowestOf30Min = lowestOf30Min[1];
        }

这段代码不写效果也是一样的,不重新赋值时,序列变量会把前一个值自动传给下一个。

使用道具 举报

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

bottom

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

GMT+8, 2024-5-17 19:09

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部