我最近开始使用Python,因此我可以与Bloomberg API进行交互,而且我在将数据存储到Pandas数据帧(或面板)时遇到了一些麻烦.我可以在命令提示符中得到输出就好了,所以这不是问题.
这里提出了一个非常相似的问题: Bloomberg api的熊猫包装?
但是,该问题的已接受答案中引用的代码是针对旧API的,并且它不适用于新的开放API.显然,提出问题的用户能够轻松修改该代码以使用新API,但我习惯将手放在R中,这是我对Python的第一次尝试.
一些仁慈的用户可以告诉我如何将这些数据导入熊猫吗?有一个名为SimpleHistoryExample.py 的Python API(在这里提供:http://www.openbloomberg.com/open-api/),我一直在使用它,我已经在下面包含了这个例子.我相信我需要在'main()'函数的末尾围绕'while(True)'循环进行修改,但到目前为止我尝试的所有内容都有问题.
在此先感谢,我希望这对使用Pandas进行融资的任何人都有帮助.
# SimpleHistoryExample.py
import blpapi
from optparse import OptionParser
def parseCmdLine():
parser = OptionParser(description="Retrieve reference data.")
parser.add_option("-a",
"--ip",
dest="host",
help="server name or IP (default: %default)",
metavar="ipAddress",
default="localhost")
parser.add_option("-p",
dest="port",
type="int",
help="server port (default: %default)",
metavar="tcpPort",
default=8194)
(options, args) = parser.parse_args()
return options
def main():
options = parseCmdLine()
# Fill SessionOptions
sessionOptions = blpapi.SessionOptions()
sessionOptions.setServerHost(options.host)
sessionOptions.setServerPort(options.port)
print "Connecting to %s:%s" % (options.host, options.port)
# Create a Session
session …Run Code Online (Sandbox Code Playgroud) 我正在尝试安装Bloomberg API.我已按照所有说明操作,可以运行代码而不会产生任何错误.但它没有产生任何有用的输出,这让我觉得安装出了问题.我已经尝试了四天了,我的头撞在我的键盘上!希望有人遇到过这个并且可以让我知道.
我正在使用"IntradayTickExample",可在此处获得:
https://github.com/msitt/blpapi-python/blob/master/examples/IntradayTickExample.py
输出如下所示:
IntradayTickExample
Connecting to localhost:8194
12OCT2018_16:37:35.207 7780:22292 WARN blpapi_platformcontroller.cpp:347
blpapi.session.platformcontroller.{1} Connectivity restored.
Sending Request: IntradayTickRequest = {
security = "IBM US Equity"
eventTypes[] = {
TRADE
}
startDateTime = 2008-08-11T15:30:00.000
endDateTime = 2008-08-11T15:35:00.000
}
Processing Response
IntradayTickResponse = {
tickData = {
eidData[] = {
}
tickData[] = {
}
}
}
TIME TYPE VALUE SIZE CC
---- ---- ----- ---- --
------------------
(program exited with code: 0)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
当我使用带有ISIN或CUSIP的bdp时,我得到以下错误.
bdp ("US25470XAB10 ISIN","ULT_PARENT_TICKER_EXCHANGE")
bdp ("25470XAB1 CUSIP","ULT_PARENT_TICKER_EXCHANGE")
Error in bdp_Impl(con, securities, fields, options, overrides, identity) :
attempt to set an attribute on NULL
Run Code Online (Sandbox Code Playgroud)
但是,使用Bloomberg ID(下面)似乎可行.
bdp("EI000902 Corp","ULT_PARENT_TICKER_EXCHANGE")
Run Code Online (Sandbox Code Playgroud)
欣赏任何变通方法或解决方案.
这是我的开发环境:
C:\Python27\Lib\site-packages\blpapi.在我的32位Python和BLPAPI安装之前,我尝试了安装64位BLPAPI的64位Python 2.7,但64位或32位的结果是相同的.
我的Python脚本在这一行失败: import blpapi
PyDev产生此错误代码:
Traceback (most recent call last):
File "C:\Users\Greg\workspace2\Bloomberg\src\TestImport.py", line 1, in <module>
import blpapi
File "C:\Python27\lib\site-packages\blpapi\__init__.py", line 5, in <module>
from .internals import CorrelationId
File "C:\Python27\lib\site-packages\blpapi\internals.py", line 50, in <module>
_internals = swig_import_helper()
File "C:\Python27\lib\site-packages\blpapi\internals.py", line 46, in swig_import_helper
_mod = imp.load_module('_internals', fp, pathname, description)
ImportError: DLL load failed: The specified module could not be found.
Run Code Online (Sandbox Code Playgroud) 有谁知道有什么好的资源/教程/书籍可以开始使用 python 中的 Bloomberg API blpapi 吗?
我到处找遍了,但什么也没找到。
当我使用Java Bloomber V3 API时,它通常可以工作.但是,有时,特别是在重新启动后,bbcomm.exe没有在后台运行.我可以通过运行blp.exe手动启动它,但我想知道是否有办法通过API执行此操作?
我还在等待Help-Help ......
有没有办法使用python API甚至任何语言的API来实现BQL?
设置了ReferenceDataRequest后,我将它发送到EventQueue
Service refdata = _session.GetService("//blp/refdata");
Request request = refdata.CreateRequest("ReferenceDataRequest");
// append the appropriate symbol and field data to the request
EventQueue eventQueue = new EventQueue();
Guid guid = Guid.NewGuid();
CorrelationID id = new CorrelationID(guid);
_session.SendRequest(request, eventQueue, id);
long _eventWaitTimeout = 60000;
myEvent = eventQueue.NextEvent(_eventWaitTimeout);
Run Code Online (Sandbox Code Playgroud)
通常情况下我可以从队列中获取消息,但我现在遇到的情况是,如果我在应用程序的同一次运行中(通常在第十个左右)发出大量请求,我会看到一个TIMEOUTEventType
if (myEvent.Type == Event.EventType.TIMEOUT)
throw new Exception("Timed Out - need to rethink this strategy");
else
msg = myEvent.GetMessages().First();
Run Code Online (Sandbox Code Playgroud)
这些是在同一个线程上进行的,但是我假设我正在消耗并且不释放的某个地方有某些东西.
有人有任何线索或建议吗?
关于SO对BLP的API的引用并不多,但希望我们可以开始纠正这种情况.
我目前使用 Python 2.7,我的操作系统是 Windows 7。在尝试使用 Bloomberg API 时,我收到此错误:
Traceback (most recent call last):
File "datagrab.py", line 1, in <module>
import blpapi, time, json
File "C:\Python27\lib\blpapi\__init__.py", line 5, in <module>
from .internals import CorrelationId
File "C:\Python27\lib\blpapi\internals.py", line 50, in <module>
_internals = swig_import_helper()
File "C:\Python27\lib\blpapi\internals.py", line 42, in swig_import_helper
import _internals
ImportError: No module named _internals
Run Code Online (Sandbox Code Playgroud)
我已将路径变量设置为指向 blpapi3_64.dll 并更新了我的彭博终端。我也将本地 blpapi API 移到了不同的目录,但问题仍然存在。
总的来说,我对这个 API 有点陌生。所以有人可以指导我吗?
先感谢您!
请问如何从 Bloomberg 获取日内 1 分钟数据?我想要将 5 个期货的买入价和卖出价保存为数据框。
谢谢。
blpapi ×10
bloomberg ×9
python ×3
python-2.7 ×2
python-3.x ×2
api ×1
c# ×1
download ×1
eclipse ×1
eventqueue ×1
finance ×1
pandas ×1
r ×1