您现在的位置:程序化交易>> 期货公式>> 交易开拓者(TB)>> 开拓者知识>>正文内容

开拓者关于NumericSeries、Numeric 在tick和bar上执行流程的问题 [开拓者 TB]

 

 
  • 咨询内容: 本帖最后由 zhangkaijacky 于 2012-11-12 23:39 编辑

    给出代码如下:
    Vars
            NumericSeries x;
            NumericSeries y;
            Numeric z;
    Begin       
            If(BarStatus == 2)
            {
                    FileAppend("c:\\log.txt",CurrentTime+" 赋值前 x: "+Text(x)+" y "+Text(y)+" z "+Text(z));
                    x = x + 1;
                    y = y[1] + 1;
                    z = z + 1;
                    FileAppend("c:\\log.txt",CurrentTime+" 赋值前 x: "+Text(x)+" y "+Text(y)+" z "+Text(z));
            }
    End

    如果不测试该段代码,您认为在当前bar上的tick1、tick2的结果输出,以及到了下一根bar的tick1和tick2的输出(以1分钟周期为例)会是什么?另外,在测试完该代码得到真实结果后,麻烦解释一下相关的执行流程和逻辑,谢谢各位大佬!

     

  • TB技术人员: 最后的结果是:
    0.091002 赋值前 x: 0 y: 0 z: 0
    0.091002 赋值后 x: 1 y: 1 z: 1
    0.091002 赋值前 x: 0 y: 0 z: 0
    0.091002 赋值后 x: 1 y: 1 z: 1
    0.091003 赋值前 x: 0 y: 0 z: 0
    0.091003 赋值后 x: 1 y: 1 z: 1
    。。。。。
    0.091100 赋值前 x: 0 y: 0 z: 0
    0.091100 赋值后 x: 1 y: 1 z: 1
    0.091101 赋值前 x: 0 y: 0 z: 0
    0.091101 赋值后 x: 1 y: 1 z: 1
    0.091101 赋值前 x: 0 y: 0 z: 0
    0.091101 赋值后 x: 1 y: 1 z: 1
    0.091102 赋值前 x: 0 y: 0 z: 0
    0.091102 赋值后 x: 1 y: 1 z: 1

    从结果来看,numeric的生命期是begin-end,bar上每个tick的numericseries变量的生命期也是begin-end;但是不能理解的是,为何该bar最后一个tick走完后,序列变量仍然没有被赋值呢。本来预计的结果是回溯bar的值为1、2、3.。。望斑竹或管理员能够帮忙解惑,谢谢!

     

  • TB客服: 猜的:
    NumericSeries 在BAR内不改变值(即不同的TICK触后,相当于Numeric),BAR的最后一个TICK把值固定下来,传给下一根BAR;
    Numeric 在BAR内不改变值,不传给下一根BAR;

    文档上说,要保留每个tick的变化要用全局变量 。

     

  • 网友回复:
    beolee 发表于 2012-11-13 21:01
    猜的:
    NumericSeries 在BAR内不改变值(即不同的TICK触后,相当于Numeric),BAR的最后一个TICK把值固定下 ...

    但是根据输出结果,只能推理出我上面写的结论哦。。。你也可以试试跑跑看~

     

  • 网友回复: 是不明白哦。。顶上
    按理解如果是下一个bar(下一个分钟),numericseries变量应该也已经赋值,而结果是没赋值

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 262069696  点击在线交流进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容