コード例 #1
0
 def setTradeToCompleted(trade, exit, exitReason = None):
   trade.tradeState = TradeState.COMPLETED
   trade.exit = exit
   trade.exitReason = exitReason if trade.exitReason == None else trade.exitReason
   trade.endTimestamp = Utils.getEpoch()
   trade = Utils.calculateTradePnl(trade)
   logging.info('TradeManager: setTradeToCompleted strategy = %s, symbol = %s, qty = %d, entry = %f, exit = %f, pnl = %f, exit reason = %s', trade.strategy, trade.tradingSymbol, trade.filledQty, trade.entry, trade.exit, trade.pnl, trade.exitReason)
コード例 #2
0
  def trackEntryOrder(trade):
    if trade.tradeState != TradeState.ACTIVE:
      return

    if trade.entryOrder == None:
      return

    if trade.entryOrder.orderStatus == OrderStatus.CANCELLED or trade.entryOrder.orderStatus == OrderStatus.REJECTED:
      trade.tradeState = TradeState.CANCELLED

    trade.filledQty = trade.entryOrder.filledQty
    if trade.filledQty > 0:
      trade.entry = trade.entryOrder.averagePrice
    # Update the current market price and calculate pnl
    trade.cmp = TradeManager.symbolToCMPMap[trade.tradingSymbol]
    Utils.calculateTradePnl(trade)