waditu / czsc

缠中说禅技术分析工具;缠论;股票;期货;Quant;量化交易
Other
2.71k stars 941 forks source link

update函数,更新持仓状态,没有新的开仓event,也会更新 last_event #139

Open PingFeng233 opened 1 year ago

PingFeng233 commented 1 year ago

czsc/objects.py

 # 当有新的开仓 event 发生,更新 last_event
  if op in [Operate.LO, Operate.SO]:
      self.last_event = {'dt': dt, 'bid': bid, 'price': price, 'op': op, 'op_desc': op_desc}

这段代码是否应该判断一下有无持仓,只要开仓之后last_event会一直更新,会导致下面判断止损的代码price 和 self.last_event['price']的值是一样的

# 多头止损
  if price / self.last_event['price'] - 1 < -self.stop_loss / 10000:
      self.pos = 0
      self.operates.append(__create_operate(Operate.LE, f"平多@{self.stop_loss}BP止损"))
zengbin93 commented 1 year ago

这里的止损不是以开仓价来计算的,而是以最后一次开仓事件的触发价格来计算。所以只要有新的开仓动作,就要更新 last_event。也就是会出现你下面说的那种情况,这是正常的