def get_bar_hist_date(date, whatToShow, minDataPoints, durationStr, barSizeSetting, symfilter=''): global tickerId global currencyPairsDict if symfilter: symbols = bars.get_contract(symfilter) else: symbols = bars.get_contracts() for contract in symbols: pair = contract.symbol if contract.secType == 'CASH': pair = contract.symbol + contract.currency #if len(symfilter) == 0 or pair == symfilter: logging.info('Getting History for ' + pair) interval = duration_to_interval(barSizeSetting) dbcontract = bars.contract_to_dbcontract(contract) date = get_bar_date(barSizeSetting, date) + ' EST' tickerId = get_TickerId(pair) data = get_history(date, contract, whatToShow, dbcontract, tickerId, minDataPoints, durationStr, barSizeSetting) logging.info('Done Getting History for ' + pair) if len(symfilter) > 0: return data
def check_bar(barSizeSetting, symfilter=''): interval = duration_to_interval(barSizeSetting) frequency = interval_to_sec(interval) try: count = 0 if symfilter: contracts = bars.get_contract(symfilter) else: contracts = bars.get_contracts() for contract in contracts: pair = contract.symbol if contract.secType == 'CASH': pair = contract.symbol + contract.currency #if len(symfilter) == 0 or pair == symfilter: dbcontract = bars.contract_to_dbcontract(contract) eastern = timezone('US/Eastern') nowdate = datetime.datetime.now() bardate = bars.get_bar_end_date(dbcontract, frequency) if bardate: bardate = parse(bardate).replace(tzinfo=eastern) else: bardate = datetime.date(2000, 1, 1) #dtimestamp = time.mktime(datadate.timetuple()) btimestamp = time.mktime(bardate.timetuple()) timestamp = time.mktime(nowdate.timetuple()) + 3600 checktime = 3 checktime = checktime * 60 logging.info(pair + ' Feed Last Received ' + str(round((timestamp - btimestamp) / 60, 2)) + ' mins ago') if timestamp - btimestamp > checktime: logging.error(pair + ' Feed not being received for ' + str(round( (timestamp - btimestamp) / 60, 2))) + ' mins' if len(symfilter) > 0: return False count = count + 1 if count > 5: return False else: return True except Exception as e: logging.error("check_bar", exc_info=True)
def get_bar_feed(whatToShow, barSizeSetting, symfilter=''): if symfilter: symbols = bars.get_contract(symfilter) else: symbols = bars.get_contracts() for contract in symbols: pair = contract.symbol if contract.secType == 'CASH': pair = contract.symbol + contract.currency #if len(symfilter) == 0 or pair == symfilter: logging.info('Subscribing Feed to ' + pair) interval = duration_to_interval(barSizeSetting) frequency = interval_to_sec(interval) tickerId = get_TickerId(pair) global tickerid, client, callback dbcontract = bars.contract_to_dbcontract(contract) dbcontract.frequency = frequency client.get_IB_market_data(contract, tickerId, dbcontract) logging.info('Done Subscribing to ' + pair)
def get_bar_hist(whatToShow, minDataPoints, durationStr, barSizeSetting, symfilter=''): global tickerId global currencyPairsDict if symfilter: symbols = bars.get_contract(symfilter) else: symbols = bars.get_contracts() for contract in symbols: print 'Looking up ', symfilter, ' found:', contract.localSymbol pair = contract.symbol if contract.secType == 'CASH': pair = contract.symbol + contract.currency #if len(symfilter) == 0 or pair == symfilter: logging.info('Getting History for ' + pair) interval = duration_to_interval(barSizeSetting) eastern = timezone('US/Eastern') enddateTime = dt.now(get_localzone()) date = enddateTime.astimezone(eastern) #date=date.strftime("%Y%m%d %H:%M:%S EST") date = get_bar_date(barSizeSetting, date) + ' EST' tickerId = get_TickerId(pair) dbcontract = bars.contract_to_dbcontract(contract) dbcontract.frequency = interval_to_sec(interval) data = get_history(date, contract, whatToShow, dbcontract, tickerId, minDataPoints, durationStr, barSizeSetting) logging.info('Done Getting History for ' + pair) if len(symfilter) > 0: return data
def get_bar_realtime(whatToShow, barSizeSetting, symfilter=''): if symfilter: contracts = bars.get_contract(symfilter) else: contracts = bars.get_contracts() for contract in contracts: pair = contract.localSymbol if contract.secType == 'CASH': pair = contract.symbol + contract.currency #if len(symfilter) == 0 or pair == symfilter: logging.info('Subscribing Realtime Bar to ' + pair) interval = duration_to_interval(barSizeSetting) tickerId = get_TickerId(pair) secs = interval_to_sec(interval) dbcontract = bars.contract_to_dbcontract(contract) global client, callback dbcontract.frequency = interval_to_sec(interval) client.get_realtimebar(contract, tickerId, whatToShow, dbcontract, secs) logging.info('Done Subscribing to ' + pair)
def get_bar_bidask(symfilter=''): global tickerId if symfilter: symbols = bars.get_contract(symfilter) else: symbols = bars.get_contracts() for contract in symbols: pair = contract.symbol if contract.secType == 'CASH': pair = contract.symbol + contract.currency #if len(symfilter) == 0 or pair == symfilter: logging.info('Subscribing Bid/Ask to ' + pair) eastern = timezone('US/Eastern') enddateTime = dt.now(get_localzone()) date = enddateTime.astimezone(eastern) date = date.strftime("%Y%m%d %H:%M:%S EST") tickerId = get_TickerId(pair) global tickerid, client, callback dbcontract = bars.contract_to_dbcontract(contract) #dbcontract.frequency=frequency client.get_IB_market_data(contract, tickerId, dbcontract) logging.info('Done Subscribing to ' + pair)
def get_contracts(): return bars.get_contracts()