Exemplo n.º 1
0
    def generateTrade(self, tradingSymbol, direction, high, low):
        trade = Trade(tradingSymbol)
        trade.strategy = self.getName()
        trade.isFutures = True
        trade.direction = direction
        trade.productType = self.productType
        trade.placeMarketOrder = True
        trade.requestedEntry = high if direction == Direction.LONG else low
        trade.timestamp = Utils.getEpoch(
            self.startTimestamp)  # setting this to strategy timestamp
        # Calculate lots
        numLots = self.calculateLotsPerTrade()
        isd = Instruments.getInstrumentDataBySymbol(
            tradingSymbol)  # Get instrument data to know qty per lot
        trade.qty = isd['lot_size']

        trade.stopLoss = low if direction == Direction.LONG else high
        slDiff = high - low
        # target is 1.5 times of SL
        if direction == 'LONG':
            trade.target = Utils.roundToNSEPrice(trade.requestedEntry +
                                                 1.5 * slDiff)
        else:
            trade.target = Utils.roundToNSEPrice(trade.requestedEntry -
                                                 1.5 * slDiff)

        trade.intradaySquareOffTimestamp = Utils.getEpoch(
            self.squareOffTimestamp)
        # Hand over the trade to TradeManager
        TradeManager.addNewTrade(trade)
 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