Exemplo n.º 1
0
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
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
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)
Exemplo n.º 7
0
def get_contracts():
    return bars.get_contracts()