M_Close = Close;
D_Close = Data1.Close;
If(M_Close[1] > M_CLose[2] and D_Close[1] > D_Close[2])
代码如上,请教老师,当在data0和data1当中分别引用半小时和日线级别数据,同时对两个周期的价格都进行了回溯,引用的大周期级别数据和小周期的信号都进行了固定,是否还会存在开仓时候,大周期包含当前正在运行的小周期K线数据,从而形成了未来函数的偷价行为
全都回溯就不会了
但是要注意对齐导致的信号闪烁
Range[0:0]
{
M_Close = Close;
}
Range[1:1]
{
D_Close = Close;
}
If(M_Close[1] > M_Close[2] And Data1.D_Close[1] > Data1.Close[2])
这种写法和上面的那种有啥区别吗?在我的理解当中理解是一样的,但是通过Commemtary把DATA1的数据输出到DATA0图层的时候,在第二个交易日开始的时候,上一种方式只在DATA0图层的新交易日当中前两根BAR上有DATA1的数据,通过RANGE方式输出的结果,在新的交易日当中Data0的每根BAR上都有DATA1的输出结果
有区别
第二种写法等效于
M_Close = Close;
data1.D_Close = Data1.Close;
If(M_Close[1] > M_CLose[2] and D_Close[1] > D_Close[2])
容器是有图层对象区别的,data1.D_Close和D_Close是两个不同的容器