@Channelchan
2018-11-28T09:51:04.000000Z
字数 1237
阅读 63618
1、 止损后停止交易时间(stopLossControl)
2、 最长持有时间设置(holdHour)
1、 设置停止交易时间
2、 记录平仓时间
3、触发止损条件后,设置停止为1
4、 计算平仓时间与当下时间的差,设置停止归0
# 设置参数stopControlTime = 3# 设置变量self.closeTime = {s: 0 for s in self.symbolList}self.stopLossControl = {s: 0 for s in self.symbolList}# 判断时间止损条件if self.closeTime[symbol]:if (bar.datetime - self.closeTime[symbol]) >= timedelta(hours=self.stopControlTime):self.stopLossControl[symbol] = 0# 记录平仓时间def onTrade(self, trade):symbol = trade.vtSymbolif trade.offset == OFFSET_CLOSE:self.closeTime[symbol] = trade.tradeTime
# 设置参数holdHour = 10# 设置变量self.openTime = {s: None for s in self.symbolList}# 计算持有时间if self.openTime[symbol]:if ((bar.datetime-self.openTime[symbol])>=timedelta(hours=self.holdHour)):if self.posDict[symbol + "_LONG"] > 0:self.sell(symbol, bar.close * 0.98, self.posDict[symbol + '_LONG'])self.writeCtaLog('afterOpenOrder_Sell')self.stopLossControl[symbol] = 1self.openTime[symbol] = Noneelif self.posDict[symbol + "_SHORT"] > 0:self.cover(symbol, bar.close * 1.015, self.posDict[symbol + "_SHORT"])self.writeCtaLog('afterOpenOrder_Cover')self.stopLossControl[symbol] = -1self.openTime[symbol] = None# 记录开仓时间def onTrade(self, trade):symbol = trade.vtSymbolif trade.offset == OFFSET_OPEN:self.openTime[symbol] = trade.tradeTime
