对交易开拓者(TB)中的序列变量有点疑惑,于是写了一个测试用例:
测试代码如下:
Params
Vars
NumericSeries SeriesVal;
Begin
//init variables when first bar comes
If(BarStatus == 0){
SeriesVal=0;
SetGlobalVar(0,1);
}Else{
PlotNumeric("Close:",Close,Yellow);
SeriesVal=SeriesVal+1;
PlotNumeric("SeriesVal:",SeriesVal,Yellow);
PlotNumeric("CurrentBar",CurrentBar);
PlotNumeric("GlobalVal:",GetGlobalVar(0));
SetGlobalVar(0,GetGlobalVar(0)+1);
}
End
我用的数据回测功能,代码里每次tick来的时候全局变量都会加1,这个很容易理解;
但是SeriesVal=SeriesVal+1;这个代码似乎不是根据每次tick执行一次,而是根据每个bar执行一次;
这个很容易混淆,我第一眼的感觉是SeriesVal和GlobalVal会一样,但是实际的结果是不一样的
但是SeriesVal=SeriesVal+1;这个代码似乎不是根据每次tick执行一次,而是根据每个bar执行一次;
这个很容易混淆,我第一眼的感觉是SeriesVal和GlobalVal会一样,但是实际的结果是不一样的
本文通过一个测试案例探讨了交易开拓者(TB)中序列变量(SeriesVal)的行为特性,发现其并非按每次tick更新,而是按每个bar递增,并对比了全局变量的更新方式。
2265

被折叠的 条评论
为什么被折叠?



