def handle_tick_size(self, msg): if self.enable_ticker: self.output('%s %d %s %d' % (repr(msg), msg.field, TickType().getField( msg.field), msg.size)) symbol = self.symbols_by_id[msg.tickerId] if msg.field == 0: # bid_size symbol.bid_size = msg.size if self.enable_ticker: symbol.update_quote() elif msg.field == 3: # ask_size symbol.ask_size = msg.size if self.enable_ticker: symbol.update_quote() elif msg.field == 5: # last_size symbol.size = msg.size elif msg.field == 8: # volume symbol.volume = msg.size if self.enable_ticker: symbol.update_trade()
def handle_tick_price(self, msg): for cb in self.addsymbol_callbacks: if str(cb.id.ticker_id) == str(msg.tickerId): cb.complete(True) if self.enable_ticker: self.output('%s %d %s %s' % (repr(msg), msg.field, TickType().getField( msg.field), msg.price)) symbol = self.symbols_by_id[msg.tickerId] if msg.field == 1: # bid symbol.bid = msg.price if self.enable_ticker: symbol.update_quote() elif msg.field == 2: # ask symbol.ask = msg.price if self.enable_ticker: symbol.update_quote() elif msg.field == 4: # last symbol.last = msg.price elif msg.field == 9: # close symbol.close = msg.price
def __init__(self, tws, symbol, client_id): self.tws = tws self.output = tws.output self.ticktype = TickType() self.clients = set([client_id]) self.ticker_id = tws.next_id() self.symbol = symbol self.bid = 0.0 self.bid_size = 0 self.ask = 0.0 self.ask_size = 0 self.last = 0.0 self.size = 0 self.volume = 0 self.close = 0.0 self.tws.symbols[symbol] = self self.last_quote = '' self.tws.symbols_by_id[self.ticker_id] = self contract = self.tws.create_contract(symbol, 'STK', 'SMART', 'SMART', 'USD') self.output('TWS_Symbol %s %s created for client %s' % (self, symbol, client_id)) self.output('reqMktData(%d, %s)' % (self.ticker_id, symbol)) self.tws.tws_conn.reqMktData(self.ticker_id, contract, '', False)
def handle_tick_string(self, msg): if self.enable_ticker: self.output('%s %d %s %s' % (repr(msg), msg.tickType, TickType().getField( msg.tickType), msg.value))