onbar
if(marketposition == 0 and AutofilerB == 0) {
if((data1.oK[2] >= data1.oK[3] And data1.oK[1] >= data1.oK[2] And data1.FuroD[1] >= data1.oD[1] + VARB32 and data1.oD[1] <= oDLow) and
data2.Close >= data2.MidLine and data3.Close >= data3.MidLine ) {
BuyLimit = Close[1] - PriceScale * MinMove * LimitMoveB;
Buy (1, BuyLimit);
Buystatus = 102;
AutofilerB = 1;
Commentary(\"Buytatus12: \" + Text(BuyLimit));
}
}
先在视频区搜索多周期的相关教学
多图层有具体的数据对应机制
先要理解好图层机制,才能做多图层策略
tbquant 回测的时候 精细度不够, 导致 实盘信号和回测信号有很大区别,我反复测试确定:
小周期中 onbar事件中 类似 data0.close >ma 会产生抖动,抖动好理解也好解决。
大周期中 onbar 事件中类似 data1.close >ma 对于小周期而言不会产生信号抖动,但实盘信号会发生,回测也许就看不到。
这时回测非常不准且结果可能相反, 没想好 怎么解决,
例如下面的语句
if (marketposition == 0) {
if(小周期条件判断) and data1.Close >= data1.Ma ) {
}
实盘时, 大周期的close 时动态变化的,而回测时是大周期的close 最终结束时的结果回测的,
对于回测在大周期上 这个Close有写类似于未来函数了 。
Tbquant 在 回测 还有很多地方要提高
信号总是对不上是什么意思
具体说明问题
策略鼠标点右键 打开K线 会发现在实盘交易的某些信号丢失, 我可能找到问题了, 问题是tbquant回测时的颗粒度不够, 回测时data2.Close >= data2.MidLine and data3.Close >= data3.MidLine 语句的 中Close在小周期中 是被固定在大周期的收盘价了, 是不变化的。 是tbquant的问题。
谢谢不知道我理解的对不对?
不是大周期小周期的问题,只要你用到close来对比入场,大概率就是用到了未来函数,无论大小周期。
实盘的时候不会, 会的是回测, 实盘的Close 就是当时的价格, 回测时候的close, 就是 bar结束的 值。
当然说历史回测,用了Bar结束时的值,所以才说用这个回测就是用了未来数据。最后一个barclose就是当前不停刷新的值,也没有未来数据。现在你提大小周期,我说的是和这个无关。