设为首页收藏本站

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

用NthCon求均线的最大最小值 [复制链接]

Rank: 2

精华
0
UID
58252
积分
76
帖子
21
主题
8
阅读权限
30
注册时间
2011-8-7
最后登录
2021-4-11
跳转到指定楼层
1#
发表于 2019-9-20 22:47:00 |只看该作者 |倒序浏览
例如 价格下穿10日均线时,与上次下穿10日均线之间 的最大值,同样求最小值。先用NthCon函数求两次穿越间隔的周期数,再用Highest Lowest函数求最大最小值。

结果是,间隔的周期数是对的,但后面求得最大值和最小值是错的。
下面是语句,不知道是哪里错了?

Params
        Numeric shrt(10);
       
Vars
        NumericSeries mean_shrt;
        NumericSeries maxprice;
        NumericSeries minprice;
        Bool goldcross;
        Bool deadcross;
        Numeric goldbar;
        Numeric deadbar;
       
Begin

        mean_shrt=AverageFC(close,shrt);
        goldcross=CrossOver(Close,mean_shrt);
        deadcross=CrossUnder(Close,mean_shrt);
        goldbar=NthCon(goldcross,1);
        deadbar=NthCon(deadcross,1);
       
        If(goldcross)
        {
                minprice=Lowest(Low[1],deadbar);
                maxprice=maxprice[1];
        }
       
        else if (deadcross)
        {
                maxprice=Highest(High[1],goldbar);
                minprice=minprice[1];
        }
        Else
        {
                maxprice=maxprice[1];
                minprice=minprice[1];
        }

        Commentary("goldbar="+Text(goldbar));
        Commentary("deadbar="+Text(deadbar));
        PlotNumeric("maxprice",maxprice);
        PlotNumeric("minprice",minprice);
       
End

Rank: 4

精华
0
UID
110114
积分
380
帖子
314
主题
16
阅读权限
50
注册时间
2012-4-20
最后登录
2021-12-29
2#
发表于 2019-9-21 22:15:53 |只看该作者
要将Lowest()和Highest()移到条件语句外,因为函数输入变量里含有序列变量

使用道具 举报

Rank: 2

精华
0
UID
58252
积分
76
帖子
21
主题
8
阅读权限
30
注册时间
2011-8-7
最后登录
2021-4-11
3#
发表于 2019-9-22 16:05:36 |只看该作者
Yuen_Lee 发表于 2019-9-21 22:15
要将Lowest()和Highest()移到条件语句外,因为函数输入变量里含有序列变量

语句怎么改?只有条件是真,才用到Lowest()和Highest()函数
另外,是不是只要函数输入有序列变量,就不能用在条件语句里吗?

使用道具 举报

Rank: 4

精华
0
UID
110114
积分
380
帖子
314
主题
16
阅读权限
50
注册时间
2012-4-20
最后登录
2021-12-29
4#
发表于 2019-9-23 10:45:20 |只看该作者
可以先设两个临时变量,在IF语句前记录Lowest和Highest的值,如
r1 = Lowest(...);
r2 = Highest(...);

If(goldcross)
{
    minprice = r1;
    ...
}
else if (deadcross)
{
    maxprice = r2;
    ...
}

使用道具 举报

Rank: 2

精华
0
UID
58252
积分
76
帖子
21
主题
8
阅读权限
30
注册时间
2011-8-7
最后登录
2021-4-11
5#
发表于 2019-9-24 12:54:13 |只看该作者
Yuen_Lee 发表于 2019-9-23 10:45
可以先设两个临时变量,在IF语句前记录Lowest和Highest的值,如
r1 = Lowest(...);
r2 = Highest(...);

非常感谢

使用道具 举报

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

bottom

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

GMT+8, 2024-4-27 03:41

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部