Quickstart Guide¶
We highly advise thoroughly reviewing the BLPAPI Core Developer Guide when developing your Bloomberg Queries. This guide is essential for understanding function parameters, request options, overrides, error messages, and troubleshooting methods.
[1]:
import datetime
import json
import pandas
from blp import blp
[2]:
bquery = blp.BlpQuery().start()
Bloomberg Queries¶
Data History (BDH)¶
[3]:
bquery.bdh(
["SPY US Equity", "TLT US Equity"],
["PX_LAST", "VOLUME"],
start_date="20190101",
end_date="20190110",
options={"adjustmentSplit": True}
)
[3]:
date | security | PX_LAST | VOLUME | |
---|---|---|---|---|
0 | 2019-01-02 | SPY US Equity | 250.18 | 126925199.0 |
1 | 2019-01-02 | TLT US Equity | 122.15 | 19841527.0 |
2 | 2019-01-03 | SPY US Equity | 244.21 | 144140692.0 |
3 | 2019-01-03 | TLT US Equity | 123.54 | 21187045.0 |
4 | 2019-01-04 | SPY US Equity | 252.39 | 142628834.0 |
5 | 2019-01-04 | TLT US Equity | 122.11 | 12970226.0 |
6 | 2019-01-07 | SPY US Equity | 254.38 | 103139100.0 |
7 | 2019-01-07 | TLT US Equity | 121.75 | 8498104.0 |
8 | 2019-01-08 | SPY US Equity | 256.77 | 102512587.0 |
9 | 2019-01-08 | TLT US Equity | 121.43 | 7737103.0 |
10 | 2019-01-09 | SPY US Equity | 257.97 | 95006554.0 |
11 | 2019-01-09 | TLT US Equity | 121.24 | 9349245.0 |
12 | 2019-01-10 | SPY US Equity | 258.88 | 96823923.0 |
13 | 2019-01-10 | TLT US Equity | 120.46 | 8222860.0 |
Data Point (BDP)¶
[4]:
bquery.bdp(["CL1 Comdty"], ["NAME", "PX_LAST"])
[4]:
security | NAME | PX_LAST | |
---|---|---|---|
0 | CL1 Comdty | Generic 1st 'CL' Future | 77.43 |
Data Set (BDS)¶
[5]:
bquery.bds("BCOM Index", "INDX_MWEIGHT")
[5]:
Member Ticker and Exchange Code | Percentage Weight | |
---|---|---|
0 | BOF4 | 2.80 |
1 | C H4 | 4.24 |
2 | CLF4 | 8.44 |
3 | COH4 | 7.81 |
4 | CTH4 | 1.53 |
5 | GCG4 | 16.41 |
6 | HGH4 | 5.30 |
7 | HOF4 | 2.07 |
8 | KCH4 | 3.19 |
9 | KWH4 | 1.35 |
10 | LAF24 | 4.12 |
11 | LCG4 | 3.86 |
12 | LHG4 | 1.68 |
13 | LLF4 | 1.00 |
14 | LNF4 | 1.73 |
15 | LXF4 | 2.54 |
16 | NGF24 | 7.37 |
17 | QSF4 | 2.71 |
18 | S F4 | 5.47 |
19 | SBH4 | 3.84 |
20 | SIH4 | 4.74 |
21 | SMF4 | 3.38 |
22 | W H4 | 2.21 |
23 | XBF4 | 2.21 |
Intraday Bar (BDIB)¶
[6]:
bquery.bdib(
"AAPL US Equity",
event_type="TRADE",
interval=60,
start_datetime="2023-11-01", # Different date format
end_datetime="2023-11-02", # Different date format
)
[6]:
time | open | high | low | close | volume | numEvents | value | |
---|---|---|---|---|---|---|---|---|
0 | 2023-11-01 13:30:00 | 171.000 | 171.97 | 170.120 | 171.828 | 8272888 | 41465 | 1.415716e+09 |
1 | 2023-11-01 14:30:00 | 171.835 | 172.08 | 171.000 | 171.430 | 5189464 | 26241 | 8.903882e+08 |
2 | 2023-11-01 15:30:00 | 171.440 | 172.00 | 171.195 | 171.910 | 2887219 | 14505 | 4.957753e+08 |
3 | 2023-11-01 16:30:00 | 171.905 | 172.38 | 171.630 | 172.162 | 3109733 | 14308 | 5.350173e+08 |
4 | 2023-11-01 17:30:00 | 172.160 | 172.71 | 171.910 | 172.620 | 4089553 | 20561 | 7.043825e+08 |
5 | 2023-11-01 18:30:00 | 172.620 | 174.22 | 172.100 | 173.910 | 8659156 | 46255 | 1.499576e+09 |
6 | 2023-11-01 19:30:00 | 173.920 | 174.23 | 173.610 | 173.970 | 13746588 | 32967 | 2.391479e+09 |
Equity Screening (BEQS)¶
[7]:
bquery.beqs(
"Core Capital Ratios",
screen_type="GLOBAL",
options={"Group": "General"}
)
[7]:
security | Price:D-1 | Market Cap | S&P LT FC Iss Cred Rtg | Ticker | Moody's Issuer Rtg | Tier 1 Cap Rt LF | Tot Rsk Bsd Cap Rt LF | Short Name | |
---|---|---|---|---|---|---|---|---|---|
0 | 8331 JP | 7.451469 | 6.089966e+09 | A- | 8331 JP | A1 | 11.510000 | 11.580000 | CHIBA BANK LTD |
1 | ABN NA | 13.956888 | 1.201920e+10 | A | ABN NA | A1 | 16.500000 | 19.799999 | ABN AMRO BANK-CV |
2 | ACA FP | 12.911215 | 3.946861e+10 | A+ | ACA FP | Aa3 | 13.700000 | 17.900000 | CREDIT AGRICOLE |
3 | BAC US | 30.010000 | 2.372537e+11 | A- | BAC US | A1 | 13.600000 | 15.400000 | BANK OF AMERICA |
4 | BBVA SM | 9.063227 | 5.414058e+10 | A | BBVA SM | A3 | 14.450000 | 16.510000 | BBVA |
5 | BNP FP | 62.127838 | 7.159116e+10 | A+ | BNP FP | Aa3 | 15.500000 | 17.799999 | BNP PARIBAS |
6 | BNS CN | 44.430687 | 5.364239e+10 | A+ | BNS CN | A2 | 14.600000 | 16.900000 | BANK OF NOVA SCO |
7 | CBK GR | 12.299781 | 1.511882e+10 | A- | CBK GR | A2 | 16.500000 | 19.200001 | COMMERZBANK |
8 | CFR US | 99.370003 | 6.354122e+09 | A- | CFR US | A3 | 13.810000 | 15.280000 | CULLEN/FROST |
9 | DANSKE DC | 26.030893 | 2.243711e+10 | A+ | DANSKE DC | A3 | 20.600000 | 23.200001 | DANSKE BANK A/S |
10 | DBK GR | 12.324938 | 2.518035e+10 | A- | DBK GR | A1 | 16.299999 | 18.799999 | DEUTSCHE BANK-RG |
11 | JPM US | 153.289993 | 4.418039e+11 | A- | JPM US | A1 | 15.900000 | 17.799999 | JPMORGAN CHASE |
12 | NA CN | 66.278137 | 2.250676e+10 | A | NA CN | A3 | 16.100000 | 16.900000 | NATL BK CANADA |
13 | NAB AU | 18.291357 | 5.732886e+10 | AA- | NAB AU | Aa3 | 14.190000 | 19.879999 | NATL AUST BANK |
14 | PNC US | 130.339996 | 5.188792e+10 | A- | PNC US | A3 | 11.500000 | 13.400000 | PNC FINANCIAL SE |
15 | RY CN | 87.805054 | 1.230937e+11 | AA- | RY CN | A1 | 15.400000 | 17.299999 | ROYAL BANK OF CA |
16 | SAN SM | 4.084249 | 6.619073e+10 | A+ | SAN SM | A2 | 13.800000 | 16.299999 | BANCO SANTANDER |
17 | SEBA SS | 12.084361 | 2.589788e+10 | A+ | SEBA SS | Aa3 | 20.600000 | 21.900000 | SEB AB-A |
18 | SHBA SS | 9.459072 | 1.885026e+10 | AA- | SHBA SS | Aa2 | 21.200001 | 24.500000 | SVENSKA HAN-A |
19 | SWEDA SS | 17.638960 | 2.001985e+10 | A+ | SWEDA SS | Aa3 | 20.500000 | 23.000000 | SWEDBANK AB-A |
20 | TD CN | 61.994610 | 1.112967e+11 | AA- | TD CN | A1 | 17.200001 | 19.600000 | TORONTO-DOM BANK |
21 | TFC US | 32.040001 | 4.263737e+10 | A- | TFC US | A3 | 11.400000 | 13.500000 | TRUIST FINANCIAL |
22 | USB US | 37.630001 | 5.860595e+10 | A | USB US | A3 | 11.200000 | 13.400000 | US BANCORP |
23 | WBC AU | 13.896977 | 4.891449e+10 | AA- | WBC AU | Aa3 | 14.590000 | 20.450001 | WESTPAC BANKING |
BQL Queries¶
bquery.bql
accepts a Bloomberg Query String. For optimal query creation, utilize Excel’s BQL Builder in Advanced View. Once your query is ready, click the “Copy” button to copy it, and then paste it into the bquery.bql
argument.
[8]:
bquery.bql("get(px_last) for(['IBM US Equity', 'AAPL US Equity'])")
[8]:
security | field | secondary_name | secondary_value | value | |
---|---|---|---|---|---|
0 | IBM US Equity | px_last | CURRENCY | USD | 154.35 |
1 | AAPL US Equity | px_last | CURRENCY | USD | 191.45 |
2 | IBM US Equity | px_last | DATE | 2023-11-21T00:00:00Z | 154.35 |
3 | AAPL US Equity | px_last | DATE | 2023-11-21T00:00:00Z | 191.45 |
Advanced Query Techniques¶
Using Overrides¶
Various fields can be overriden. For info on what fields support what overrides, the best place to check is using FLDS
from the terminal.
[9]:
pandas.concat(
[
bquery.bdp(["IBM US Equity"], ["CRNCY_ADJ_PX_LAST"]),
bquery.bdp(
["IBM US Equity"], ["CRNCY_ADJ_PX_LAST"], overrides=[("EQY_FUND_CRNCY", "EUR")]
)
],
axis=1,
keys=["default", "override"]
)
[9]:
default | override | |||
---|---|---|---|---|
security | CRNCY_ADJ_PX_LAST | security | CRNCY_ADJ_PX_LAST | |
0 | IBM US Equity | 154.35 | IBM US Equity | 140.7789 |
[10]:
bquery.bds(
"DAX Index",
"INDX_MWEIGHT_HIST",
overrides=[("END_DATE_OVERRIDE", "20230630")],
)
[10]:
Index Member | Percent Weight | |
---|---|---|
0 | 1COV GY | -2.424536e-14 |
1 | ADS GY | -2.424536e-14 |
2 | AIR GY | -2.424536e-14 |
3 | ALV GY | -2.424536e-14 |
4 | BAS GY | -2.424536e-14 |
5 | BAYN GY | -2.424536e-14 |
6 | BEI GY | -2.424536e-14 |
7 | BMW GY | -2.424536e-14 |
8 | BNR GY | -2.424536e-14 |
9 | CBK GY | -2.424536e-14 |
10 | CON GY | -2.424536e-14 |
11 | DB1 GY | -2.424536e-14 |
12 | DBK GY | -2.424536e-14 |
13 | DHL GY | -2.424536e-14 |
14 | DTE GY | -2.424536e-14 |
15 | DTG GY | -2.424536e-14 |
16 | ENR GY | -2.424536e-14 |
17 | EOAN GY | -2.424536e-14 |
18 | FRE GY | -2.424536e-14 |
19 | HEI GY | -2.424536e-14 |
20 | HEN3 GY | -2.424536e-14 |
21 | HNR1 GY | -2.424536e-14 |
22 | IFX GY | -2.424536e-14 |
23 | MBG GY | -2.424536e-14 |
24 | MRK GY | -2.424536e-14 |
25 | MTX GY | -2.424536e-14 |
26 | MUV2 GY | -2.424536e-14 |
27 | P911 GY | -2.424536e-14 |
28 | PAH3 GY | -2.424536e-14 |
29 | QIA GY | -2.424536e-14 |
30 | RHM GY | -2.424536e-14 |
31 | RWE GY | -2.424536e-14 |
32 | SAP GY | -2.424536e-14 |
33 | SHL GY | -2.424536e-14 |
34 | SIE GY | -2.424536e-14 |
35 | SRT3 GY | -2.424536e-14 |
36 | SY1 GY | -2.424536e-14 |
37 | VNA GY | -2.424536e-14 |
38 | VOW3 GY | -2.424536e-14 |
39 | ZAL GY | -2.424536e-14 |
Using SEDOLs¶
[11]:
bquery.bdp(
["SPY US Equity", "TLT US Equity"],
["ID_SEDOL1"],
)
[11]:
security | ID_SEDOL1 | |
---|---|---|
0 | SPY US Equity | 2840215 |
1 | TLT US Equity | 2971546 |
[12]:
bquery.bdh(
["/sedol1/2840215", "/sedol1/2971546"],
["PX_LAST", "VOLUME"],
start_date="20190101",
end_date="20190110",
)
[12]:
date | security | PX_LAST | VOLUME | |
---|---|---|---|---|
0 | 2019-01-02 | /sedol1/2840215 | 231.4905 | 126925199.0 |
1 | 2019-01-02 | /sedol1/2971546 | 110.0483 | 19841527.0 |
2 | 2019-01-03 | /sedol1/2840215 | 225.9664 | 144140692.0 |
3 | 2019-01-03 | /sedol1/2971546 | 111.3006 | 21187045.0 |
4 | 2019-01-04 | /sedol1/2840215 | 233.5354 | 142628834.0 |
5 | 2019-01-04 | /sedol1/2971546 | 110.0123 | 12970226.0 |
6 | 2019-01-07 | /sedol1/2840215 | 235.3767 | 103139100.0 |
7 | 2019-01-07 | /sedol1/2971546 | 109.6879 | 8498104.0 |
8 | 2019-01-08 | /sedol1/2840215 | 237.5882 | 102512587.0 |
9 | 2019-01-08 | /sedol1/2971546 | 109.3996 | 7737103.0 |
10 | 2019-01-09 | /sedol1/2840215 | 238.6985 | 95006554.0 |
11 | 2019-01-09 | /sedol1/2971546 | 109.2285 | 9349245.0 |
12 | 2019-01-10 | /sedol1/2840215 | 239.5405 | 96823923.0 |
13 | 2019-01-10 | /sedol1/2971546 | 108.5257 | 8222860.0 |
Troubleshooting¶
The most frequent errors in blpapi
are due to poor input. As blp
is a wrapper for blpapi
, these errors are passed to the user. To resolve them, examine the error message for issues, then contact the Bloomberg help desk.
For instance, the code below will produce an error because it includes an invalid ticker.
bquery.bdh(
["NOT_A_TICKER US Equity", "SPY US Equity"],
["PX_LAST", "VOLUME"],
start_date="20190101",
end_date="20190110",
)
TypeError: Response for 'NOT_A_TICKER US Equity' contains securityError
{
"securityError": {
"source": "3923::bbdbh4",
"code": 15,
"category": "BAD_SEC",
"message": "Unknown/Invalid securityInvalid Security [nid:3923] ",
"subcategory": "INVALID_SECURITY",
}
}
To ignore errors, instantiate a parser as shown below:
[13]:
bquery = blp.BlpQuery(parser=blp.BlpParser(raise_security_errors=False)).start()
bquery.bdh(
["NOT_A_TICKER US Equity", "SPY US Equity"],
["PX_LAST", "VOLUME"],
start_date="20190101",
end_date="20190110",
)
Response for 'NOT_A_TICKER US Equity' contains securityError {'securityError': {'source': '53646:rsfhdsvc2', 'code': 15, 'category': 'BAD_SEC', 'message': 'Unknown/Invalid securityInvalid Security [nid:53646]', 'subcategory': 'INVALID_SECURITY'}}
[13]:
date | security | PX_LAST | VOLUME | |
---|---|---|---|---|
0 | 2019-01-02 | SPY US Equity | 231.4905 | 126925199.0 |
1 | 2019-01-03 | SPY US Equity | 225.9664 | 144140692.0 |
2 | 2019-01-04 | SPY US Equity | 233.5354 | 142628834.0 |
3 | 2019-01-07 | SPY US Equity | 235.3767 | 103139100.0 |
4 | 2019-01-08 | SPY US Equity | 237.5882 | 102512587.0 |
5 | 2019-01-09 | SPY US Equity | 238.6985 | 95006554.0 |
6 | 2019-01-10 | SPY US Equity | 239.5405 | 96823923.0 |
Additional Features¶
Retrieve JSON Data¶
Query Generation Utility Methods¶
[14]:
query = blp.create_query(
request_type="HistoricalDataRequest",
values={
"securities": ["SPY US Equity"],
"fields": ["VOLUME"],
"startDate": "20190101",
"endDate": "20190105",
},
)
print(json.dumps(query, indent=2))
{
"HistoricalDataRequest": {
"securities": [
"SPY US Equity"
],
"fields": [
"VOLUME"
],
"startDate": "20190101",
"endDate": "20190105"
}
}
[15]:
# deal with Timestamps for pretty printing for response
def ts_to_json(obj):
return obj.strftime("%Y-%m-%dT%H:%M:%S.%f%z")
def time_to_json(obj):
return obj.strftime("%H:%M:%S")
class CustomJSONEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, pandas.Timestamp):
return ts_to_json(obj)
if isinstance(obj, datetime.time):
return time_to_json(obj)
return super().default(obj)
[16]:
resp = bquery.query(query, parse=False, collector=list)
print(json.dumps(resp, indent=2, cls=CustomJSONEncoder))
[
{
"eventType": 5,
"eventTypeName": "blpapi.Event.RESPONSE",
"messageNumber": 0,
"message": {
"fragmentType": 0,
"correlationIds": [
33
],
"messageType": "HistoricalDataResponse",
"timeReceived": "2023-11-21T04:17:39.755538+0000",
"element": {
"HistoricalDataResponse": {
"securityData": {
"security": "SPY US Equity",
"eidData": [],
"sequenceNumber": 0,
"fieldExceptions": [],
"fieldData": [
{
"fieldData": {
"date": "2019-01-02T00:00:00.000000",
"VOLUME": 126925199.0
}
},
{
"fieldData": {
"date": "2019-01-03T00:00:00.000000",
"VOLUME": 144140692.0
}
},
{
"fieldData": {
"date": "2019-01-04T00:00:00.000000",
"VOLUME": 142628834.0
}
}
]
}
}
}
}
}
]
Support for Context Manager¶
[17]:
with blp.BlpQuery() as bq:
df = bq.bdh(
["GME US Equity"],
["PX_LAST", "VOLUME"],
start_date="20210101",
end_date="20210130",
)
df
[17]:
date | security | PX_LAST | VOLUME | |
---|---|---|---|---|
0 | 2021-01-04 | GME US Equity | 4.3125 | 40089896.0 |
1 | 2021-01-05 | GME US Equity | 4.3425 | 19845828.0 |
2 | 2021-01-06 | GME US Equity | 4.5900 | 24224992.0 |
3 | 2021-01-07 | GME US Equity | 4.5200 | 24517104.0 |
4 | 2021-01-08 | GME US Equity | 4.4225 | 25927840.0 |
5 | 2021-01-11 | GME US Equity | 4.9850 | 59710448.0 |
6 | 2021-01-12 | GME US Equity | 4.9875 | 28242660.0 |
7 | 2021-01-13 | GME US Equity | 7.8500 | 578006944.0 |
8 | 2021-01-14 | GME US Equity | 9.9775 | 374869640.0 |
9 | 2021-01-15 | GME US Equity | 8.8750 | 187465432.0 |
10 | 2021-01-19 | GME US Equity | 9.8400 | 298887696.0 |
11 | 2021-01-20 | GME US Equity | 9.7800 | 133887156.0 |
12 | 2021-01-21 | GME US Equity | 10.7575 | 228319016.0 |
13 | 2021-01-22 | GME US Equity | 16.2525 | 788631784.0 |
14 | 2021-01-25 | GME US Equity | 19.1975 | 711496000.0 |
15 | 2021-01-26 | GME US Equity | 36.9950 | 714351896.0 |
16 | 2021-01-27 | GME US Equity | 86.8775 | 373586664.0 |
17 | 2021-01-28 | GME US Equity | 48.4000 | 235266380.0 |
18 | 2021-01-29 | GME US Equity | 81.2500 | 202264220.0 |
Streaming Data¶
[18]:
with blp.BlpStream() as bs:
bs.subscribe({"USDCAD Curncy": {"fields": ["LAST_PRICE"]}})
n = 0
for ev in bs.events(timeout=60):
print(json.dumps(ev, indent=2, cls=CustomJSONEncoder))
n += 1
if n > 1:
break
SESSION_STATUS - Message 0 - SessionConnectionDown = {
server = "localhost:8194"
}
{
"fragmentType": 0,
"correlationIds": [
"USDCAD Curncy"
],
"messageType": "MarketDataEvents",
"timeReceived": "2023-11-21T04:17:42.131746+0000",
"element": {
"MarketDataEvents": {
"MKTDATA_EVENT_TYPE": "SUMMARY",
"MKTDATA_EVENT_SUBTYPE": "INITPAINT",
"BID": 1.3706,
"ASK": 1.3707,
"BEST_BID": 1.3706,
"BEST_ASK": 1.3707,
"BID_ALL_SESSION": 1.3706,
"ASK_ALL_SESSION": 1.3707,
"IND_BID_FLAG": false,
"IND_ASK_FLAG": false,
"BID_TDY": 1.3706,
"PRICE_LAST_BID_RT": 1.3706,
"ASK_TDY": 1.3707,
"PRICE_LAST_ASK_RT": 1.3707,
"BID_DIR": 1,
"ASK_DIR": 1,
"BID2": 1.3706,
"ASK2": 1.3707,
"BID_ALL_SESSION_TDY_RT": 1.3706,
"ASK_ALL_SESSION_TDY_RT": 1.3707,
"CURRENT_SESSION_RT": 2,
"PX_OPEN_ALL_WITH_SWITCHOVER_RT": 1.3724546432495117,
"PX_CLOSE_ALL_WITH_SWITCHOVER_RT": 1.3725,
"LAST_PRICE_ALL_SESSION_DIR_RT": 1,
"SIMP_LAST_PX_ALL_SESS_DIR_RT": 1,
"ID_BB_SEC_NUM_SRC": 12884922137,
"LAST_PRICE": 1.3707,
"LAST2_TRADE": 1.3707,
"HIGH": 1.373,
"LOW": 1.3705,
"OPEN": 1.3725,
"OPEN_TDY": 1.3725,
"PRICE_OPEN_RT": 1.3725,
"LAST_PRICE_TDY": 1.3707,
"HIGH_TDY": 1.373,
"PRICE_HIGH_RT": 1.373,
"LOW_TDY": 1.3705,
"PRICE_LOW_RT": 1.3705,
"MID": 1.3706,
"MID_TDY": 1.3706,
"RT_EXCH_MARKET_STATUS": "ACTV",
"LAST_ALL_SESSIONS": 1.3707,
"PREV_CLOSE_VALUE_REALTIME": 1.3725,
"TRADING_DT_REALTIME": "2023-11-21T00:00:00.000000",
"PREV_TRADING_DT_REALTIME": "2023-11-20T00:00:00.000000",
"PRICE_CHANGE_1Y_NET_RT": 0.02590000070631504,
"PRICE_CHANGE_1Y_PCT_RT": 1.9221999645233154,
"CLOSING_PRICE_1Y_AGO_RT": 1.3447999954223633,
"ZERO_BID_PRICE_INDICATOR_RT": true,
"ZERO_ASK_PRICE_INDICATOR_RT": true,
"RT_API_MACHINE": "apipubx0@md1p-rr-004",
"PX_LOW_BID_RT": 1.3704500198364258,
"PX_HIGH_ASK_RT": 1.3736000061035156,
"PX_HIGH_BID_RT": 1.372910499572754,
"PX_LOW_ASK_RT": 1.3705700635910034,
"ALL_PRICE": 1.3707,
"MID2": 1.3706,
"MID_DIR": 1,
"RT_PRICING_SOURCE": "BGN",
"ASK_CHANGE": -0.0019001174926758235,
"BID_CHANGE": -0.0017002532958985128,
"SPREAD_BA": 0.0001,
"PRICE_52_WEEK_HIGH_RT": 1.3899,
"PRICE_52_WEEK_HIGH_DATE_RT": "2023-11-01T00:00:00.000000",
"PRICE_52_WEEK_LOW_RT": 1.3093,
"PRICE_52_WEEK_LOW_DATE_RT": "2023-07-14T00:00:00.000000",
"PRICE_PREVIOUS_CLOSE_RT": 1.3725,
"PRICE_LAST_RT": 1.3707,
"PREVIOUS_CLOSE_BID_PRICE_RT": 1.3723,
"PREVIOUS_CLOSE_ASK_PRICE_RT": 1.3726,
"LAST_CONTINUOUS_TRADE_PRICE_RT": 1.3707,
"LAST_TRADE_CANCELED_IND_RT": false,
"UNADJUSTED_PREV_LAST_PRICE_RT": 1.3725,
"ADJUSTED_PREV_LAST_PRICE_RT": 1.3725,
"BASE_PRICE_ENABLED_RT": false,
"BB_STANDARD_CC_AVAIL_RT": false,
"NUM_TRADES_RT": 0,
"BLOOMBERG_CLOSE_METHOD_RT": "NA",
"LAST_TICK_DIRECTION_RT": 0,
"CHG_NET_REG_SES_PRV_RG_SES_CL_RT": -0.0018019676208496094,
"CHG_PCT_REG_SES_PRV_RG_SES_CL_RT": -0.13129546830859543,
"ALT_BOOK_BEST_ASK_CC_RT": null,
"ALT_BOOK_NAME_RT": null,
"ALT_BOOK_BEST_BID_CC_RT": null,
"MIN_NEGOTIATED_TRADE_SIZE_RT": null,
"SETTLMNT_PX_ALTRNTVE_NOTTN_RT": null,
"ALT_BOOK_BEST_BID_NUM_OF_ORDR_RT": null,
"ALT_BOOK_BEST_ASK_NUM_OF_ORDR_RT": null,
"SETTLMNT_PX_ALT_NOTTN_METHOD_RT": null,
"SHORTENED_BID_ASK_RT": "1.3706/07",
"IS_DELAYED_STREAM": false,
"CHG_NET_MTD_RT": -0.0168,
"CHG_PCT_MTD_RT": -1.2108,
"CHG_NET_QTD_RT": 0.013,
"CHG_PCT_QTD_RT": 0.9575,
"CHG_NET_YTD_RT": 0.0153,
"CHG_PCT_YTD_RT": 1.1288,
"CHG_NET_1M_RT": 0.0016,
"CHG_PCT_1M_RT": 0.1169,
"CHG_NET_3M_RT": 0.0163,
"CHG_PCT_3M_RT": 1.2035,
"REALTIME_2_DAY_CHANGE_NET": -0.0016,
"REALTIME_2_DAY_CHANGE_PERCENT": -0.1166,
"REALTIME_5_DAY_CHANGE_NET": 0.0014,
"REALTIME_5_DAY_CHANGE_PERCENT": 0.1022,
"RT_PX_AS_PCT_INTRADAY_RANGE": 8.0,
"REALTIME_PERCENT_BID_ASK_SPREAD": 0.00730000000000075,
"CHG_NET_1D_ALL_FROM_REGULAR_RT": -0.0018,
"CHG_PCT_1D_ALL_FROM_REGULAR_RT": -0.1311,
"PX_CHG_NET_1D_ALL_SWITCHOVER_RT": -0.0018,
"PX_CHG_PCT_1D_ALL_SWITCHOVER_RT": -0.1311,
"API_RULES_VERSION": 201411210,
"PREV_SES_LAST_PRICE": 1.3725,
"RT_PX_CHG_NET_1D": -0.0018,
"RT_PX_CHG_PCT_1D": -0.13109999895095825,
"PRICE_CHANGE_ON_DAY_RT": -0.0018,
"NET_CHANGE_ON_DAY_TODAY_RT": -0.0018,
"PERCENT_CHANGE_ON_DAY_TODAY_RT": -0.1311,
"LAST_UPDATE_BID_RT": "01:17:40",
"LAST_UPDATE_ASK_RT": "01:17:40",
"TIME": "01:17:40",
"BID_ASK_TIME": "01:17:40",
"SES_START": "19:00:00",
"SES_END": "18:59:59",
"PRICE_LAST_TIME_RT": "01:17:40",
"LAST_BID_TIME_TODAY_REALTIME": "01:17:40",
"LAST_ASK_TIME_TODAY_REALTIME": "01:17:40",
"LAST_PRICE_TIME_TODAY_REALTIME": "01:17:40",
"LAST_UPDATE_ALL_SESSIONS_RT": "01:17:40"
}
}
}
{
"fragmentType": 0,
"correlationIds": [
"USDCAD Curncy"
],
"messageType": "MarketDataEvents",
"timeReceived": "2023-11-21T04:17:42.131746+0000",
"element": {
"MarketDataEvents": {
"MKTDATA_EVENT_TYPE": "TRADE",
"MKTDATA_EVENT_SUBTYPE": "NEW",
"LAST_ALL_SESSIONS": 1.3707,
"LAST2_TRADE": 1.3707,
"LAST_PRICE": 1.3707,
"LAST_PRICE_TDY": 1.3707,
"LAST2_DIR": null,
"LAST_TICK_DIRECTION_RT": 0,
"ALL_PRICE_COND_CODE": null,
"ALL_PRICE": 1.3707,
"LAST_PRICE_COND_CODE_RT": null,
"PRICE_CHANGE_1Y_NET_RT": 0.02590000070631504,
"PRICE_CHANGE_1Y_PCT_RT": 1.9258999824523926,
"LAST_CONTINUOUS_TRADE_PRICE_RT": 1.3707,
"PRICE_LAST_RT": 1.3707,
"EVT_TRADE_PRICE_RT": 1.3707,
"EVT_TRADE_SIZE_RT": 0,
"EVT_TRADE_CONDITION_CODE_RT": null,
"EVT_TRADE_SOURCE_TYPE_CODE_RT": null,
"EVT_TRADE_INTEGER_IDENTIFIER_RT": null,
"EVT_TRADE_IDENTIFIER_RT": null,
"EXCH_CODE_LAST_ALL_SESSION_RT": null,
"LOC_SRC_FOR_LST_TRD_ALL_SESS_RT": null,
"CHG_NET_REG_SESSION_CLOSE": null,
"CHG_PCT_REG_SESSION_CLOSE": null,
"CHG_NET_PREV_DAY_POST_CLS": null,
"CHG_PCT_PREV_DAY_POST_CLS": null,
"CHG_NET_1D_PRE_FROM_REGULAR_RT": null,
"CHG_PCT_1D_PRE_FROM_REGULAR_RT": null,
"CHG_NET_1D_ALL_FROM_REGULAR_RT": -0.0018,
"CHG_PCT_1D_ALL_FROM_REGULAR_RT": -0.1311,
"CHG_NET_1D_POST_FROM_REGULAR_RT": null,
"CHG_PCT_1D_POST_FROM_REGULAR_RT": null,
"PX_CHG_NET_1D_ALL_SWITCHOVER_RT": -0.0018,
"PX_CHG_PCT_1D_ALL_SWITCHOVER_RT": -0.1311,
"CHG_NET_REG_SES_PRV_RG_SES_CL_RT": -0.0018,
"CHG_PCT_REG_SES_PRV_RG_SES_CL_RT": -0.131148,
"CHG_NET_MTD_RT": -0.0168,
"CHG_PCT_MTD_RT": -1.2108,
"CHG_NET_QTD_RT": 0.013,
"CHG_PCT_QTD_RT": 0.9575,
"CHG_NET_YTD_RT": 0.0153,
"CHG_PCT_YTD_RT": 1.1288,
"CHG_NET_1M_RT": 0.0016,
"CHG_PCT_1M_RT": 0.1169,
"CHG_NET_3M_RT": 0.0163,
"CHG_PCT_3M_RT": 1.2035,
"REALTIME_2_DAY_CHANGE_NET": -0.0016,
"REALTIME_2_DAY_CHANGE_PERCENT": -0.1166,
"REALTIME_5_DAY_CHANGE_NET": 0.0014,
"REALTIME_5_DAY_CHANGE_PERCENT": 0.1022,
"RT_PX_AS_PCT_INTRADAY_RANGE": 8.0,
"REALTIME_PERCENT_BID_ASK_SPREAD": 0.00730000000000075,
"RT_THEORETICAL_PCT_CHG_FROM_LAST": null,
"REALTIME_15_SEC_PRICE_PCT_CHG": null,
"REALTIME_ONE_MIN_PRICE_PCT_CHG": null,
"REALTIME_FIVE_MIN_PRICE_PCT_CHG": null,
"REALTIME_15_MIN_PRICE_PCT_CHG": null,
"REALTIME_ONE_HOUR_PRICE_PCT_CHG": null,
"REALTIME_VOLUME_5_DAY_INTERVAL": null,
"DELTA_AVAT_1_DAY_INTERVAL": null,
"DELTA_AVAT_5_DAY_INTERVAL": null,
"DELTA_AVAT_10_DAY_INTERVAL": null,
"DELTA_AVAT_20_DAY_INTERVAL": null,
"DELTA_AVAT_30_DAY_INTERVAL": null,
"DELTA_AVAT_100_DAY_INTERVAL": null,
"DELTA_AVAT_180_DAY_INTERVAL": null,
"DELTA_ATAT_1_DAY_INTERVAL": null,
"DELTA_ATAT_5_DAY_INTERVAL": null,
"DELTA_ATAT_10_DAY_INTERVAL": null,
"DELTA_ATAT_20_DAY_INTERVAL": null,
"DELTA_ATAT_30_DAY_INTERVAL": null,
"DELTA_ATAT_100_DAY_INTERVAL": null,
"DELTA_ATAT_180_DAY_INTERVAL": null,
"RT_PX_CHG_NET_1D": -0.0018,
"RT_PX_CHG_PCT_1D": -0.13109999895095825,
"PRICE_CHANGE_ON_DAY_RT": -0.0018,
"NET_CHANGE_ON_DAY_TODAY_RT": -0.0018,
"PERCENT_CHANGE_ON_DAY_TODAY_RT": -0.1311,
"LAST_UPDATE_CHG_1D_RT": -0.0017999999690800905,
"EVT_TRADE_TIME_RT": "01:17:40",
"TRADE_UPDATE_STAMP_RT": "2023-11-21T01:17:40.000000-0300",
"IS_DELAYED_STREAM": false,
"EVT_UPDATE_ACTIONS_RT": 271,
"TIME": "01:17:40",
"PRICE_LAST_TIME_RT": "01:17:40",
"LAST_PRICE_TIME_TODAY_REALTIME": "01:17:40",
"EVENT_TIME": "01:17:40",
"LAST_UPDATE_ALL_SESSIONS_RT": "01:17:40",
"BLOOMBERG_SEND_TIME_RT": "2023-11-21T04:17:42.131000+0000"
}
}
}