设为首页收藏本站

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

同一根Bar上执行Highest(c[1],3)为什么出现不同的结果? [复制链接]

Rank: 2

精华
0
UID
110635
积分
75
帖子
34
主题
17
阅读权限
30
注册时间
2012-5-23
最后登录
2016-7-15
跳转到指定楼层
1#
发表于 2012-11-13 20:54:47 |只看该作者 |倒序浏览


如上图,同一根Bar上执行Highest(c[1],3)为什么出现不同的结果?

公式中:
        Commentary("正确的Highest(c[1],3)="+Text(Highest(c[1],3)));
        if(MarketPosition==-1 && Highest(c[1],3)<Stop)
        {
                Commentary("错误的Highest(c[1],3)="+Text(Highest(c[1],3)));
                Stop=Highest(c[1],3);
                //Stop=Min(stop,Highest(c[1],3));
        }
在同一根Bar上显示两个不同的值,为什么?????
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 2

精华
0
UID
116352
积分
100
帖子
65
主题
16
阅读权限
30
注册时间
2013-6-19
最后登录
2015-8-7
2#
发表于 2014-8-14 10:16:31 |只看该作者
找出原因了吗? 我自己在图表上看了看好像是一样的啊

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
3#
发表于 2014-8-14 10:36:44 |只看该作者
highest()函数的第一个参数是需要序列值的,若放条件里进行赋值运算,是会因为数据受限从而影响计算结果的正确性。。
正确的用法应该是第一个,不在条件内进行的赋值运算。

使用道具 举报

Rank: 1

精华
0
UID
145124
积分
17
帖子
13
主题
2
阅读权限
10
注册时间
2012-9-20
最后登录
2016-10-24
4#
发表于 2016-6-15 13:46:07 |只看该作者
小米 发表于 2014-8-14 10:36
highest()函数的第一个参数是需要序列值的,若放条件里进行赋值运算,是会因为数据受限从而影响计算结果的 ...

版主大人,这点没有特别明白,能否说详细点?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
5#
发表于 2016-6-15 14:10:34 |只看该作者
luckily 发表于 2016-6-15 13:46
版主大人,这点没有特别明白,能否说详细点?

改成如下代码
  1. vars
  2.     nuermic aa;
  3. begin
  4.    .....
  5.    aa = highest(c[1],3);
  6.    if(marketposition==1 && aa<stop )
  7.    {
  8.       ....
复制代码

使用道具 举报

Rank: 1

精华
0
UID
145124
积分
17
帖子
13
主题
2
阅读权限
10
注册时间
2012-9-20
最后登录
2016-10-24
6#
发表于 2016-6-15 16:18:26 |只看该作者
小米 发表于 2016-6-15 14:10
改成如下代码

我是想问,为什么不能用在条件内部

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
7#
发表于 2016-6-16 09:52:09 |只看该作者
luckily 发表于 2016-6-15 16:18
我是想问,为什么不能用在条件内部


序列函数的运算是有某个参数是需要序列值的。。
在条件下,这个序列值可能因为条件的限制而导致取值不够 完整,从而影响计算结果的正确性。
如果您能确保在条件下的取值也是正确的,那么该计算可以用于条件下的。。没有强硬的规定不可以用。

使用道具 举报

Rank: 1

精华
0
UID
145124
积分
17
帖子
13
主题
2
阅读权限
10
注册时间
2012-9-20
最后登录
2016-10-24
8#
发表于 2016-6-16 10:15:38 |只看该作者
小米 发表于 2016-6-16 09:52
序列函数的运算是有某个参数是需要序列值的。。
在条件下,这个序列值可能因为条件的限制而导致取值不够  ...

所以条件判断的if语句不仅是作为触发之后的语句,而且对之后的执行环境也进行了过滤?这和c++或其他语言有区别吗?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
9#
发表于 2016-6-16 10:20:00 |只看该作者
luckily 发表于 2016-6-16 10:15
所以条件判断的if语句不仅是作为触发之后的语句,而且对之后的执行环境也进行了过滤?这和c++或其他语言 ...

抱歉呀。。我没法回答您这与C++有无区别。
只能说,在TBL里是这个规则 。。

使用道具 举报

Rank: 1

精华
0
UID
145124
积分
17
帖子
13
主题
2
阅读权限
10
注册时间
2012-9-20
最后登录
2016-10-24
10#
发表于 2016-6-16 10:40:06 |只看该作者
小米 发表于 2016-6-16 10:20
抱歉呀。。我没法回答您这与C++有无区别。
只能说,在TBL里是这个规则 。。 ...

谢谢版主。头像好酷

使用道具 举报

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

bottom

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

GMT+8, 2024-4-26 19:57

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部