def convertJSONToTrade(jsonData):
   trade = Trade(jsonData['tradingSymbol'])
   trade.tradeID = jsonData['tradeID']
   trade.strategy = jsonData['strategy']
   trade.direction = jsonData['direction']
   trade.productType = jsonData['productType']
   trade.isFutures = jsonData['isFutures']
   trade.isOptions = jsonData['isOptions']
   trade.optionType = jsonData['optionType']
   trade.placeMarketOrder = jsonData['placeMarketOrder']
   trade.intradaySquareOffTimestamp = jsonData['intradaySquareOffTimestamp']
   trade.requestedEntry = jsonData['requestedEntry']
   trade.entry = jsonData['entry']
   trade.qty = jsonData['qty']
   trade.filledQty = jsonData['filledQty']
   trade.initialStopLoss = jsonData['initialStopLoss']
   trade.stopLoss = jsonData['stopLoss']
   trade.target = jsonData['target']
   trade.cmp = jsonData['cmp']
   trade.tradeState = jsonData['tradeState']
   trade.timestamp = jsonData['timestamp']
   trade.createTimestamp = jsonData['createTimestamp']
   trade.startTimestamp = jsonData['startTimestamp']
   trade.endTimestamp = jsonData['endTimestamp']
   trade.pnl = jsonData['pnl']
   trade.pnlPercentage = jsonData['pnlPercentage']
   trade.exit = jsonData['exit']
   trade.exitReason = jsonData['exitReason']
   trade.exchange = jsonData['exchange']
   trade.entryOrder = TradeManager.convertJSONToOrder(jsonData['entryOrder'])
   trade.slOrder = TradeManager.convertJSONToOrder(jsonData['slOrder'])
   trade.targetOrder = TradeManager.convertJSONToOrder(jsonData['targetOrder'])
   return trade
Exemple #2
0
    def generateTrade(self, optionSymbol, numLots, lastTradedPrice,
                      counterPosition):
        trade = Trade(optionSymbol)
        trade.strategy = self.getName()
        trade.isOptions = True
        trade.direction = Direction.SHORT  # Always short here as option selling only
        trade.productType = self.productType
        trade.placeMarketOrder = True
        trade.requestedEntry = lastTradedPrice
        trade.timestamp = Utils.getEpoch(
            self.startTimestamp)  # setting this to strategy timestamp
        trade.slPercentage = 25
        trade.moveToCost = True
        trade.counterPosition = counterPosition

        isd = Instruments.getInstrumentDataBySymbol(
            optionSymbol)  # Get instrument data to know qty per lot
        trade.qty = isd['lot_size'] * numLots

        trade.stopLoss = Utils.roundToNSEPrice(trade.requestedEntry +
                                               trade.requestedEntry *
                                               self.slPercentage / 100)
        trade.target = 0  # setting to 0 as no target is applicable for this trade

        trade.intradaySquareOffTimestamp = Utils.getEpoch(
            self.squareOffTimestamp)
        # Hand over the trade to TradeManager
        TradeManager.addNewTrade(trade)