0

我正在尝试使用 Excel 的 DataNitro 从 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()

在 Excel 上:
返回 "Ask Price: %s" % (askPrice)
它总是在我调用函数的单元格上显示 "Python timeout"

但是,当我将返回更改为打印时,它会正确显示 Python shell
打印中的价格 "Ask Price: %s " % (askPrice)

彭博方面的问题是关于我必须与他们联系的会话还是我必须修复的实际代码?有什么建议吗?

4

1 回答 1

0

价格需要多长时间才能返回?DataNitro UDF 在 3 秒后超时,以防止长时间运行的函数冻结 Excel。您可以在 DataNitro 的设置中修改超时持续时间。

于 2016-05-30T20:23:44.257 回答