开拓者关于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 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容