Esempio n. 1
0
def kite_ticker_handler(manager, msg):
    global kws, kite, kite_api_key, access_token
    pdebug('kite_ticker_handler: {}'.format(msg))
    # 1: Start kite websocket connections
    # Initialise
    if kws is None and msg != 'INIT':
        return

    pdebug('kite_ticker_handler: Exec {}'.format(msg))

    if msg == 'INIT':
        try:
            cache.set('KiteAPIKey',kite_api_key)
            access_token = cache.get('access_token')
            kite.set_access_token(access_token)
            pinfo(kite.access_token)
            kws = KiteTicker(kite_api_key, kite.access_token)

            # Assign the callbacks.
            kws.on_ticks = on_ticks
            kws.on_connect = on_connect
            kws.on_order_update = on_order_update
            #kws.on_close = on_close
            cache.publish('kite_ticker_handler'+cache_postfix,'START')
        except Exception as e:
            perror('Could not connect to KITE server: {}'.format(e))
    elif msg == 'START':
        kws.connect(threaded=True)
        #kws.subscribe(value)
        #kws.set_mode(kws.MODE_LTP, value) #Default mode LTP

    elif msg == 'STATUS':
        pinfo(kws.is_connected())
    elif msg == 'CLOSE':
        cache.set('Kite_Status','closed')
        cache.publish('ohlc_tick_handler'+cache_id,'stop')
        #cache.publish('ohlc_tick_handler'+cache_id,'stop')
        kws.close()
    elif msg == 'profile':
        pinfo(kite.profile())
    else:
        try:
            msg_j = json.loads(msg)
            cmd = msg_j['cmd']
            value = msg_j['value']
            mode_map = {'ltp':kws.MODE_LTP, 'full':kws.MODE_FULL, 'quote': kws.MODE_QUOTE}
            mode = mode_map[msg_j['mode']]
            
            if cmd == 'add':
                kws.subscribe(value)
                kws.set_mode(mode, value)
                pinfo('Subscribe: {}: {}'.format(cmd, msg))
            elif cmd == 'remove':
                kws.unsubscribe(value)
                pinfo('Un-Subscribe: {}: {}'.format(cmd, msg))
            elif cmd == 'mode':
                pinfo('Set Mode: {}: {}'.format(cmd, msg))
                kws.set_mode(mode, value)
        except:
            pass
def GetTickerData(access_token, tokens):
    kws = KiteTicker('hr1osvvapq449uqf', access_token)
    # tokens = [11005954]

    kws.on_ticks = on_ticks
    kws.on_close = on_close
    kws.on_error = on_error
    kws.on_connect = partial(on_connect, tokens)
    kws.on_reconnect = on_reconnect
    kws.on_noreconnect = on_noreconnect

    kws.connect(threaded=True, disable_ssl_verification=True)
    logging.info(
        "This is main thread. Will change webosocket mode every 5 seconds.")

    count = 0
    while True:
        if kws.is_connected():
            kws.set_mode(kws.MODE_QUOTE, tokens)

        time.sleep(1)
Esempio n. 3
0
# Assign the callbacks.
kws.on_ticks = on_ticks
kws.on_close = on_close
kws.on_error = on_error
kws.on_connect = on_connect
kws.on_reconnect = on_reconnect
kws.on_noreconnect = on_noreconnect

# Infinite loop on the main thread. Nothing after this will run.
# You have to use the pre-defined callbacks to manage subscriptions.
kws.connect(threaded=True)

# Block main thread
logging.info(
    "This is main thread. Will change webosocket mode every 5 seconds.")

count = 0
while True:
    count += 1
    if count % 2 == 0:
        if kws.is_connected():
            logging.info("### Set mode to LTP for all tokens")
            kws.set_mode(kws.MODE_LTP, tokens)
    else:
        if kws.is_connected():
            logging.info("### Set mode to quote for all tokens")
            kws.set_mode(kws.MODE_QUOTE, tokens)

    time.sleep(5)