import eikon as ek import logging.config ek.set_log_level(logging.DEBUG) ek.set_app_key('App key') import datetime import time def display_refreshed_fields(streaming_price, instrument_name, fields): current_time = datetime.datetime.now().time() print(current_time, "- Refresh received for", instrument_name, ":", fields) def display_updated_fields(streaming_price, instrument_name, fields): current_time = datetime.datetime.now().time() print(current_time, "- Update received for", instrument_name, ":", fields) def display_status(streaming_price, instrument_name, status): current_time = datetime.datetime.now().time() print(current_time, "- Status received for", instrument_name, ":", status) def display_complete_snapshot(streaming_prices): current_time = datetime.datetime.now().time() print(current_time, "- StreamingPrice is complete. Full snapshot:") print(streaming_prices.get_snapshot()) streaming_prices = ek.StreamingPrices( instruments = ['EUR='] ,fields = ['SALTIM', 'CF_BID','CF_ASK','OPEN_PRC', 'CF_HIGH','CF_LOW', 'CF_CLOSE' ,'CF_VOLUME', 'CF_LAST'], on_refresh = lambda streaming_price, instrument_name, fields : display_refreshed_fields(streaming_price, instrument_name, fields), on_update = lambda streaming_price, instrument_name, fields : display_updated_fields(streaming_price, instrument_name, fields), on_status = lambda streaming_price, instrument_name, status : display_status(streaming_price, instrument_name, status), on_complete = lambda streaming_price : display_complete_snapshot(streaming_price) ) streaming_prices.open() df = streaming_prices.get_snapshot() streaming_prices.close()