我希望对于给定的Bloomberg EQS屏幕,能够在给定日期返回屏幕结果。

我已经玩了一段时间的彭博文件EqsDataExample.xls,但是除了当前日期的屏幕外,我无法返回其他任何内容。

Excel工作表中使用的Bloomberg函数是:

=BEQS(screen_name,"Asof=" & asof_date,)

下面是示例中的函数,但我没有成功对其进行修改。我想我需要使用覆盖功能来做一些事情,但是还不存在。
Public Sub MakeRequest(sScreenName As String, sScreenType As String, sGroup As String)

    Dim req As Request
    Dim nRow As Long

    Set req = refdataservice.CreateRequest("BeqsRequest")
    req.Set "screenName", sScreenName
    req.Set "screenType", sScreenType
    'req.Set "Group", sGroup

    ' >> My addition, trying to get the asof date override
    Dim overrides As Element
    Set overrides = req.GetElement("overrides")
    Dim override  As Element
    Set override = overrides.AppendElment()
    override.SetElement "fieldId", "ASOF="
    override.SetElement "value", "20101130"
    'MsgBox req.Print
    ' <<

    ' The following code is used to request data for a custom field that is setup
    ' using EQS <GO> on the Bloomberg Professional service. To use, uncomment these
    ' next 3 lines of code and comment out the previous 3 lines of code (above)
    ' Set req = refdataservice.CreateRequest("CustomEqsRequest")
    ' req.GetElement("fields").AppendValue "#NameOfCustomField"  ' Add name of custom field with # prefix
    ' req.Append "securities", "IBM US Equity" ' Add name of your security

    ' Add a correlation id
    Dim cid As blpapicomLib2.CorrelationId

    ' Send the request
    Set cid = session.SendRequest(req)

    curRow = 0

End Sub

最佳答案

解决方案是将fieldId设置为“PiTDate”-我在Bloomberg API文档中找到了此方法。

这是有效的代码:

Public Sub MakeRequest(sScreenName As String, sScreenType As String, sGroup As String)

    Dim req As Request
    Dim nRow As Long

    Set req = refdataservice.CreateRequest("BeqsRequest")
    req.Set "screenName", sScreenName
    req.Set "screenType", sScreenType
    'req.Set "Group", sGroup

    ' My Code >>
    Dim overrides As Element
    Set overrides = req.GetElement("overrides")
    Dim override  As Element
    Set override = overrides.AppendElment()
    override.SetElement "fieldId", "PiTDate"
    override.SetElement "value", "20141130"
    'MsgBox req.Print
    ' <<

    ' The following code is used to request data for a custom field that is setup
    ' using EQS <GO> on the Bloomberg Professional service. To use, uncomment these
    ' next 3 lines of code and comment out the previous 3 lines of code (above)
    ' Set req = refdataservice.CreateRequest("CustomEqsRequest")
    ' req.GetElement("fields").AppendValue "#NameOfCustomField"  ' Add name of custom field with # prefix
    ' req.Append "securities", "IBM US Equity" ' Add name of your security

    ' Add a correlation id
    Dim cid As blpapicomLib2.CorrelationId

    ' Send the request
    Set cid = session.SendRequest(req)

    curRow = 0

End Sub

关于excel - 如何使用Bloomberg VBA API返回特定日期的EQS屏幕?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28099972/

10-11 13:06