R:Rbbg 覆盖错误(债券的报价类型)

R: Rbbg override error (quote type for bond)

在尝试覆盖债券的报价类型时,有人遇到过 Rbbg 的问题吗? (背景,我们可以在价格或收益率中引用债券,在彭博社,您可以使用名为 QtTyp 的字段覆盖它)

我在 excel API 中尝试了相同的公式并且它工作正常,但是当我在 R 中尝试它时,当我使用覆盖时它给我一个错误:

Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, :
org.findata.blpwrapper.WrapperException: response error: Invalid override field id specified [nid:908]

excel 中的公式为:

=BDH("EC223677@BGN Corp","LAST_PRICE","02/01/2000","02/01/2000","QtTyp=P")

R中的公式为:

> bdh(conn, "EC223677@BGN Corp","LAST_PRICE",as.Date("02/01/2000","%m/%d/%Y"),as.Date("02/01/2000","%m/%d/%Y"))
                 date LAST_PRICE
2000-02-01 2000-02-01      0.983

> bdh(conn, "EC223677@BGN Corp","LAST_PRICE",as.Date("02/01/2000","%m/%d/%Y"),as.Date("02/01/2000","%m/%d/%Y"), override_fields = "QtTyp", override_values = "P")
Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl,  : 
  org.findata.blpwrapper.WrapperException: response error: Invalid override field id specified [nid:908] 

根据 Bloomberg API 文档,必须将 "pricingOption" 设置为 "PRICING_OPTION_PRICE" 或 "PRICING_OPTION_YIELD"。

如果你这样做,它应该会起作用。然而,截至今天,我刚刚将我们新的 R 包 RbbgExtension 从 GitHub 上的私有存储库更改为 public。此包旨在扩展功能并使其更易于使用 Rbbg - 将其视为 Rbbg 之上的包装器,它本身就是一个 Java 包装器。

根据您的问题,我刚刚对 RbbgExtension 进行了修补,将 pricingOption 变量作为默认值包含在 "PRICING_OPTION_PRICE" 中。这意味着要获得您想要的价格,您只需输入以下内容...

> HistData(tickers = "EC223677",
+          type = "Govt",
+          fields = "PX_LAST",
+          startdate = "20000201",
+          enddate="20000201")
R version 3.1.1 (2014-07-10) 
rJava Version 0.9-6 
Rbbg Version 0.5.2 
Java environment initialized successfully.
Looking for most recent blpapi3.jar file...
Adding C:\blp\API\APIv3\JavaAPI\v3.7.1.1\lib\blpapi3.jar to Java classpath
Bloomberg API Version 3.7.1.1 
           PX_LAST
2000-02-01 100.082

如果您安装了 Hadley Wickham 的 devtools 包,那么您可以通过输入 install_github("pgarnry/RbbgExtension").

轻松安装最新版本的 RbbgExtension

如果您想要收益,只需更改函数的定价变量即可。

我们实际上正在讨论是否将函数中的变量输入更改为类似于 Excel 命名约定以使事情更相似,但目前选项名称如定价选项是使用完整的输入名称设置,而不是像 Excel 中那样使用 "P" 或 "Y" 等缩写,但如前所述,它可能会在未来版本中发生变化。