2016-05-30 19 views
0

私はExcelのDataNitroを使用してBloombergからASK価格を取得しようとしています。Python APIを使用してBloombergのASK価格を取得

私は、Excelからこの関数を呼び出しています:

メイン()エクセルで

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() 

: "価格を確認する:%s" の
リターン%を(askPrice)
は、それは常に「パイソンを言いますタイムアウト "を呼び出しています。

しかし、私がリターンを変更すると、Pythonシェルの価格が正しく表示されます
印刷 "Ask Price:%s"%(askPrice)

Bloomberg側の問題は、私がそれらに連絡しなければならないセッションか、修正しなければならない実際のコードですか?何かアドバイス?

+0

は、おそらく性質上再帰的な 'askPrice'ですか?多分、Pythonは文字列に変換するときに再帰的ループに陥ってしまいますが、コードはC言語で処理されるので再帰エラーは発生しません。 –

答えて

0

返品にはどのくらいの期間がかかりますか? DataNitro UDFの長時間実行機能がExcelをフリーズするのを防ぐため、3秒後にタイムアウトします。 DataNitroの設定でタイムアウト時間を変更できます。

+0

私は30秒にタイムアウトを変更してもまだ動作しません。私がPythonシェルで動いているときは、通常は高速です。 –

+2

これは、コメントと答えの方が合っているようです。 –

関連する問題