写了开仓平仓的条件,运行后出现多单马上接空单,空单马上接多单,明明条件没满足,一平马上就开了。帮忙看看有没有逻辑错误,谢谢老师。止盈止损是复制官网文档的。
//开仓 If(CountIf(WBRATE>=up,5)==5 And Summation(WBRATE,sumnum)>=addup) { Buy(1,close); } If(CountIf(WBRATE<=down,5)==5 And Summation(WBRATE,sumnum)<=adddown) { SellShort(1,close); } //止盈止损 MinPoint = MinMove*PriceScale; MyEntryPrice = AvgEntryPrice; If(MarketPosition == 1 And BarsSinceEntry >= 1) // 有多仓的情况 { If(lasttk.last >= MyEntryPrice + TakeProfitSet*MinPoint) // 止赢条件表达式 { MyExitPrice = MyEntryPrice + TakeProfitSet*MinPoint; Sell(0,MyExitPrice); } Else If(lasttk.last <= MyEntryPrice - StopLossSet*MinPoint) // 止损条件表达式 { MyExitPrice = MyEntryPrice - StopLossSet*MinPoint; Sell(0,MyExitPrice); } } Else If(MarketPosition == -1 And BarsSinceEntry >= 1) // 有空仓的情况 { If(lasttk.last <= MyEntryPrice - TakeProfitSet*MinPoint) // 止赢条件表达式 { MyExitPrice = MyEntryPrice - TakeProfitSet*MinPoint; BuyToCover(0,MyExitPrice); } Else If(lasttk.last >= MyEntryPrice + StopLossSet*MinPoint) // 止损条件表达式 { MyExitPrice = MyEntryPrice + StopLossSet*MinPoint; BuyToCover(0,MyExitPrice); } } }