首页 > 解决方案 > 在 VBA 中从 Bloomberg 获取数据

问题描述

我正在开发一个 VBA 项目,该项目从 Bloomberg 获取财务数据并计算回报。目前可获得 2020 年至 2022 年的数据。如何在检查 2023 年数据的代码中进行动态检查,如果可用,则使用 2021 年至 2023 年的数据更新计算?谢谢!!

以下是我现在使用的代码:

    Function getTotalGrowth(k As Integer)
    Dim bbg As New BBG_Function

    Dim gdpGrowth As Variant

    ReDim indexData(5, 2)
    indexData(1, 1) = "ECGDEU 20 Index"
    indexData(2, 1) = "ECGDEU 21 Index"
    indexData(3, 1) = "ECGDEU 22 Index"
    indexData(4, 1) = "XYZ Curncy"
    indexData(5, 1) = "ABC Index"

    indexData(1, 2) = "ECGDUS 20 Index"
    indexData(2, 2) = "ECGDUS 21 Index"
    indexData(3, 2) = "ECGDUS 22 Index"
    indexData(4, 2) = "XYZ Curncy"
    indexData(5, 2) = "ABC Index"

    gdpGrowth = ((1 + bbg.BDP(indexData(1, k), "PX_LAST") / 100) * (1 + bbg.BDP(indexData(2, k), 
                "PX_LAST") / 100) * (1 + bbg.BDP(indexData(3, k), "PX_LAST") / 100) ^ 3) ^ (1 / 5) - 1

End Function

标签: vbabloomberg

解决方案


这个怎么样:

Dim y as Long, yStart as Long
if bbg.BDP("ECGDEU 23 Index", "PX_LAST") = 0 then
   yStart=20
else
   yStart=21
end if
for y=yStart to yStart+2
   indexData(1, 1) = "ECGDEU " & y & " Index"
   indexData(2, 1) = "ECGDEU " & y & " Index"
   ...
next

推荐阅读