2016-05-30 108 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

这似乎更适合于评论,然后是答案。 –