请帮忙 看看这么写代码有什么问题吗? 信号总是对不上
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就是当前不停刷新的值,也没有未来数据。现在你提大小周期,我说的是和这个无关。