用VBA从Bloomberg获取数据。

问题描述 投票:0回答:1

我正在做一个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
vba bloomberg
1个回答
1
投票

这个怎么样。

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
© www.soinside.com 2019 - 2024. All rights reserved.