关于回测过程中以Low和High为平仓条件的一点问题
在对ru888的回测过程中,我使用以下代码。当平仓条件使用LOW和High的时候,就会出现已经满足开仓条件,并且Commentary执行了,但是Buy不执行的情况。如果将LOW和HIGH改为Close,那么就不会出现该情况??想问问这是怎么回事? Params Numeric Length(14); //周期 Numeric AvgLength(9); //平均周期 Vars Global Numeric Lsign; Series<Numeric> TmpValue; Numeric Mean( 0 ); Numeric AvgDev( 0 ); Numeric Counter( 0 ) ; Series<Numeric> CCI(0); Numeric CCIAvg; Numeric MA; Events OnBar(ArrayRef<Integer> indexs) { TmpValue = High + Low + Close; Mean = AverageFC( TmpValue, Length ) ; AvgDev = 0 ; for Counter = 0 to Length - 1 { AvgDev = AvgDev + Abs( TmpValue[Counter] - Mean ) ; } AvgDev = AvgDev / Length ; if( AvgDev == 0) CCI = 0; Else CCI = ( TmpValue - Mean ) / ( 0.015 * AvgDev ) ; CCIAvg = AverageFC(CCI, AvgLength ); If(CCI > CCI[1]) { Lsign = 1; //做多 }Else { Lsign = -1; //做空 } MA = Average(Close[1],10); If(Lsign == 1 And MarketPosition == 0) { //做多 Commentary("做多"); Buy(1,Close); } If(Lsign == -1 And MarketPosition == 0) { //做空 Commentary("做空"); SellShort(1,Close); } If(Low < MA And MarketPosition == 1) { //做多平仓 Commentary("做多平仓"); Sell(1,MA); } If(High > MA And MarketPosition == -1) { //做空平仓 Commentary("做空平仓"); BuyToCover(1,MA); } //} Commentary("CCI:"+Text(CCI)); Commentary("CCI[1]:"+Text(CCI[1])); Commentary("MAR:"+Text(MarketPosition)); PlotAuto("MA",MA); }