【发布时间】:2017-06-11 20:16:45
【问题描述】:
这是我用来通过 DDE 服务器(在本例中为 Bloomberg 数据提供者 DDE 服务器)从提供者获取数据的一些 VBA 代码:
Sub bloom_get()
nChan = DDEInitiate("BLP", "S")
sSecurity1 = "JBIG Index" & ", [MLI_DATE=" & datestr & ",MLI_TOT_RTN_LOC="", MLI_PX_RTN_LOC="", MLI_EFF_DUR=""]"""
vrtResult1 = DDERequest(nChan, sSecurity1)
MsgBox (vrtResult1(1) & " " & vrtResult1(2) & " " & vrtResult1(3) & " " & vrtResult1(4) & " ")
DDETerminate (nChan)
End Sub
我正在寻找一种从 python 代码调用此类 DDE 服务器的方法。
此代码以某种方式特定于 Bloomberg DDE 服务器,但即使您可以为我提供更通用的方法,这也会很有帮助。我只是不知道如何解决这个问题,因为 DDE 是 Microsoft 应用程序的特殊性。
可能有帮助的事情包括:
- 允许从 Python 调用 DDE 的包的名称
- 使用第三个应用程序的解决方法,可能是在 VB 或 VB.NET 中编码,它本身是从 Python 调用的,有点像在 C++ 中创建 DDL 然后从 VBA 调用,但相反?
编辑:不,请求的数据无法通过官方 API 获得。
谢谢
【问题讨论】:
-
使用原生 Python API 可能会更高效、更简单...bloomberglabs.com/api/libraries
-
对于这种特定类型的指数(受美林证券保护),必须通过 DDE。 API 的常用历史功能不起作用。或者你知道正确的覆盖吗? (我无法从彭博帮助台获得它们...)
标签: python vba excel bloomberg dde