对交易开拓者(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会一样,但是实际的结果是不一样的