开拓者期货期权程序化系统交易论坛

标题: 同一根K线下, highest函数执行的结果不一致 [打印本页]

作者: trade_trend    时间: 2017-9-7 09:42:10     标题: 同一根K线下, highest函数执行的结果不一致

同一根K线下, highest函数执行的结果不一致
代码和运行结果如下:
我理解TB会从左到右依次遍历每根K线, 我的测试代码中, 当在最后一根K线时求最大值, 并将结果输出
从运行结果看, H1是正确值, H2是错误值. H2只是当前(最后一根K线)的最大值. 烦请高手解惑
[attach]35949[/attach]

BTW:
我本地也做了一些调试, 例如, 我编译一个highest_test的函数. 在这个测试函数里面打印传入的参数序列.
发现在if语句里面传入的参数序列都是固定的值. 即, 都是最后一根K线的最大值

我现在不理解为什么if语句里面和外面结果不一致. 希望能弄清楚原理. 这样, 也避免以后写的代码有bug隐患

谢谢
作者: a519459763    时间: 2017-9-7 10:10:59

Params

Vars
        Numeric        h1;
        Numeric h2;
        Numeric i;
Begin
        h1=Highest(high,20);
        h2=highest(high,20);
        If(BarStatus()==2)
        {
                FileAppend("d:\\aaa.txt",Text(h1)+Text(h2));
        }
End
作者: dhqh8712598    时间: 2017-9-7 10:39:25

当前根没有走完,会有不同的high,用high[1].应该可以吧!
作者: kanbadene    时间: 2017-9-7 10:57:21

highest不要放到循环或者判断里,在之前先赋值给序列变量就行




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2