Bloomberg API 外汇远期 NDF 未返回价格
Bloomberg API FX Forwards NDFs not returning prices
请 任何人都可以建议我如何检索 FX Forwards NDF 的直接出价/直接要价或 USD/KRW 的 1W 的任何价格数据, 1M, 3M 等期限.
我曾尝试遵循 DAPI 说明并尝试通过 Whosebug 寻找答案,但均无济于事。然而,我可以成功地检索实时出价询问 SPOT USD KRW 甚至 AAPL 等股票没问题
我试过使用不同的代码组合,但我没有看到任何错误代码,没有实际的实时价格返回?请问有没有人有任何想法来获得实时报价的 NDF 直接价格:
非常感谢任何帮助:) 因为彭博似乎没有提供任何帮助
['USD/KRW N 2M Curncy'], ['USD/KRW N 3M Curncy'], ['USD/KRW N 3M ICAP Curncy']
p.s Excel Bloomberg 公式,例如 =BFxForward("USDKRW","3M","BidOutright") 本质上就是我'我试图通过 python 进行复制,尝试遵循 DAPI 说明似乎不起作用。
我已经使用 C++ BLPAPI pdf 示例来尝试使其正常工作,但似乎不存在 NDF 示例。
def main_subscribe():
tickers = ['USD/KRW N 2M Curncy', 'USD/KRW N 6M Curncy', 'USD/KRW N 9M Curncy']
fields = ['BID', 'LAST_BID_TIME_TODAY_REALTIME', 'ASK','MID']
interval = 2
options = parseCmdLine()
# Fill SessionOptions
sessionOptions = blpapi.SessionOptions()
sessionOptions.setServerHost(options.host)
sessionOptions.setServerPort(options.port)
print("Connecting to %s:%s" % (options.host, options.port))
# Create a Session
session = blpapi.Session(sessionOptions)
# Start a Session
if not session.start():
print("Failed to start session.")
return
try:
# Open service to get subscription data from
if not session.openService('//blp/mktdata'):
print("Failed to open '//blp/mktdata")
return
# init subscriptions
subs = blpapi.SubscriptionList()
flds = ','.join(fields)
istr = interval and 'interval=%.1f' % interval or ''
for ticker in tickers:
subs.add(ticker, flds, istr, blpapi.CorrelationId(ticker))
session.subscribe(subs)
# Process received events
while(True):
# We provide timeout to give the chance for Ctrl+C handling:
ev = session.nextEvent(900)
for msg in ev:
print(msg)
# if ev.eventType() == blpapi.Event.SUBSCRIPTION_DATA:
# try:
# for msg in ev:
# #print(msg)
# print(f"{fields[0]}:{msg.getElementAsString(fields[0])} , {fields[3]}:{msg.getElementAsString(fields[3])} , {fields[2]}:{msg.getElementAsString(fields[2])} , {fields[1]}:{msg.getElementAsString(fields[1])}")
# except Exception as e:
# print(e)
# #print(msg)
# None
finally:
# Stop the session
session.stop()
这是当 main-subscribe 为 运行:
时的输出
CID: {[ valueType=POINTER classId=0 value=0000024DBF510CB0 ]}
RequestId: -----------------------------
MarketDataEvents = {
MKTDATA_EVENT_TYPE = SUMMARY
MKTDATA_EVENT_SUBTYPE = INITPAINT
API_RULES_VERSION = 201411210
SIMP_LAST_PX_ALL_SESS_DIR_RT = 1
SMART_FIELDS_METADATA_VERSION_RT = "21.10.08.02 "
IS_DELAYED_STREAM = false
MID = 1.000000
RT_API_MACHINE = "apipubx0@----------"
RT_YLD_CHG_NET_1D = 0.000000
IND_BID_FLAG = false
IND_ASK_FLAG = false
BASE_PRICE_ENABLED_RT = false
EVT_DELTA_TIMES_RT = 0
ALL_PRICE_COND_CODE = ""}
这是 Bloomi 终端中的 KRW <Curncy> FRD <Go>
屏幕:
如果您将鼠标悬停在 3M 完全出价(在圆圈中)上,弹出窗口会显示基础代码为 KWN+3M BGN Curncy
。
当我将此代码放入 Excel 时:
=BDP("KWN+3M BGN Curncy","BID","UpdateFrequency",500)
然后我更新与终端屏幕匹配的出价方定价。
由于 Excel 和 Python 的底层 DAPI 是相同的,我想这个代码也可以与 blpapi 一起使用。我通常发现在 Excel.
中测试代码和字段更快
请 任何人都可以建议我如何检索 FX Forwards NDF 的直接出价/直接要价或 USD/KRW 的 1W 的任何价格数据, 1M, 3M 等期限.
我曾尝试遵循 DAPI 说明并尝试通过 Whosebug 寻找答案,但均无济于事。然而,我可以成功地检索实时出价询问 SPOT USD KRW 甚至 AAPL 等股票没问题
我试过使用不同的代码组合,但我没有看到任何错误代码,没有实际的实时价格返回?请问有没有人有任何想法来获得实时报价的 NDF 直接价格:
非常感谢任何帮助:) 因为彭博似乎没有提供任何帮助
['USD/KRW N 2M Curncy'], ['USD/KRW N 3M Curncy'], ['USD/KRW N 3M ICAP Curncy']
p.s Excel Bloomberg 公式,例如 =BFxForward("USDKRW","3M","BidOutright") 本质上就是我'我试图通过 python 进行复制,尝试遵循 DAPI 说明似乎不起作用。
我已经使用 C++ BLPAPI pdf 示例来尝试使其正常工作,但似乎不存在 NDF 示例。
def main_subscribe():
tickers = ['USD/KRW N 2M Curncy', 'USD/KRW N 6M Curncy', 'USD/KRW N 9M Curncy']
fields = ['BID', 'LAST_BID_TIME_TODAY_REALTIME', 'ASK','MID']
interval = 2
options = parseCmdLine()
# Fill SessionOptions
sessionOptions = blpapi.SessionOptions()
sessionOptions.setServerHost(options.host)
sessionOptions.setServerPort(options.port)
print("Connecting to %s:%s" % (options.host, options.port))
# Create a Session
session = blpapi.Session(sessionOptions)
# Start a Session
if not session.start():
print("Failed to start session.")
return
try:
# Open service to get subscription data from
if not session.openService('//blp/mktdata'):
print("Failed to open '//blp/mktdata")
return
# init subscriptions
subs = blpapi.SubscriptionList()
flds = ','.join(fields)
istr = interval and 'interval=%.1f' % interval or ''
for ticker in tickers:
subs.add(ticker, flds, istr, blpapi.CorrelationId(ticker))
session.subscribe(subs)
# Process received events
while(True):
# We provide timeout to give the chance for Ctrl+C handling:
ev = session.nextEvent(900)
for msg in ev:
print(msg)
# if ev.eventType() == blpapi.Event.SUBSCRIPTION_DATA:
# try:
# for msg in ev:
# #print(msg)
# print(f"{fields[0]}:{msg.getElementAsString(fields[0])} , {fields[3]}:{msg.getElementAsString(fields[3])} , {fields[2]}:{msg.getElementAsString(fields[2])} , {fields[1]}:{msg.getElementAsString(fields[1])}")
# except Exception as e:
# print(e)
# #print(msg)
# None
finally:
# Stop the session
session.stop()
这是当 main-subscribe 为 运行:
时的输出CID: {[ valueType=POINTER classId=0 value=0000024DBF510CB0 ]}
RequestId: -----------------------------
MarketDataEvents = {
MKTDATA_EVENT_TYPE = SUMMARY
MKTDATA_EVENT_SUBTYPE = INITPAINT
API_RULES_VERSION = 201411210
SIMP_LAST_PX_ALL_SESS_DIR_RT = 1
SMART_FIELDS_METADATA_VERSION_RT = "21.10.08.02 "
IS_DELAYED_STREAM = false
MID = 1.000000
RT_API_MACHINE = "apipubx0@----------"
RT_YLD_CHG_NET_1D = 0.000000
IND_BID_FLAG = false
IND_ASK_FLAG = false
BASE_PRICE_ENABLED_RT = false
EVT_DELTA_TIMES_RT = 0
ALL_PRICE_COND_CODE = ""}
这是 Bloomi 终端中的 KRW <Curncy> FRD <Go>
屏幕:
如果您将鼠标悬停在 3M 完全出价(在圆圈中)上,弹出窗口会显示基础代码为 KWN+3M BGN Curncy
。
当我将此代码放入 Excel 时:
=BDP("KWN+3M BGN Curncy","BID","UpdateFrequency",500)
然后我更新与终端屏幕匹配的出价方定价。
由于 Excel 和 Python 的底层 DAPI 是相同的,我想这个代码也可以与 blpapi 一起使用。我通常发现在 Excel.
中测试代码和字段更快