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"
    }
  }
}