def main(): """Main function""" options = parseCmdLine() # Fill SessionOptions sessionOptions = prepareZfpSessionOptions(options) \ if options.remote \ else prepareStandardSessionOptions(options) sessionOptions.setAuthenticationOptions(options.auth['option']) sessionOptions.setAutoRestartOnDisconnection(True) session = blpapi.Session(sessionOptions) if not session.start(): print("Failed to start session.") return subscriptionIdentity = session.createIdentity() if options.auth['option']: isAuthorized = False authServiceName = "//blp/apiauth" if session.openService(authServiceName): authService = session.getService(authServiceName) isAuthorized = authorize( authService, subscriptionIdentity, session, blpapi.CorrelationId("auth"), options.auth.get('manual')) if not isAuthorized: print("No authorization") return subscriptions = blpapi.SubscriptionList() for t in options.topics: topic = options.service + t subscriptions.add(topic, options.fields, options.options, blpapi.CorrelationId(topic)) session.subscribe(subscriptions, subscriptionIdentity) try: eventCount = 0 while True: # Specify timeout to give a chance for Ctrl-C event = session.nextEvent(1000) for msg in event: if event.eventType() == blpapi.Event.SUBSCRIPTION_STATUS or \ event.eventType() == blpapi.Event.SUBSCRIPTION_DATA: print("%s - %s" % (msg.correlationIds()[0].value(), msg)) else: print(msg) if event.eventType() == blpapi.Event.SUBSCRIPTION_DATA: eventCount += 1 if eventCount >= options.maxEvents: break finally: session.stop()
def create_subscription( self, corr_id: blpapi.CorrelationId) -> blpapi.SubscriptionList: subscription = blpapi.SubscriptionList() for security in self.securities: subscription.add(security, self._fields, correlationId=corr_id) return subscription
def main(): """Main function""" options = parseCmdLine() # Fill SessionOptions sessionOptions = prepareZfpSessionOptions(options) \ if options.remote \ else prepareStandardSessionOptions(options) sessionOptions.setSessionIdentityOptions(options.auth['option']) session = blpapi.Session(sessionOptions) try: if not session.start(): checkFailures(session) print("Failed to start session.") return if not session.openService(options.service): checkFailures(session) return subscriptions = blpapi.SubscriptionList() for t in options.topics: topic = options.service + t subscriptions.add(topic, options.fields, options.options, blpapi.CorrelationId(topic)) session.subscribe(subscriptions) processSubscriptionEvents(session, options.maxEvents) finally: session.stop()
def subscribe(session, options, identity=None): sl = blpapi.SubscriptionList() for s in options.securities: topic = topicName(s) cid = blpapi.CorrelationId(s) print("Subscribing {0} => {1}".format(cid, topic)) sl.add(topic, options.fields, correlationId=cid) session.subscribe(sl, identity)
def subscribe(self, topics, fields, options, identity): """Subscribes to the provided service/topics.""" subscription_list = blpapi.SubscriptionList() for topic in topics: subscription_list.add(topic, fields, options, blpapi.CorrelationId(topic)) self._session.subscribe(subscription_list, identity)
def main(): options = parseCmdLine() # Fill SessionOptions sessionOptions = blpapi.SessionOptions() sessionOptions.setServerHost(options.host) sessionOptions.setServerPort(options.port) print("Connecting to %s:%d" % (options.host, options.port)) # Create a Session session = blpapi.Session(sessionOptions) # Start a Session if not session.start(): print("Failed to start session.") return if not session.openService("//blp/mktdata"): print("Failed to open //blp/mktdata") return security1 = "IBM US Equity" security2 = "/cusip/912828GM6@BGN" subscriptions = blpapi.SubscriptionList() subscriptions.add(security1, "LAST_PRICE,BID,ASK", "", blpapi.CorrelationId(security1)) subscriptions.add(security2, "LAST_PRICE,BID,ASK,BID_YIELD,ASK_YIELD", "", blpapi.CorrelationId(security2)) session.subscribe(subscriptions) try: # Process received events eventCount = 0 while(True): # We provide timeout to give the chance to Ctrl+C handling: event = session.nextEvent(500) for msg in event: if event.eventType() == blpapi.Event.SUBSCRIPTION_STATUS or \ event.eventType() == blpapi.Event.SUBSCRIPTION_DATA: print("%s - %s" % (msg.correlationIds()[0].value(), msg)) else: print(msg) if event.eventType() == blpapi.Event.SUBSCRIPTION_DATA: eventCount += 1 if eventCount >= options.maxEvents: break finally: # Stop the session session.stop()
def subscribe(): # Create a SubscriptionList and populate it with securities, fields etc subscriptions = blpapi.SubscriptionList() for i, security in enumerate(g_securities): subscriptions.add(security, g_fields, g_options, blpapi.CorrelationId(i)) print("Subscribing...") g_session.subscribe(subscriptions, g_identity)
def main(): options = parseCmdLine() # Fill SessionOptions sessionOptions = blpapi.SessionOptions() for idx, host in enumerate(options.hosts): sessionOptions.setServerAddress(host, options.port, idx) sessionOptions.setSessionIdentityOptions(options.auth['option']) sessionOptions.setAutoRestartOnDisconnection(True) # NOTE: If running without a backup server, make many attempts to # connect/reconnect to give that host a chance to come back up (the # larger the number, the longer it will take for SessionStartupFailure # to come on startup, or SessionTerminated due to inability to fail # over). We don't have to do that in a redundant configuration - it's # expected at least one server is up and reachable at any given time, # so only try to connect to each server once. sessionOptions.setNumStartAttempts(1 if len(options.hosts) > 1 else 1000) print("Connecting to port %d on %s" % (options.port, ", ".join(options.hosts))) session = blpapi.Session(sessionOptions) if not session.start(): print("Failed to start session.") return topic = options.service + "/1245/4/5" topic2 = options.service + "/330/1/1" subscriptions = blpapi.SubscriptionList() subscriptions.add(topic, correlationId=blpapi.CorrelationId(topic)) subscriptions.add(topic2, correlationId=blpapi.CorrelationId(topic2)) session.subscribe(subscriptions) try: eventCount = 0 while True: # Specify timeout to give a chance for Ctrl-C event = session.nextEvent(1000) for msg in event: if event.eventType() == blpapi.Event.SUBSCRIPTION_STATUS or \ event.eventType() == blpapi.Event.SUBSCRIPTION_DATA: print("%s - %s" % (msg.correlationIds()[0].value(), msg)) else: print(msg) if event.eventType() == blpapi.Event.SUBSCRIPTION_DATA: eventCount += 1 if eventCount >= options.maxEvents: break finally: session.stop()
def subscribe(self, topic, message_handler): try: self.next_cor_id+=1 c_id = blpapi.CorrelationId(self.next_cor_id) subscriptions = blpapi.SubscriptionList() subscriptions.add(topic=topic, correlationId=c_id) self.session.subscribe(subscriptions) self.subscription_message_handlers[c_id.value()] = message_handler # print("Request submitted (" + str(cID) + "): \n" + str(topic)) except Exception as err: print("EasyMSX >> Error subscribing to topic: " + str(err))
def __init__(self, handler=None): self.correlation_ids = defaultdict(dict) if handler is None: handler = br.processEvent self.event_handler = handler self.dispatcher = bb.EventDispatcher(10) super(Session, self).__init__(SESSION_OPTIONS, self.event_handler, self.dispatcher) self.dispatcher.start() self.started = False self.queue = Queue() self.subscription_list = bb.SubscriptionList() self.start_session()
def main(): options = parseCmdLine() # Fill SessionOptions sessionOptions = blpapi.SessionOptions() sessionOptions.setServerHost(options.host) sessionOptions.setServerPort(options.port) print("Connecting to %s:%d" % (options.host, options.port)) # Create a Session session = blpapi.Session(sessionOptions) # Start a Session if not session.start(): print("Failed to start session.") return if not session.openService("//blp/mktdata"): print("Failed to open //blp/mktdata") return securities = ["IBM US Equity", "VOD LN Equity"] gridWindow = GridWindow("SecurityInfo", securities) subscriptions = blpapi.SubscriptionList() for i, security in enumerate(securities): subscriptions.add(security, "LAST_PRICE", "", blpapi.CorrelationId(i)) session.subscribe(subscriptions) try: # Process received events eventCount = 0 while(True): # We provide timeout to give the chance to Ctrl+C handling: event = session.nextEvent(500) if event.eventType() == blpapi.Event.SUBSCRIPTION_DATA: for msg in event: row = msg.correlationIds()[0].value() gridWindow.processSecurityUpdate(msg, row) eventCount += 1 if eventCount >= options.maxEvents: break finally: # Stop the session session.stop()
def createIOISubscription(self, session): print("Create IOI subscription") #Create the topic string for the ioi subscription. ioiTopic = d_ioi + "/ioi" subscriptions = blpapi.SubscriptionList() subscriptions.add(topic=ioiTopic, correlationId=ioiSubscriptionID) print("Sending subscription: " + ioiTopic) session.subscribe(subscriptions)
def add_subscription(self, security): try: self.next_cor_id+=1 c_id = blpapi.CorrelationId(self.next_cor_id) subscriptions = blpapi.SubscriptionList() flds = "" for s in self.subscription_fields: flds += s + "," subscriptions.add(security.name, flds[:-1], "", c_id) self.session.subscribe(subscriptions) self.subscription_message_handlers[c_id.value()] = security.process_message print("Request submitted (" + str(c_id.value()) + "): " + security.name + "/" +str(flds[:-1])+"\n") except Exception as err: print("EasyIOI >> Error subscribing to topic: " + str(err))
def main(): options = parseCmdLine() # Fill SessionOptions sessionOptions = blpapi.SessionOptions() sessionOptions.setServerHost(options.host) sessionOptions.setServerPort(options.port) print("Connecting to %s:%d" % (options.host, options.port)) eventHandler = SubscriptionEventHandler() # Create a Session session = blpapi.Session(sessionOptions, eventHandler.processEvent) # Start a Session if not session.start(): print("Failed to start session.") return print("Connected successfully") service = "//blp/mktdata" if not session.openService(service): print("Failed to open %s service" % service) return subscriptions = blpapi.SubscriptionList() for t in options.topics: topic = service if not t.startswith("/"): topic += "/" topic += t subscriptions.add(topic, options.fields, options.options, blpapi.CorrelationId(t)) print("Subscribing...") session.subscribe(subscriptions) # timer timer_func() while 1: now = getCurrentDateTime() # force to exit the program including all sub-thread if now.time() > dt.time(16, 10): _thread.interrupt_main() continue
def main(): options = parseCmdLine() # Fill SessionOptions sessionOptions = blpapi.SessionOptions() sessionOptions.setServerHost(options.host) sessionOptions.setServerPort(options.port) print("Connecting to %s:%d" % (options.host, options.port)) eventHandler = SubscriptionEventHandler() # Create a Session session = blpapi.Session(sessionOptions, eventHandler.processEvent) # Start a Session if not session.start(): print("Failed to start session.") return print("Connected successfully") service = "//blp/mktdata" if not session.openService(service): print("Failed to open %s service" % service) return subscriptions = blpapi.SubscriptionList() for t in options.topics: topic = service if not t.startswith("/"): topic += "/" topic += t subscriptions.add(topic, options.fields, options.options, blpapi.CorrelationId(t)) print("Subscribing...") session.subscribe(subscriptions) try: # Wait for enter key to exit application print("Press ENTER to quit") input() finally: # Stop the session session.stop()
def unsubscribe(self,securities,fields,options=[]): subscriptions = blpapi.SubscriptionList() try: service = "//blp/mktdata" id=[] for t in securities: topic = service if not t.startswith("/"): topic += "/" topic += t id.append(blpapi.CorrelationId(t)) #blpapi.CorrelationId(t) subscriptions.add(topic, fields, options, id[-1]) print("UnSubscribing...") self.session_live.unsubscribe(subscriptions) except Exception as e: print("Error Unsubscribing") uu.printException(e)
def _init(self): # init session opts = blpapi.SessionOptions() opts.setServerHost(self.host) opts.setServerPort(self.port) self.session = session = blpapi.Session(opts) if not session.start(): raise Exception("failed to start session") if not session.openService("//blp/mktdata"): raise Exception("failed to open service") # init subscriptions subs = blpapi.SubscriptionList() flds = ",".join(self.fields) istr = self.interval and "interval=%.1f" % self.interval or "" for ticker in self.tickers: subs.add(ticker, flds, istr, blpapi.CorrelationId(ticker)) session.subscribe(subs)
def subscribe(self, securities, fields, options=[]): try: subscriptions = blpapi.SubscriptionList() service = "//blp/mktdata" id = [] for t in securities: topic = service if not t.startswith("/"): topic += "/" topic += t id.append(blpapi.CorrelationId(t)) #blpapi.CorrelationId(t) subscriptions.add(topic, fields, options, id[-1]) print("Subscribing...") self.session_live.subscribe(subscriptions) except Exception as ex: print("Subscription Failed") uu.printException(ex) return None return id
def main(): global options options = parseCmdLine() # Fill SessionOptions sessionOptions = blpapi.SessionOptions() sessionOptions.setServerHost(options.host) sessionOptions.setServerPort(options.port) print "Connecting to %s:%d" % (options.host, options.port) myEventHandler = MyEventHandler() # Create a Session session = blpapi.Session(sessionOptions, myEventHandler.processEvent) # Start a Session if not session.start(): print "Failed to start session." return if not session.openService("//blp/mktdata"): print "Failed to open //blp/mktdata" return if not session.openService("//blp/refdata"): print "Failed to open //blp/refdata" return print "Subscribing to IBM US Equity" cid = blpapi.CorrelationId(1) subscriptions = blpapi.SubscriptionList() subscriptions.add("IBM US Equity", "LAST_PRICE", "", cid) session.subscribe(subscriptions) print "Requesting reference data IBM US Equity" refDataService = session.getService("//blp/refdata") request = refDataService.createRequest("ReferenceDataRequest") request.append("securities", "IBM US Equity") request.append("fields", "DS002") cid2 = blpapi.CorrelationId(2) eventQueue = blpapi.EventQueue() session.sendRequest(request, correlationId=cid2, eventQueue=eventQueue) try: # Process received events while (True): # We provide timeout to give the chance to Ctrl+C handling: ev = eventQueue.nextEvent(500) for msg in ev: print msg # Response completly received, so we could exit if ev.eventType() == blpapi.Event.RESPONSE: break # Wait for enter key to exit application print "Press ENTER to quit" raw_input() finally: # Stop the session session.stop()
# Step though and delete broken connections for failed in xList: if failed == self.socket: logging.error("Socket broke") for fileno, conn in self.connections: conn.close() self.running = False ############# BLOOMBERG ################## import blpapi ## List of monitored Stocks STOCKS = [] LIST_OF_STOCKWATCH = [] SUBSCRIPTIONS = blpapi.SubscriptionList() SESSION = None SUBSCRIBED = False KEY_CONN_DICT = {} # key to connections[] class StockWatch: def __init__(self, key, stock_name, above_or_below, price): self.key = key self.stock_name = stock_name self.above_or_below = above_or_below self.price = price self.triggered = False self.myId = stock_name + str(above_or_below) + str(int(price * 100)) print(self.myId)
def main(): global options options = parseCmdLine() # Fill SessionOptions sessionOptions = blpapi.SessionOptions() for idx, host in enumerate(options.hosts): sessionOptions.setServerAddress(host, options.port, idx) sessionOptions.setAuthenticationOptions(options.auth) sessionOptions.setAutoRestartOnDisconnection(True) # NOTE: If running without a backup server, make many attempts to # connect/reconnect to give that host a chance to come back up (the # larger the number, the longer it will take for SessionStartupFailure # to come on startup, or SessionTerminated due to inability to fail # over). We don't have to do that in a redundant configuration - it's # expected at least one server is up and reachable at any given time, # so only try to connect to each server once. sessionOptions.setNumStartAttempts(1 if len(options.hosts) > 1 else 1000) print "Connecting to port %d on %s" % (options.port, ", ".join( options.hosts)) session = blpapi.Session(sessionOptions) if not session.start(): print "Failed to start session." return subscriptionIdentity = session.createIdentity() if options.auth: isAuthorized = False authServiceName = "//blp/apiauth" if session.openService(authServiceName): authService = session.getService(authServiceName) isAuthorized = authorize(authService, subscriptionIdentity, session, blpapi.CorrelationId("auth")) if not isAuthorized: print "No authorization" return subscriptions = blpapi.SubscriptionList() for t in options.topics: topic = options.service + t subscriptions.add(topic, options.fields, options.options, blpapi.CorrelationId(topic)) session.subscribe(subscriptions, subscriptionIdentity) try: eventCount = 0 while True: # Specify timeout to give a chance for Ctrl-C event = session.nextEvent(1000) for msg in event: if event.eventType() == blpapi.Event.SUBSCRIPTION_STATUS or \ event.eventType() == blpapi.Event.SUBSCRIPTION_DATA: print "%s - %s" % (msg.correlationIds()[0].value(), msg) else: print msg if event.eventType() == blpapi.Event.SUBSCRIPTION_DATA: eventCount += 1 if eventCount >= options.maxEvents: break finally: session.stop()
def bloomberg_subscribe(): # Bloomberg API runs on localhost:8194 options = {'host': 'localhost', 'port': 8194} # securities you want data of securities = [ "XAU Curncy", "COA Comdty", "GI1 Index", "SPX INDEX", "FSSTI Index", "HSI Index", "BDIY Index" ] # fields which you want to get the data of fields = ["LAST_PRICE", "RT_PX_CHG_NET_1D", "RT_PX_CHG_PCT_1D"] # Fill SessionOptions sessionOptions = blpapi.SessionOptions() sessionOptions.setServerHost(options['host']) sessionOptions.setServerPort(options['port']) self.logger.info("Bloomberg API - Connecting to %s:%d" % (options['host'], options['port'])) # Create a Session session = blpapi.Session(sessionOptions) # Start a Session if not session.start(): event = session.nextEvent() for msg in event: self.logger.error(msg) self.logger.error("Failed to start session.") return 1 else: self.logger.info("Bloomberg session started") if not session.openService("//blp/mktdata"): self.logger.error("Failed to open //blp/mktdata") return 1 else: self.logger.info("Opening service to //blp/mktdata") # Creating subscriptions to required Bloomberg data subscriptions = blpapi.SubscriptionList() for sec in securities: subscriptions.add(sec, fields, "", blpapi.CorrelationId(sec)) session.subscribe(subscriptions) try: # Handle received events in an event loop eventCount = 4950 self.logger.info("Subscription begins") while (True): event = session.nextEvent(500) eventCount = (eventCount + 1) % 5001 # self.market_data.append({"TIME_RETRIEVED": str(datetime.now())}) for msg in event: # NOTE: To print the entire message for debugging: # print("%s - %s" % (msg.correlationIds()[0].value(), msg)) if event.eventType( ) == blpapi.Event.SUBSCRIPTION_DATA and msg.hasElement( fields[0]): d = {} d["TITLE"] = msg.correlationIds()[0].value() d['TIME_RETRIEVED'] = str(datetime.now()) for field_name in fields: if (msg.asElement().hasElement(field_name)): field_value = msg.asElement( ).getElementAsString(field_name) else: field_value = 0 if field_name == "LAST_PRICE": d['LAST_PRICE'] = field_value elif field_name == "RT_PX_CHG_NET_1D": d['NET_CHANGE'] = field_value elif field_name == "RT_PX_CHG_PCT_1D": d['PCT_CHANGE'] = field_value else: d[field_name] = field_value self.market_data[msg.correlationIds() [0].value()] = d # roughly every 10 minutes, otherwise we'll be logging too much if eventCount == 5000: self.logger.info("Data From Bloomberg: " + str(self.market_data)) except Exception as e: self.logger.error(e) finally: # Stop the session self.logger.info("Terminating Bloomberg session") session.stop() return 1
def main(): options = parseCmdLine() # Fill SessionOptions sessionOptions = blpapi.SessionOptions() sessionOptions.setServerHost(options.host) sessionOptions.setServerPort(options.port) print("Connecting to %s:%d" % (options.host, options.port)) # Create a Session session = blpapi.Session(sessionOptions) # Start a Session if not session.start(): print("Failed to start session.") return if not session.openService("//blp/mktdata"): print("Failed to open //blp/mktdata") return ### Use this list for writing the equity names manually #equityNames = ["CVE CN Equity", "N CN Equity", "IBM US Equity", "CM CN Equity", "CM CT Equity"]# take name of the equities from a file as strings #equityNames = ["XLY CN Equity"] ### Use this function for pulling the equity names from the input file with open('input.txt') as f: equityNames2 = f.readlines() equityNames = [x.strip() for x in equityNames2] equity = {} ### subscriptions = blpapi.SubscriptionList() for i in range(len(equityNames)): equity[equityNames[i]] = {'BID': "0.0", 'ASK': "0.0", 'VWAP': "0.0", 'TIME': "0.0" } subscriptions.add(equityNames[i], "BID,ASK, VWAP, TIME", "", blpapi.CorrelationId(equityNames[i])) session.subscribe(subscriptions) errors = {} try: # Process received events eventCount = 0 while(True): # We provide timeout to give the chance to Ctrl+C handling: event = session.nextEvent(15000) for msg in event: if (event.eventType() == blpapi.Event.SUBSCRIPTION_STATUS and msg.messageType() == "SubscriptionFailure"): #msg.correlationIds()[0].value().find("Failure")!=-1 f = open("BadSubscription.txt", "a+") s = "" if msg.getElement("reason").getElement("errorCode").getValueAsInteger() !=12: s = msg.toString() f.write(s) f.write(msg.timeReceived().strftime("%H:%M:%S")) elif event.eventType() == blpapi.Event.SUBSCRIPTION_DATA: print("--------- UPDATE ----------\n") # Get the equity name oneEquity = msg.correlationIds()[0].value() # Check and update if the newly arrived message has any updates # for the following fields. Update the value if it does. if msg.hasElement("BID"): equity[oneEquity]['BID'] = msg.getElementAsFloat("BID") if msg.hasElement("ASK"): equity[oneEquity]['ASK'] = msg.getElementAsFloat("ASK") if msg.hasElement("VWAP"): equity[oneEquity]['VWAP'] = msg.getElementAsFloat("VWAP") if msg.hasElement("TIME"): equity[oneEquity]['TIME'] = msg.getElementAsDatetime("TIME") timeString = equity[oneEquity]['TIME'].strftime("%H:%M:%S") # Print the updated Equity with all fields print(" Security: " + oneEquity + "\n Bid: " + str(equity[oneEquity]['BID']) + "\n Ask: " + str(equity[oneEquity]['ASK'])) diff = float(equity[oneEquity]['ASK']) - float(equity[oneEquity]['BID']) print(" Diff: %.5f" % diff) # If Ask-Bid difference is normal (0 or positive), print OK if(diff >= 0): print(" OK \n") # If Ask-Bid difference is negative, print BAD and write the necessary info to a file else: print(" BAD") errors[oneEquity] = equity[oneEquity] errors[oneEquity]['Bid'] = equity[oneEquity]['BID'] errors[oneEquity]['Ask'] = equity[oneEquity]['ASK'] errors[oneEquity]['Diff'] = diff # These 2 lines are for debugging purposes # print("Error Array:") # print("Bid %.5f - Ask %.5f = Diff: %.5f" % (errors[oneEquity]['Bid'], errors[oneEquity]['Ask'],errors[oneEquity]['Diff']) ) if ('StartTime' not in errors[oneEquity]) and msg.hasElement("TIME"): errors[oneEquity]['StartTime'] = equity[oneEquity]['TIME'] # These 2 lines are for debugging purposes # print("Start Time:") # print(errors[oneEquity]['StartTime']) if ('LastTime' not in errors[oneEquity]): errors[oneEquity]['LastTime'] = equity[oneEquity]['TIME'] # These 2 lines are for debugging purposes # print("Last Time:") # print(errors[oneEquity]['LastTime']) elif 'LastTime' in errors[oneEquity] and (errors[oneEquity]['LastTime'] != equity[oneEquity]['TIME']): errors[oneEquity]['LastTime'] = equity[oneEquity]['TIME'] # These 2 lines are for debugging purposes # print("Last Time:") # print(errors[oneEquity]['LastTime']) #if errors[oneEquity]['LastTime'] - errors[oneEquity]['StartTime'] > timedelta(seconds=45): if minute_interval(errors[oneEquity]['LastTime'],errors[oneEquity]['StartTime']) > 5: print("ALERT") print("Start Time:") print(errors[oneEquity]['StartTime']) print("Last Time:") print(errors[oneEquity]['LastTime']) # f = open("BadBidAsk.txt", "a+") # f.write("\n\n Security: " + oneEquity + # "\n Bid: %.3f" % equity[oneEquity]['BID'] + # "\n Ask: %.3f" % equity[oneEquity]['ASK'] + # "\n Diff: %.5f " % diff + # "\n Time: " + datetime.datetime.now().strftime('%H:%M:%S')) print("\n Vwap: " + str(equity[oneEquity]['VWAP'])) print(" Time: "+ timeString) # If there is a date instead of time stamp # print BAD and write the necessary info to a file # If there is a slash (/) in the string, # then it is a date M/D/Y instead of H:M:S if(timeString.find('/')!=-1): print(" BAD") # f = open("BadVwapTime.txt", "a+") # f.write("\n\n Security: " + oneEquity + # "\n Time: "+ equity[oneEquity]['TIME']) else: print(" OK \n") else: print(msg) print(msg.messageType()) if event.eventType() == blpapi.Event.SUBSCRIPTION_DATA: eventCount += 1 if eventCount >= options.maxEvents: break finally: # Stop the session session.stop()
# -*- coding: utf-8 -*- """ Created on Thu Feb 16 17:14:49 2017 @author: pmonnot """ import blpapi session = blpapi.Session() session.start() session.openService("//blp/pagedata") service = session.getService("//blp/pagedata") string = "0708/012/0001" fields = ["15-18"] subscriptions = blpapi.SubscriptionList() subscriptions.add("//blp/pagedata/" + string, fields, None, blpapi.CorrelationId(string)) session.subscribe(subscriptions) endReached = False while not endReached: ev = session.nextEvent() for msg in ev: print msg