规避跨周期信号闪烁

老师:按照学习视频在跨周期策略中加入规避信号闪烁的语句。“i”和“result”一开始忘了定义初始值了,如第一图所示。我的问题:是不是两个参数的初始值都定义为“1”?即:Params Numeric i(1); Numeric result(1);?谢谢!

其实这里定不定义初值无所谓

回复:您的意思,我这么写是可以的吧?因为如果不写,编译时会报错(如附件所示)。Params Numeric i(1); Numeric result(1);

回复:你看错了吧,这个报错报的是第二行和第三行,你截图没截这两行吧?你不会是把i和result定义成参数了吧?

回复:您看这样写对吗?(涂色部分)谢谢老师!Params Numeric i(1);Vars Series<Numeric> Var1; // ZLXC Series<Numeric> Var2; ..................Events OnBar(ArrayRef<Integer> indexs) { Numeric i; Numeric result = 1; for i=0 to DataSourceSize-1 { result= result*data[i].BarExistStatus; } If(result<>1) Return; Range[0:0] //大周期 { Var1 = low[1]; // ZLXC Var2 = SMA(ABS(Low-Var1),3,1)/SMA(MAX(Low-Var1,0),3,1) * 100; Var3 = XAverage(Var2*10,3); ............

回复:错了错了!是不是这样:ParamsVars Numeric i; Numeric result; ........ Series<bool> bool_crossoverLH_BF; Series<bool> bool_crossunderLH_BF; Series<bool> bool_crossoverMXT_BF; Series<bool> bool_crossunderMXT_BF; .........Events OnBar(ArrayRef<Integer> indexs) { Numeric i; Numeric result = 1; for i=0 to DataSourceSize-1 { result= result*data[i].BarExistStatus; } If(result<>1) Return; Range[0:0] ...........

回复:视频教程里写了在params理论定义i和result这两个变量?不可能吧?为什么要额外在参数里定义?

回复:老师:我一开始搞错了,视频里讲是“不要忘了为 i 和 result 定义变量”。 所以,是不是应该在 Vars 里定义。即:Vars Numeric i; Numeric result;这样对吗?谢谢!

回复:这就对了,但是视频里定义变量是直接在onbar域里定义临时变量,没必要两边都定义一遍,vars里定义了onbar域里就没必要再定义一遍了

回复:谢谢老师!