You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#调用彭博Historical API查询债券价格时如何获取对应价格来源

解决方案

你遇到的报错是因为PRICING_SOURCE和FEED_SOURCE属于静态参考数据字段,仅支持在ReferenceDataRequest(参考数据请求)中返回,不支持在HistoricalDataRequest(历史数据请求)中作为返回字段查询,所以会返回NOT_APPLICABLE_TO_HIST_DATA的错误。

可以通过以下两种方案解决:

  • 方案一:拆分两次请求
    1. 保留原有历史数据请求,只请求价格相关字段(px_last、px_bid等)获取历史时间序列价格
    2. 新增一笔参考数据请求,传入相同的债券代码列表,查询PRICING_SOURCE和FEED_SOURCE字段,拿到对应债券的默认定价来源后和历史价格数据做关联即可
  • 方案二:查询对应价格的历史来源字段
    如果需要获取每个历史时间点对应的价格来源,可以直接在历史数据请求中添加价格对应的历史来源字段,比如和px_last对应的是PX_LAST_SRC,和px_bid对应的是PX_BID_SRC,这类字段属于合法历史字段,不会触发报错。你可以在彭博终端通过FLDS命令查询你需要的价格对应的历史来源字段名。

调整后的代码示例

Service refDataService = d_session.GetService("//blp/refdata");
// 构造历史数据请求
Request request = RefDataService.CreateRequest("HistoricalDataRequest");
// 设置查询的证券列表
Element securities = request.GetElement("securities");
foreach (string sec in ticker){
  securities.AppendValue(sec);
} 
// 设置查询字段
Element fields = request.GetElement("fields");
fields.AppendValue("px_last");
// 替换为对应价格的历史来源字段
fields.AppendValue("PX_LAST_SRC");
// 若需要指定定价源作为请求覆盖参数,可添加如下配置
Element overrides = request.GetElement("overrides");
Element override1 = overrides.AppendElement();
override1.SetElement("fieldId", "PRICING_SOURCE");
override1.SetElement("value", "BVAL"); // 示例:指定使用BVAL定价源
// 发送请求
d_session.SendRequest(request, null);

注意:如果需要获取不同时间点对应的不同定价源信息,优先使用方案二的历史来源字段,可以直接返回对应时点的价格来源信息。

内容的提问来源于stack exchange,提问作者stexcec

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:06:03