回测中遇到的困惑
Params Vars Series<Numeric> MA; Series<Numeric> MK; Series<Numeric> DT; Series<Numeric> KT; Series<Bool> SC; Series<Bool> XC; Numeric K1(5); Numeric K2(20); Events OnBar(ArrayRef<Integer> indexs) { MA = AverageFC(Close,K1); MK = AverageFC(Close,K2); SC = CrossOver(MA[1],MK[1]); XC = CrossUnder(MA[1],MK[1]); Commentary("DT" + Text(DT)); PlotNumeric("MA",MA); PlotNumeric("MK",MK); Commentary("longPositionProfit=" + Text(longPositionProfit)); If(MarketPosition == 0 && SC == True) Buy(1,Open); DT = Close[1] - longAvgEntryPrice; KT = Close[1] - shortAvgEntryPrice; If(MarketPosition == 1 && DT*200 >= 10000) Sell(1,Open); If(MarketPosition == 1 && DT*200 <= -10000) Sell(1,Open); } 大家好,我在回测这个策略的时候,发现一个问题,就是计算DT的值,我用上一根k线的收盘价减去多头的建仓价格,得出DT的点差,这个在计算的时候没有什么问题,我发现的问题是,我用前一根k线的收盘价计算出来的,输出的值不是输出在当前这根k线上,而是输出在下一根k线上。正常来说,按前一根k线算出来的值,不是应该输出在当前这根k线上吗?还是我的编写逻辑有什么问题,大家指点一下