Path: blob/master/src/core/Quotes.py
297 views
import logging12from core.Controller import Controller3from models.Quote import Quote45class Quotes:6@staticmethod7def getQuote(tradingSymbol, isFnO = False):8broker = Controller.getBrokerName()9brokerHandle = Controller.getBrokerLogin().getBrokerHandle()10quote = None11if broker == "zerodha":12key = ('NFO:' + tradingSymbol) if isFnO == True else ('NSE:' + tradingSymbol)13bQuoteResp = brokerHandle.quote(key)14bQuote = bQuoteResp[key]15# convert broker quote to our system quote16quote = Quote(tradingSymbol)17quote.tradingSymbol = tradingSymbol18quote.lastTradedPrice = bQuote['last_price']19quote.lastTradedQuantity = bQuote['last_quantity']20quote.avgTradedPrice = bQuote['average_price']21quote.volume = bQuote['volume']22quote.totalBuyQuantity = bQuote['buy_quantity']23quote.totalSellQuantity = bQuote['sell_quantity']24ohlc = bQuote['ohlc']25quote.open = ohlc['open']26quote.high = ohlc['high']27quote.low = ohlc['low']28quote.close = ohlc['close']29quote.change = bQuote['net_change']30quote.oiDayHigh = bQuote['oi_day_high']31quote.oiDayLow = bQuote['oi_day_low']32quote.lowerCiruitLimit = bQuote['lower_circuit_limit']33quote.upperCircuitLimit = bQuote['upper_circuit_limit']34else:35# The logic may be different for other brokers36quote = None37return quote3839@staticmethod40def getCMP(tradingSymbol):41quote = Quotes.getQuote(tradingSymbol)42if quote:43return quote.lastTradedPrice44else:45return 04647