2016-05-30 75 views
0

我想從彭博社使用Excel的DataNitro得到詢問價。使用Python API在彭博上取得詢問價格

我從Excel中調用這個函數:

的main()

def main(): 
    options = parseCmdLine() 

    # Fill SessionOptions 
    sessionOptions = blpapi.SessionOptions() 
    sessionOptions.setServerHost(options.host) 
    sessionOptions.setServerPort(options.port) 


    # Create a Session 
    session = blpapi.Session(sessionOptions) 

    # Start a Session 
    if not session.start(): 

     return "Failed to start session." 

    try: 
     # Open service to get historical data from 
     if not session.openService("//blp/refdata"): 

      return "Failed to open //blp/refdata" 

     sendIntradayBarRequest(session, options) 

     # wait for events from session. 
     askPrice=eventLoop(session) 
     return "Ask Price: %s " % (askPrice) 

    finally: 
     # Stop the session 
     session.stop() 

利用Excel:
回報 「賣出價:%的」 %(askPrice)
它總是說「巨蟒超時「在我打電話從

函數但是,當我改變返回打印,它正確地顯示在Python外殼上的價格
print「Ask Price:%s」%(askPrice)

問題是彭博方面提出的一個會議,我必須聯繫他們或者我必須解決的實際代碼?有什麼建議?

+0

是'askPrice'可能是遞歸的嗎?也許python被卡在一個遞歸循環轉換爲字符串時,但不會引發遞歸錯誤,因爲代碼在C處理... –

回答

0

價格需要多長時間才能退貨? DataNitro UDF在3秒後超時,以防止長時間運行的函數凍結Excel。您可以在DataNitro的設置中修改超時時間。

+0

我甚至改變了30秒的時間,仍然無法正常工作。當我在Python shell上運行時,它通常很快 –

+2

這似乎更適合於評論,然後是答案。 –