规避跨周期信号闪烁

老师:

按照学习视频在跨周期策略中加入规避信号闪烁的语句。“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);

       ............

错了错了!是不是这样:

Params


Vars

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域里就没必要再定义一遍了

谢谢老师!