<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Code and Data | Academic</title><link>https://yiyangclarkzhang0201.com/code-and-data/</link><atom:link href="https://yiyangclarkzhang0201.com/code-and-data/index.xml" rel="self" type="application/rss+xml"/><description>Code and Data</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Fri, 01 Nov 2024 00:00:00 +0000</lastBuildDate><image><url>https://yiyangclarkzhang0201.com/media/icon_hu0b7a4cb9992c9ac0e91bd28ffd38dd00_9727_512x512_fill_lanczos_center_3.png</url><title>Code and Data</title><link>https://yiyangclarkzhang0201.com/code-and-data/</link></image><item><title>Slide Template</title><link>https://yiyangclarkzhang0201.com/code-and-data/slide-template/</link><pubDate>Fri, 01 Nov 2024 00:00:00 +0000</pubDate><guid>https://yiyangclarkzhang0201.com/code-and-data/slide-template/</guid><description>&lt;p>This is a Slide Template that I built using Georgia Tech Theme.&lt;/p>
&lt;ul>
&lt;li>Overleaf Link: &lt;a href="https://www.overleaf.com/read/dkwrmfbvkfqw#ba70e9" target="_blank" rel="noopener">https://www.overleaf.com/read/dkwrmfbvkfqw#ba70e9&lt;/a>&lt;/li>
&lt;li>Google Drive Share (Zip File Download): &lt;a href="https://drive.google.com/file/d/1a8v-MRjtBYyiVMaYIAeGQvl4QsFOJWeo/view?usp=sharing" target="_blank" rel="noopener">https://drive.google.com/file/d/1a8v-MRjtBYyiVMaYIAeGQvl4QsFOJWeo/view?usp=sharing&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Monetary Policy Shock Data Replication</title><link>https://yiyangclarkzhang0201.com/code-and-data/mpdata/</link><pubDate>Fri, 12 Jul 2024 00:00:00 +0000</pubDate><guid>https://yiyangclarkzhang0201.com/code-and-data/mpdata/</guid><description>&lt;p>Here I replicated two Monetary Shock/Surprise paper and enlarged their data to the end of 2023.&lt;/p>
&lt;ul>
&lt;li>Kenneth N Kuttner.2001.&amp;ldquo;Monetary policy surprises and interest rates: Evidence from the Fed funds futures market&amp;rdquo;.Journal of Monetary Economics,47(3):523-544.https://doi.org/https://doi.org/10.1016/S0304-3932(01)00055-1
&lt;ul>
&lt;li>The data from author&amp;rsquo;s website ends at 2019, I enlarged them to the end of year 2023. Due to the data limitation, there are several dates with some small error, but for the most of them, the results are accurate.&lt;/li>
&lt;li>The link to the replicated data (2012 to 2023): &lt;a href="https://drive.google.com/file/d/10sQQwf8g5EtOwO6MrfoQckzJD2wcpCGU/view?usp=drive_link" target="_blank" rel="noopener">https://drive.google.com/file/d/10sQQwf8g5EtOwO6MrfoQckzJD2wcpCGU/view?usp=drive_link&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Personal Package Introduction</title><link>https://yiyangclarkzhang0201.com/code-and-data/personal-package/</link><pubDate>Fri, 17 May 2024 00:00:00 +0000</pubDate><guid>https://yiyangclarkzhang0201.com/code-and-data/personal-package/</guid><description>&lt;p>This is the personal package I built for academic research convenience. I will update it regularly and add more useful functions. You can download it through pip install if you think it is helpful.&lt;/p>
&lt;h1 id="table-of-contents">Table of contents&lt;/h1>
&lt;ol>
&lt;li>&lt;a href="#Setup">How to Setup&lt;/a>&lt;/li>
&lt;li>&lt;a href="#Functions">Functions&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#fileop">File Operation&lt;/a>&lt;/li>
&lt;li>&lt;a href="#regconv">Regression Result Convert&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;/ol>
&lt;h1 id="how-to-setup-a-namesetupa">How to Setup &lt;a name="Setup">&lt;/a>&lt;/h1>
&lt;p>Please ignore the version number shown in the featured figure and use the following code to set it up.&lt;/p>
&lt;pre>&lt;code class="language-{python}">pip install yiyangzhang0201
import yiyangzhang0201
&lt;/code>&lt;/pre>
&lt;h1 id="functions-a-namefunctionsa">Functions &lt;a name="Functions">&lt;/a>&lt;/h1>
&lt;h2 id="file-operation-a-namefileopa">File Operation &lt;a name="fileop">&lt;/a>&lt;/h2>
&lt;p>This part contains the functions related to file operations.&lt;/p>
&lt;pre>&lt;code class="language-{python}">from yiyangzhang0201.fileop import *
get_subfolders(parent_path)
get_files(folder_names)
create_new_folder(path)
copy_file(file_path, new_fold)
&lt;/code>&lt;/pre>
&lt;p>The functions included are:&lt;/p>
&lt;ul>
&lt;li>Get subfolders under a folder and return a list containing all the subfolders.&lt;/li>
&lt;li>Get all the files under a folder and return a list containing all the files.&lt;/li>
&lt;li>Create a new folder if it does not exist.&lt;/li>
&lt;li>Copy a file to the given folder; if the folder does not exist, create it.&lt;/li>
&lt;/ul>
&lt;h2 id="regression-result-convert-a-nameregconva">Regression Result Convert &lt;a name="regconv">&lt;/a>&lt;/h2>
&lt;p>This part contains the functions related to converting regression results from Python/Stata to an academic table form.&lt;/p>
&lt;h3 id="stata-to-latex">Stata to Latex&lt;/h3>
&lt;p>First, we need to use the pystata package to link the python to STATA. &lt;strong>This function needs to be run in Notebook Environment.&lt;/strong>&lt;/p>
&lt;pre>&lt;code class="language-{python}">!pip install pystata
import stata_setup
stata_setup.config(&amp;quot;C:/Program Files/Stata18/&amp;quot;, &amp;quot;mp&amp;quot;)
&lt;/code>&lt;/pre>
&lt;pre>&lt;code> ___ ____ ____ ____ ____ ®
/__ / ____/ / ____/ 18.0
___/ / /___/ / /___/ MP—Parallel Edition
Statistics and Data Science Copyright 1985-2023 StataCorp LLC
StataCorp
4905 Lakeway Drive
College Station, Texas 77845 USA
800-STATA-PC https://www.stata.com
979-696-4600 stata@stata.com
Stata license: Unlimited-user 2-core network, expiring 8 Aug 2024
Serial number: 501809315448
Licensed to: Scheller College of Business
GT
Notes:
1. Unicode is supported; see help unicode_advice.
2. More than 2 billion observations are allowed; see help obs_advice.
3. Maximum number of variables is set to 5,000 but can be increased;
see help set_maxvar.
&lt;/code>&lt;/pre>
&lt;p>A successful link should show the above result in the notebook. You must edit your path and version to suit your STATA on the machine.&lt;/p>
&lt;p>I will use following data as an example:&lt;/p>
&lt;pre>&lt;code class="language-{python}">%%stata
sysuse auto, clear
&lt;/code>&lt;/pre>
&lt;pre>&lt;code class="language-{python}">code = [&amp;quot;&amp;quot;&amp;quot;
reg mpg price
&amp;quot;&amp;quot;&amp;quot;,
&amp;quot;&amp;quot;&amp;quot;
reg mpg price weight
&amp;quot;&amp;quot;&amp;quot;,
&amp;quot;&amp;quot;&amp;quot;
reg mpg price i.foreign
&amp;quot;&amp;quot;&amp;quot;,
&amp;quot;&amp;quot;&amp;quot;
reg mpg price weight i.foreign i.trunk
&amp;quot;&amp;quot;&amp;quot;]
from yiyangzhang0201.regcov import stata_result_latex
stata_result_latex(code, fe_list = [[],[],['Foreign'], ['Foreign', 'Trunk']], title = 'Function Test')
&lt;/code>&lt;/pre>
&lt;p>The function stata_result_latex will generate:&lt;/p>
&lt;ul>
&lt;li>Original STATA outputs in the cell output.&lt;/li>
&lt;li>A file named &amp;ldquo;results.tex&amp;rdquo; contains the code for the academic format latex table.&lt;/li>
&lt;li>Note that the &lt;em>code&lt;/em> is a list containing all the regression functions you want to run. And the &lt;em>fe_list&lt;/em> is a list that each element of it is also a list, which contains the fixed effect for the corresponding function.&lt;/li>
&lt;li>The length of the &lt;em>code&lt;/em> should match the length of &lt;em>fe_list&lt;/em>.&lt;/li>
&lt;/ul>
&lt;p>Because the original STATA output is too long, I won&amp;rsquo;t show it here, I will just show the latex table generated, which is shown in the following picture.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="./index_1_0.png" alt="png" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p></description></item><item><title>Bloomberg API Usage</title><link>https://yiyangclarkzhang0201.com/code-and-data/bloomberg/</link><pubDate>Thu, 16 May 2024 00:00:00 +0000</pubDate><guid>https://yiyangclarkzhang0201.com/code-and-data/bloomberg/</guid><description>&lt;p>In building this Bloomberg Api Sample File, I refered to multiple resourses from XBBG example, Stack Overflows and Bloomberg Official API document. I updated all the package info and codes to the newest version. I hope this sample file can be helpful.&lt;/p>
&lt;h1 id="toc">TOC&lt;/h1>
&lt;p>1 &lt;a href="#Prepare">Prepare&lt;/a>&lt;br>
  1.1 &lt;a href="#Prepare-Terminal-Device">Prepare Terminal Device&lt;/a>&lt;br>
  1.2 &lt;a href="#Prepare-API-environment">Prepare API environment&lt;/a>&lt;br>
   1.2.1 &lt;a href="#Easier-to-use-package%3A-XBBG">Easier to use package: XBBG&lt;/a>&lt;br>
   1.2.2 &lt;a href="#Raw-API">Raw API&lt;/a>&lt;br>
 2 &lt;a href="#Data-Collection-Examples">Data Collection Examples&lt;/a>&lt;br>
  2.2 &lt;a href="#Bloomberg-Data-Point">Bloomberg Data Point&lt;/a>&lt;br>
  2.3 &lt;a href="#Bloomberg-Data-Set">Bloomberg Data Set&lt;/a>&lt;br>
   2.3.2 &lt;a href="#Dividend-Data">Dividend Data&lt;/a>&lt;br>
   2.3.3 &lt;a href="#Earning-Data">Earning Data&lt;/a>&lt;br>
  2.4 &lt;a href="#Bloomberg-Historical-Data">Bloomberg Historical Data&lt;/a>&lt;br>
   2.4.2 &lt;a href="#Stock-Data">Stock Data&lt;/a>&lt;br>
   2.4.3 &lt;a href="#Option-Data">Option Data&lt;/a>&lt;br>
  2.5 &lt;a href="#Bloomberg-Intraday-Bars">Bloomberg Intraday Bars&lt;/a>&lt;br>
   2.5.2 &lt;a href="#Stock-Data">Stock Data&lt;/a>&lt;br>
   2.5.3 &lt;a href="#Option-Data">Option Data&lt;/a>&lt;br>
  2.6 &lt;a href="#Bloomberg-Intraday-Tick-Data">Bloomberg Intraday Tick Data&lt;/a>&lt;br>
   2.6.2 &lt;a href="#Stock-Tick-Level-Data">Stock Tick Level Data&lt;/a>&lt;br>
   2.6.3 &lt;a href="#Option-Tick-Level-Data">Option Tick Level Data&lt;/a>&lt;br>
   2.6.4 &lt;a href="#Get-more-Info-of-Options">Get more Info of Options&lt;/a>&lt;br>
 3 &lt;a href="#Other-Useful-Piplines">Other Useful Piplines&lt;/a>&lt;br>
  3.2 &lt;a href="#Raw-API">Raw API&lt;/a>&lt;br>
  3.3 &lt;a href="#VWAP-for-Intraday-Bar-Data">VWAP for Intraday Bar Data&lt;/a>&lt;br>
  3.4 &lt;a href="#Total-Traded-Volume-for-Certain-Period">Total Traded Volume for Certain Period&lt;/a>&lt;br>
  3.5 &lt;a href="#Subscription">Subscription&lt;/a>&lt;br>&lt;/p>
&lt;h1 id="prepare">Prepare&lt;/h1>
&lt;h2 id="prepare-terminal-device">Prepare Terminal Device&lt;/h2>
&lt;p>This is about how to use Python API for bloomberg through google colab.&lt;/p>
&lt;ol>
&lt;li>Sign to a device with bloomberg terminal.&lt;/li>
&lt;li>Make sure the Jupyter is insalled on the device. If not, install anaconda or use pip install to install jupyter on the device.&lt;/li>
&lt;li>After this step, open terminal or Anaconda Powershell Prompt, paste following code and run:&lt;/li>
&lt;/ol>
&lt;pre>&lt;code> jupyter notebook \
--NotebookApp.allow_origin='https://colab.research.google.com' \
--port=8888 \
--NotebookApp.port_retries=0
&lt;/code>&lt;/pre>
&lt;p>Note that after experiments, the way that install anaconda and run above code in Anaconda Powershell Prompt is one of the easiest ways to success. (At Scheller Trading Floor Bloomberg terminal).
4. After run above code, from the output &amp;quot; Or copy and paste one of these URLs:&amp;quot;, copy and paste one of the urls shown to the colab $→$ Connect to a local runtime $→$ Backend Url
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="./index_1_0.png" alt="png" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Now, we finished the basic settings to use this colab notebook to get data from bloomberg.&lt;/p>
&lt;h2 id="prepare-api-environment">Prepare API environment&lt;/h2>
&lt;h3 id="easier-to-use-package-xbbg">Easier to use package: XBBG&lt;/h3>
&lt;p>To set up the Bloomberg API, we need to run the following codes:&lt;/p>
&lt;pre>&lt;code class="language-python">import pandas as pd
import numpy as np
!pip install blpapi --index-url=https://bcms.bloomberg.com/pip/simple/
!pip install xbbg
from xbbg import blp, pipeline
&lt;/code>&lt;/pre>
&lt;pre>&lt;code>Looking in indexes: https://bcms.bloomberg.com/pip/simple/
Requirement already satisfied: blpapi in c:\users\yzhang3654\appdata\local\anaconda3\lib\site-packages (3.24.4)
Requirement already satisfied: xbbg in c:\users\yzhang3654\appdata\local\anaconda3\lib\site-packages (0.7.5a4)
Requirement already satisfied: numpy&amp;gt;=1.15.0 in c:\users\yzhang3654\appdata\local\anaconda3\lib\site-packages (from xbbg) (1.26.4)
Requirement already satisfied: pandas&amp;gt;=1.0.0 in c:\users\yzhang3654\appdata\local\anaconda3\lib\site-packages (from xbbg) (2.1.4)
Requirement already satisfied: pyarrow&amp;gt;=1.0.1 in c:\users\yzhang3654\appdata\local\anaconda3\lib\site-packages (from xbbg) (14.0.2)
Requirement already satisfied: pytz&amp;gt;=2020.4 in c:\users\yzhang3654\appdata\local\anaconda3\lib\site-packages (from xbbg) (2023.3.post1)
Requirement already satisfied: ruamel.yaml&amp;gt;=0.15.0 in c:\users\yzhang3654\appdata\local\anaconda3\lib\site-packages (from xbbg) (0.17.21)
Requirement already satisfied: pytest in c:\users\yzhang3654\appdata\local\anaconda3\lib\site-packages (from xbbg) (7.4.0)
Requirement already satisfied: python-dateutil&amp;gt;=2.8.2 in c:\users\yzhang3654\appdata\local\anaconda3\lib\site-packages (from pandas&amp;gt;=1.0.0-&amp;gt;xbbg) (2.8.2)
Requirement already satisfied: tzdata&amp;gt;=2022.1 in c:\users\yzhang3654\appdata\local\anaconda3\lib\site-packages (from pandas&amp;gt;=1.0.0-&amp;gt;xbbg) (2023.3)
Requirement already satisfied: iniconfig in c:\users\yzhang3654\appdata\local\anaconda3\lib\site-packages (from pytest-&amp;gt;xbbg) (1.1.1)
Requirement already satisfied: packaging in c:\users\yzhang3654\appdata\local\anaconda3\lib\site-packages (from pytest-&amp;gt;xbbg) (23.1)
Requirement already satisfied: pluggy&amp;lt;2.0,&amp;gt;=0.12 in c:\users\yzhang3654\appdata\local\anaconda3\lib\site-packages (from pytest-&amp;gt;xbbg) (1.0.0)
Requirement already satisfied: colorama in c:\users\yzhang3654\appdata\local\anaconda3\lib\site-packages (from pytest-&amp;gt;xbbg) (0.4.6)
Requirement already satisfied: six&amp;gt;=1.5 in c:\users\yzhang3654\appdata\local\anaconda3\lib\site-packages (from python-dateutil&amp;gt;=2.8.2-&amp;gt;pandas&amp;gt;=1.0.0-&amp;gt;xbbg) (1.16.0)
&lt;/code>&lt;/pre>
&lt;pre>&lt;code class="language-python">from numpy import unique
&lt;/code>&lt;/pre>
&lt;p>Test the version of the api&lt;/p>
&lt;pre>&lt;code class="language-python">blp.__version__
&lt;/code>&lt;/pre>
&lt;pre>&lt;code>'0.7.5a4'
&lt;/code>&lt;/pre>
&lt;p>A simple test to check the connection to bloomberg terminal.&lt;/p>
&lt;pre>&lt;code class="language-python">blp.bdp('AAPL US Equity', flds=['Security_Name', 'Last_Price'])
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr style="text-align: right;">
&lt;th>&lt;/th>
&lt;th>security_name&lt;/th>
&lt;th>last_price&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>AAPL US Equity&lt;/th>
&lt;td>Apple Inc&lt;/td>
&lt;td>189.72&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;h3 id="raw-api">Raw API&lt;/h3>
&lt;p>This cell is for raw Bloomberg API setup&lt;/p>
&lt;pre>&lt;code class="language-python">!pip install blpapi
import blpapi
from datetime import datetime
&lt;/code>&lt;/pre>
&lt;pre>&lt;code>Requirement already satisfied: blpapi in c:\users\yzhang3654\appdata\local\anaconda3\lib\site-packages (3.24.4)
&lt;/code>&lt;/pre>
&lt;h1 id="data-collection-examples">Data Collection Examples&lt;/h1>
&lt;p>In this section, I will show detailed examples and explainations to different functions of bloomberg api, for more detailed information of functions, you can use help command to check the parameters of each functions.&lt;/p>
&lt;h2 id="bloomberg-data-point">Bloomberg Data Point&lt;/h2>
&lt;p>BDP (Bloomberg data point): returns data to a single cell. It contains only one
ticker and one field.&lt;/p>
&lt;ul>
&lt;li>It is suitable for questions like &lt;em>What is the last price of google?&lt;/em>&lt;/li>
&lt;li>This is similar to excel function
Formula Syntax: =BDP (“Security”, “Field”)&lt;/li>
&lt;/ul>
&lt;pre>&lt;code class="language-python">blp.bdp('GOOG US Equity', flds=['Security_Name', 'Last_Price'])
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr style="text-align: right;">
&lt;th>&lt;/th>
&lt;th>security_name&lt;/th>
&lt;th>last_price&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>GOOG US Equity&lt;/th>
&lt;td>Alphabet Inc&lt;/td>
&lt;td>173.88&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;pre>&lt;code class="language-python">blp.bdp('AAPL US Equity', flds=['Security_Name','Last_Price'])
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr style="text-align: right;">
&lt;th>&lt;/th>
&lt;th>security_name&lt;/th>
&lt;th>last_price&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>AAPL US Equity&lt;/th>
&lt;td>Apple Inc&lt;/td>
&lt;td>189.72&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;pre>&lt;code class="language-python">blp.bdp('6758 JP Equity', flds='Crncy_Adj_Mkt_Cap', Eqy_Fund_Crncy='USD')
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr style="text-align: right;">
&lt;th>&lt;/th>
&lt;th>crncy_adj_mkt_cap&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>6758 JP Equity&lt;/th>
&lt;td>104655.884038&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;pre>&lt;code class="language-python">blp.bdp(tickers='AAPL US Equity', flds=['Security_Name', 'GICS_Sector_Name','PX_last', 'HISTORICAL_MARKET_CAP']).head()
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr style="text-align: right;">
&lt;th>&lt;/th>
&lt;th>security_name&lt;/th>
&lt;th>gics_sector_name&lt;/th>
&lt;th>px_last&lt;/th>
&lt;th>historical_market_cap&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>AAPL US Equity&lt;/th>
&lt;td>Apple Inc&lt;/td>
&lt;td>Information Technology&lt;/td>
&lt;td>189.72&lt;/td>
&lt;td>2630106.39528&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;h2 id="bloomberg-data-set">Bloomberg Data Set&lt;/h2>
&lt;p>BDS (Bloomberg Data Set) This formula returns multi-cell descriptive data. This is for bulk/multi cell data.&lt;/p>
&lt;ul>
&lt;li>It is suitabl for questions like &lt;em>Retrieve the top 20 shareholders of Google&lt;/em>&lt;/li>
&lt;li>Formula Syntax: =BDS (“Security”, “Field”, “Optional Arguments”)&lt;/li>
&lt;/ul>
&lt;pre>&lt;code class="language-python">holders = blp.bds('GOOG US Equity', flds='Top_20_Holders_Public_Filings', cache=True)
holders.head()
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr style="text-align: right;">
&lt;th>&lt;/th>
&lt;th>holder_name&lt;/th>
&lt;th>portfolio_name&lt;/th>
&lt;th>source&lt;/th>
&lt;th>amount_held&lt;/th>
&lt;th>percent_outstanding&lt;/th>
&lt;th>latest_change&lt;/th>
&lt;th>filing_date&lt;/th>
&lt;th>institution_type&lt;/th>
&lt;th>country&lt;/th>
&lt;th>metro_area&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>GOOG US Equity&lt;/th>
&lt;td>Vanguard Group Inc/T&lt;/td>
&lt;td>n/a&lt;/td>
&lt;td>ULT-AGG&lt;/td>
&lt;td>411921073.0&lt;/td>
&lt;td>7.33&lt;/td>
&lt;td>932245.0&lt;/td>
&lt;td>2024-03-31&lt;/td>
&lt;td>Investment Advisor&lt;/td>
&lt;td>United States&lt;/td>
&lt;td>Philadelphia&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>GOOG US Equity&lt;/th>
&lt;td>Page Lawrence E&lt;/td>
&lt;td>n/a&lt;/td>
&lt;td>Form 4&lt;/td>
&lt;td>390272280.0&lt;/td>
&lt;td>6.95&lt;/td>
&lt;td>-277760.0&lt;/td>
&lt;td>2022-04-19&lt;/td>
&lt;td>Unclassified&lt;/td>
&lt;td>n/a&lt;/td>
&lt;td>Unclassified&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>GOOG US Equity&lt;/th>
&lt;td>Brin Sergey Mikhailo&lt;/td>
&lt;td>n/a&lt;/td>
&lt;td>Form 4&lt;/td>
&lt;td>367312400.0&lt;/td>
&lt;td>6.54&lt;/td>
&lt;td>-2601500.0&lt;/td>
&lt;td>2023-05-11&lt;/td>
&lt;td>Unclassified&lt;/td>
&lt;td>n/a&lt;/td>
&lt;td>Unclassified&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>GOOG US Equity&lt;/th>
&lt;td>BlackRock Inc&lt;/td>
&lt;td>n/a&lt;/td>
&lt;td>13G&lt;/td>
&lt;td>356934964.0&lt;/td>
&lt;td>6.35&lt;/td>
&lt;td>356934964.0&lt;/td>
&lt;td>2023-12-31&lt;/td>
&lt;td>Investment Advisor&lt;/td>
&lt;td>United States&lt;/td>
&lt;td>New York City/Southern CT/Northern NJ&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>GOOG US Equity&lt;/th>
&lt;td>State Street Corp&lt;/td>
&lt;td>n/a&lt;/td>
&lt;td>ULT-AGG&lt;/td>
&lt;td>190762518.0&lt;/td>
&lt;td>3.40&lt;/td>
&lt;td>387787.0&lt;/td>
&lt;td>2024-03-31&lt;/td>
&lt;td>Investment Advisor&lt;/td>
&lt;td>United States&lt;/td>
&lt;td>Boston&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>We can make some edit to the data to make the data more clear.&lt;/p>
&lt;pre>&lt;code class="language-python">holders = blp.bds('AMZN US Equity', flds='All_Holders_Public_Filings', cache=True)
(
holders
.loc[:, ~holders.columns.str.contains(
f'holder_id|portfolio_name|change|number|'
f'metro|percent_of_portfolio|source'
)]
.rename(
index=lambda tkr: tkr.replace(' Equity', ''),
columns={
'holder_name_': 'holder',
'position_': 'position',
'filing_date__': 'filing_dt',
'percent_outstanding': 'pct_out',
'insider_status_': 'insider',
}
)
).head()
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr style="text-align: right;">
&lt;th>&lt;/th>
&lt;th>holder&lt;/th>
&lt;th>position&lt;/th>
&lt;th>filing_dt&lt;/th>
&lt;th>insider&lt;/th>
&lt;th>pct_out&lt;/th>
&lt;th>institution_type_&lt;/th>
&lt;th>country&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>AMZN US&lt;/th>
&lt;td>Bezos Jeffrey Preston&lt;/td>
&lt;td>937773965.0&lt;/td>
&lt;td>2024-03-04&lt;/td>
&lt;td>Y&lt;/td>
&lt;td>9.01&lt;/td>
&lt;td>Unclassified&lt;/td>
&lt;td>n/a&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>AMZN US&lt;/th>
&lt;td>Vanguard Group Inc/The&lt;/td>
&lt;td>785811114.0&lt;/td>
&lt;td>2024-03-31&lt;/td>
&lt;td>N-P&lt;/td>
&lt;td>7.55&lt;/td>
&lt;td>Investment Advisor&lt;/td>
&lt;td>United States&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>AMZN US&lt;/th>
&lt;td>BlackRock Inc&lt;/td>
&lt;td>630188686.0&lt;/td>
&lt;td>2023-12-31&lt;/td>
&lt;td>N-P&lt;/td>
&lt;td>6.06&lt;/td>
&lt;td>Investment Advisor&lt;/td>
&lt;td>United States&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>AMZN US&lt;/th>
&lt;td>State Street Corp&lt;/td>
&lt;td>351606995.0&lt;/td>
&lt;td>2024-03-31&lt;/td>
&lt;td>N-P&lt;/td>
&lt;td>3.38&lt;/td>
&lt;td>Investment Advisor&lt;/td>
&lt;td>United States&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>AMZN US&lt;/th>
&lt;td>FMR LLC&lt;/td>
&lt;td>325059822.0&lt;/td>
&lt;td>2024-03-31&lt;/td>
&lt;td>N-P&lt;/td>
&lt;td>3.12&lt;/td>
&lt;td>Investment Advisor&lt;/td>
&lt;td>United States&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;h3 id="dividend-data">Dividend Data&lt;/h3>
&lt;p>Dividend data is built in a seperate function.&lt;/p>
&lt;pre>&lt;code class="language-python">help(blp.dividend)
&lt;/code>&lt;/pre>
&lt;pre>&lt;code>Help on function dividend in module xbbg.blp:
dividend(tickers, typ='all', start_date=None, end_date=None, **kwargs) -&amp;gt; pandas.core.frame.DataFrame
Bloomberg dividend / split history
Args:
tickers: list of tickers
typ: dividend adjustment type
`all`: `DVD_Hist_All`
`dvd`: `DVD_Hist`
`split`: `Eqy_DVD_Hist_Splits`
`gross`: `Eqy_DVD_Hist_Gross`
`adjust`: `Eqy_DVD_Adjust_Fact`
`adj_fund`: `Eqy_DVD_Adj_Fund`
`with_amt`: `DVD_Hist_All_with_Amt_Status`
`dvd_amt`: `DVD_Hist_with_Amt_Status`
`gross_amt`: `DVD_Hist_Gross_with_Amt_Stat`
`projected`: `BDVD_Pr_Ex_Dts_DVD_Amts_w_Ann`
start_date: start date
end_date: end date
**kwargs: overrides
Returns:
pd.DataFrame
&lt;/code>&lt;/pre>
&lt;pre>&lt;code class="language-python">blp.dividend('SPY US Equity', start_date='2020').head()
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr style="text-align: right;">
&lt;th>&lt;/th>
&lt;th>dec_date&lt;/th>
&lt;th>ex_date&lt;/th>
&lt;th>rec_date&lt;/th>
&lt;th>pay_date&lt;/th>
&lt;th>dvd_amt&lt;/th>
&lt;th>dvd_freq&lt;/th>
&lt;th>dvd_type&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>SPY US Equity&lt;/th>
&lt;td>2024-03-14&lt;/td>
&lt;td>2024-03-15&lt;/td>
&lt;td>2024-03-18&lt;/td>
&lt;td>2024-04-30&lt;/td>
&lt;td>1.594937&lt;/td>
&lt;td>Quarter&lt;/td>
&lt;td>Income&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>SPY US Equity&lt;/th>
&lt;td>2023-12-14&lt;/td>
&lt;td>2023-12-15&lt;/td>
&lt;td>2023-12-18&lt;/td>
&lt;td>2024-01-31&lt;/td>
&lt;td>1.906073&lt;/td>
&lt;td>Quarter&lt;/td>
&lt;td>Income&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>SPY US Equity&lt;/th>
&lt;td>2023-09-14&lt;/td>
&lt;td>2023-09-15&lt;/td>
&lt;td>2023-09-18&lt;/td>
&lt;td>2023-10-31&lt;/td>
&lt;td>1.583169&lt;/td>
&lt;td>Quarter&lt;/td>
&lt;td>Income&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>SPY US Equity&lt;/th>
&lt;td>2023-06-15&lt;/td>
&lt;td>2023-06-16&lt;/td>
&lt;td>2023-06-20&lt;/td>
&lt;td>2023-07-31&lt;/td>
&lt;td>1.638367&lt;/td>
&lt;td>Quarter&lt;/td>
&lt;td>Income&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>SPY US Equity&lt;/th>
&lt;td>2023-03-16&lt;/td>
&lt;td>2023-03-17&lt;/td>
&lt;td>2023-03-20&lt;/td>
&lt;td>2023-04-28&lt;/td>
&lt;td>1.506204&lt;/td>
&lt;td>Quarter&lt;/td>
&lt;td>Income&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;h3 id="earning-data">Earning Data&lt;/h3>
&lt;p>Earning data is built in a seperate funciton.&lt;/p>
&lt;pre>&lt;code class="language-python">help(blp.earning)
&lt;/code>&lt;/pre>
&lt;pre>&lt;code>Help on function earning in module xbbg.blp:
earning(ticker, by='Geo', typ='Revenue', ccy=None, level=None, **kwargs) -&amp;gt; pandas.core.frame.DataFrame
Earning exposures by Geo or Products
Args:
ticker: ticker name
by: [G(eo), P(roduct)]
typ: type of earning, start with `PG_` in Bloomberg FLDS - default `Revenue`
`Revenue` - Revenue of the company
`Operating_Income` - Operating Income (also named as EBIT) of the company
`Assets` - Assets of the company
`Gross_Profit` - Gross profit of the company
`Capital_Expenditures` - Capital expenditures of the company
ccy: currency of earnings
level: hierarchy level of earnings
Returns:
pd.DataFrame
&lt;/code>&lt;/pre>
&lt;p>But we don&amp;rsquo;t have access to this data. We need to get access to them from WRDS.&lt;/p>
&lt;h2 id="bloomberg-historical-data">Bloomberg Historical Data&lt;/h2>
&lt;pre>&lt;code class="language-python">help(blp.bdh)
&lt;/code>&lt;/pre>
&lt;pre>&lt;code>Help on function bdh in module xbbg.blp:
bdh(tickers, flds=None, start_date=None, end_date='today', adjust=None, **kwargs) -&amp;gt; pandas.core.frame.DataFrame
Bloomberg historical data
Args:
tickers: ticker(s)
flds: field(s)
start_date: start date
end_date: end date - default today
adjust: `all`, `dvd`, `normal`, `abn` (=abnormal), `split`, `-` or None
exact match of above words will adjust for corresponding events
Case 0: `-` no adjustment for dividend or split
Case 1: `dvd` or `normal|abn` will adjust for all dividends except splits
Case 2: `adjust` will adjust for splits and ignore all dividends
Case 3: `all` == `dvd|split` == adjust for all
Case 4: None == Bloomberg default OR use kwargs
**kwargs: overrides
Returns:
pd.DataFrame
&lt;/code>&lt;/pre>
&lt;h3 id="stock-data">Stock Data&lt;/h3>
&lt;pre>&lt;code class="language-python">blp.bdh(
tickers='SHCOMP Index', flds=['high', 'low', 'open', 'last_price'],
start_date='2022-11', end_date='2023', Per='W', Fill='P', Days='A',
).head()
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead tr th {
text-align: left;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th colspan="4" halign="left">SHCOMP Index&lt;/th>
&lt;/tr>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>high&lt;/th>
&lt;th>low&lt;/th>
&lt;th>open&lt;/th>
&lt;th>last_price&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>2022-11-04&lt;/th>
&lt;td>3081.590&lt;/td>
&lt;td>2885.089&lt;/td>
&lt;td>2893.196&lt;/td>
&lt;td>3070.796&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2022-11-11&lt;/th>
&lt;td>3117.742&lt;/td>
&lt;td>3022.851&lt;/td>
&lt;td>3062.859&lt;/td>
&lt;td>3087.292&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2022-11-18&lt;/th>
&lt;td>3145.753&lt;/td>
&lt;td>3074.498&lt;/td>
&lt;td>3100.867&lt;/td>
&lt;td>3097.243&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2022-11-25&lt;/th>
&lt;td>3118.120&lt;/td>
&lt;td>3056.170&lt;/td>
&lt;td>3078.057&lt;/td>
&lt;td>3101.693&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2022-12-02&lt;/th>
&lt;td>3198.409&lt;/td>
&lt;td>3034.705&lt;/td>
&lt;td>3055.290&lt;/td>
&lt;td>3156.144&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>Dividend / Split Adjustment&lt;/p>
&lt;pre>&lt;code class="language-python">pd.concat([
blp.bdh(
'AAPL US Equity', 'Px_Last', '20140605', '20140610',
CshAdjNormal=True, CshAdjAbnormal=True, CapChg=True
).rename(columns={'Px_Last': 'Px_Adj'}),
blp.bdh(
'AAPL US Equity', 'Px_Last', '20140605', '20140610',
CshAdjNormal=False, CshAdjAbnormal=False, CapChg=False
).rename(columns={'Px_Last': 'Px_Raw'}),
], axis=1)
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead tr th {
text-align: left;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th colspan="2" halign="left">AAPL US Equity&lt;/th>
&lt;/tr>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>Px_Adj&lt;/th>
&lt;th>Px_Raw&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>2014-06-05&lt;/th>
&lt;td>20.450&lt;/td>
&lt;td>647.35&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2014-06-06&lt;/th>
&lt;td>20.394&lt;/td>
&lt;td>645.57&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2014-06-09&lt;/th>
&lt;td>20.720&lt;/td>
&lt;td>93.70&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2014-06-10&lt;/th>
&lt;td>20.842&lt;/td>
&lt;td>94.25&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;h3 id="option-data">Option Data&lt;/h3>
&lt;pre>&lt;code class="language-python">blp.bdh('TSLA US Equity',['PX_LAST','IVOL_Delta','VOLUME_TOTAL_CALL'],datetime(2023,8,4),datetime(2023,8,19),
IVOL_DELTA_LEVEL='DELTA_LVL_25',
IVOL_MATURITY='MATURITY_0D',
IVOL_DELTA_PUT_OR_CALL='IVOL_CALL').head()
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead tr th {
text-align: left;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th colspan="3" halign="left">TSLA US Equity&lt;/th>
&lt;/tr>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>PX_LAST&lt;/th>
&lt;th>IVOL_Delta&lt;/th>
&lt;th>VOLUME_TOTAL_CALL&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>2023-08-04&lt;/th>
&lt;td>253.86&lt;/td>
&lt;td>42.4726&lt;/td>
&lt;td>1537802.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2023-08-07&lt;/th>
&lt;td>251.45&lt;/td>
&lt;td>39.5239&lt;/td>
&lt;td>1064559.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2023-08-08&lt;/th>
&lt;td>249.70&lt;/td>
&lt;td>39.6448&lt;/td>
&lt;td>641504.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2023-08-09&lt;/th>
&lt;td>242.19&lt;/td>
&lt;td>41.8794&lt;/td>
&lt;td>841410.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2023-08-10&lt;/th>
&lt;td>245.34&lt;/td>
&lt;td>39.5430&lt;/td>
&lt;td>1102788.0&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;h2 id="bloomberg-intraday-bars">Bloomberg Intraday Bars&lt;/h2>
&lt;p>Function to get previous day&lt;/p>
&lt;pre>&lt;code class="language-python">cur_dt = pd.Timestamp('today', tz='America/New_York').date()
# Range of the last two business days including today
recent = pd.bdate_range(end=cur_dt, periods=2, tz='America/New_York')
# Getting the date just before today which is also a business day
# We convert it to date format to remove any timezone information for simplicity
pre_dt = recent[0].date()
pre_dt
&lt;/code>&lt;/pre>
&lt;pre>&lt;code>datetime.date(2024, 5, 15)
&lt;/code>&lt;/pre>
&lt;pre>&lt;code class="language-python">help(blp.bdib)
&lt;/code>&lt;/pre>
&lt;pre>&lt;code>Help on function bdib in module xbbg.blp:
bdib(ticker: str, dt, session='allday', typ='TRADE', **kwargs) -&amp;gt; pandas.core.frame.DataFrame
Bloomberg intraday bar data
Args:
ticker: ticker name
dt: date to download
session: [allday, day, am, pm, pre, post]
typ: [TRADE, BID, ASK, BID_BEST, ASK_BEST, BEST_BID, BEST_ASK]
**kwargs:
ref: reference ticker or exchange
used as supplement if exchange info is not defined for `ticker`
batch: whether is batch process to download data
log: level of logs
Returns:
pd.DataFrame
&lt;/code>&lt;/pre>
&lt;h3 id="stock-data-1">Stock Data&lt;/h3>
&lt;pre>&lt;code class="language-python">blp.bdib('QQQ US Equity', dt=pre_dt, session='day').tail()
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead tr th {
text-align: left;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th colspan="7" halign="left">QQQ US Equity&lt;/th>
&lt;/tr>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>open&lt;/th>
&lt;th>high&lt;/th>
&lt;th>low&lt;/th>
&lt;th>close&lt;/th>
&lt;th>volume&lt;/th>
&lt;th>num_trds&lt;/th>
&lt;th>value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>2024-05-14 15:55:00-04:00&lt;/th>
&lt;td>446.380&lt;/td>
&lt;td>446.38&lt;/td>
&lt;td>446.290&lt;/td>
&lt;td>446.380&lt;/td>
&lt;td>198977&lt;/td>
&lt;td>1136&lt;/td>
&lt;td>88809112.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:56:00-04:00&lt;/th>
&lt;td>446.382&lt;/td>
&lt;td>446.46&lt;/td>
&lt;td>446.340&lt;/td>
&lt;td>446.380&lt;/td>
&lt;td>281996&lt;/td>
&lt;td>1457&lt;/td>
&lt;td>125880752.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:57:00-04:00&lt;/th>
&lt;td>446.380&lt;/td>
&lt;td>446.45&lt;/td>
&lt;td>446.330&lt;/td>
&lt;td>446.355&lt;/td>
&lt;td>493353&lt;/td>
&lt;td>2235&lt;/td>
&lt;td>220232448.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:58:00-04:00&lt;/th>
&lt;td>446.350&lt;/td>
&lt;td>446.38&lt;/td>
&lt;td>446.275&lt;/td>
&lt;td>446.305&lt;/td>
&lt;td>335184&lt;/td>
&lt;td>1392&lt;/td>
&lt;td>149599264.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:59:00-04:00&lt;/th>
&lt;td>446.305&lt;/td>
&lt;td>446.31&lt;/td>
&lt;td>445.920&lt;/td>
&lt;td>445.930&lt;/td>
&lt;td>1255656&lt;/td>
&lt;td>4408&lt;/td>
&lt;td>560149184.0&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>Use session = &amp;lsquo;allday&amp;rsquo; to get after hour trading data.&lt;/p>
&lt;pre>&lt;code class="language-python">blp.bdib('QQQ US Equity', dt=pre_dt, session='allday').tail()
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead tr th {
text-align: left;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th colspan="7" halign="left">QQQ US Equity&lt;/th>
&lt;/tr>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>open&lt;/th>
&lt;th>high&lt;/th>
&lt;th>low&lt;/th>
&lt;th>close&lt;/th>
&lt;th>volume&lt;/th>
&lt;th>num_trds&lt;/th>
&lt;th>value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>2024-05-14 15:57:00-04:00&lt;/th>
&lt;td>446.380&lt;/td>
&lt;td>446.45&lt;/td>
&lt;td>446.330&lt;/td>
&lt;td>446.355&lt;/td>
&lt;td>493353&lt;/td>
&lt;td>2235&lt;/td>
&lt;td>220232448.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:58:00-04:00&lt;/th>
&lt;td>446.350&lt;/td>
&lt;td>446.38&lt;/td>
&lt;td>446.275&lt;/td>
&lt;td>446.305&lt;/td>
&lt;td>335184&lt;/td>
&lt;td>1392&lt;/td>
&lt;td>149599264.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:59:00-04:00&lt;/th>
&lt;td>446.305&lt;/td>
&lt;td>446.31&lt;/td>
&lt;td>445.920&lt;/td>
&lt;td>445.930&lt;/td>
&lt;td>1255656&lt;/td>
&lt;td>4408&lt;/td>
&lt;td>560149184.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 16:14:00-04:00&lt;/th>
&lt;td>445.930&lt;/td>
&lt;td>445.93&lt;/td>
&lt;td>445.930&lt;/td>
&lt;td>445.930&lt;/td>
&lt;td>0&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 16:29:00-04:00&lt;/th>
&lt;td>445.930&lt;/td>
&lt;td>445.93&lt;/td>
&lt;td>445.930&lt;/td>
&lt;td>445.930&lt;/td>
&lt;td>0&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0.0&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;h3 id="option-data-1">Option Data&lt;/h3>
&lt;pre>&lt;code class="language-python">blp.bdib('SPX US 05/17/24 C5300 Index', dt=pre_dt, session='allday').tail()
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead tr th {
text-align: left;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th colspan="7" halign="left">SPX US 05/17/24 C5300 Index&lt;/th>
&lt;/tr>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>open&lt;/th>
&lt;th>high&lt;/th>
&lt;th>low&lt;/th>
&lt;th>close&lt;/th>
&lt;th>volume&lt;/th>
&lt;th>num_trds&lt;/th>
&lt;th>value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>2024-05-14 15:52:00-04:00&lt;/th>
&lt;td>7.49&lt;/td>
&lt;td>7.49&lt;/td>
&lt;td>7.49&lt;/td>
&lt;td>7.49&lt;/td>
&lt;td>1&lt;/td>
&lt;td>1&lt;/td>
&lt;td>7.49&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:56:00-04:00&lt;/th>
&lt;td>7.30&lt;/td>
&lt;td>7.30&lt;/td>
&lt;td>7.30&lt;/td>
&lt;td>7.30&lt;/td>
&lt;td>2&lt;/td>
&lt;td>2&lt;/td>
&lt;td>14.60&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:57:00-04:00&lt;/th>
&lt;td>7.40&lt;/td>
&lt;td>7.40&lt;/td>
&lt;td>7.40&lt;/td>
&lt;td>7.40&lt;/td>
&lt;td>1&lt;/td>
&lt;td>1&lt;/td>
&lt;td>7.40&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:58:00-04:00&lt;/th>
&lt;td>7.50&lt;/td>
&lt;td>7.50&lt;/td>
&lt;td>7.50&lt;/td>
&lt;td>7.50&lt;/td>
&lt;td>3&lt;/td>
&lt;td>2&lt;/td>
&lt;td>22.50&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:59:00-04:00&lt;/th>
&lt;td>6.87&lt;/td>
&lt;td>6.87&lt;/td>
&lt;td>6.87&lt;/td>
&lt;td>6.87&lt;/td>
&lt;td>2&lt;/td>
&lt;td>1&lt;/td>
&lt;td>13.74&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>Need the ref parameter to adjust&lt;/p>
&lt;pre>&lt;code class="language-python">blp.bdib('AAPL US 05/17/24 C185 Equity', dt=pre_dt, ref='IndexUS').tail()
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead tr th {
text-align: left;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th colspan="7" halign="left">AAPL US 05/17/24 C185 Equity&lt;/th>
&lt;/tr>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>open&lt;/th>
&lt;th>high&lt;/th>
&lt;th>low&lt;/th>
&lt;th>close&lt;/th>
&lt;th>volume&lt;/th>
&lt;th>num_trds&lt;/th>
&lt;th>value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>2024-05-14 15:55:00-04:00&lt;/th>
&lt;td>3.10&lt;/td>
&lt;td>3.13&lt;/td>
&lt;td>3.10&lt;/td>
&lt;td>3.10&lt;/td>
&lt;td>12&lt;/td>
&lt;td>6&lt;/td>
&lt;td>37.23&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:56:00-04:00&lt;/th>
&lt;td>3.15&lt;/td>
&lt;td>3.20&lt;/td>
&lt;td>3.15&lt;/td>
&lt;td>3.20&lt;/td>
&lt;td>17&lt;/td>
&lt;td>8&lt;/td>
&lt;td>54.27&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:57:00-04:00&lt;/th>
&lt;td>3.27&lt;/td>
&lt;td>3.29&lt;/td>
&lt;td>3.25&lt;/td>
&lt;td>3.25&lt;/td>
&lt;td>110&lt;/td>
&lt;td>7&lt;/td>
&lt;td>359.54&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:58:00-04:00&lt;/th>
&lt;td>3.25&lt;/td>
&lt;td>3.27&lt;/td>
&lt;td>3.15&lt;/td>
&lt;td>3.25&lt;/td>
&lt;td>90&lt;/td>
&lt;td>9&lt;/td>
&lt;td>293.30&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:59:00-04:00&lt;/th>
&lt;td>3.20&lt;/td>
&lt;td>3.22&lt;/td>
&lt;td>3.10&lt;/td>
&lt;td>3.10&lt;/td>
&lt;td>65&lt;/td>
&lt;td>11&lt;/td>
&lt;td>205.23&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;pre>&lt;code class="language-python">blp.bdib(ticker='AAPL US 05/17/24 C185 Equity', dt=pre_dt, ref='IndexUS', fields=['delta', 'vega'])
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead tr th {
text-align: left;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th colspan="7" halign="left">AAPL US 05/17/24 C185 Equity&lt;/th>
&lt;/tr>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>open&lt;/th>
&lt;th>high&lt;/th>
&lt;th>low&lt;/th>
&lt;th>close&lt;/th>
&lt;th>volume&lt;/th>
&lt;th>num_trds&lt;/th>
&lt;th>value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>2024-05-14 09:31:00-04:00&lt;/th>
&lt;td>3.77&lt;/td>
&lt;td>3.90&lt;/td>
&lt;td>3.35&lt;/td>
&lt;td>3.35&lt;/td>
&lt;td>881&lt;/td>
&lt;td>66&lt;/td>
&lt;td>3289.60&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 09:32:00-04:00&lt;/th>
&lt;td>3.35&lt;/td>
&lt;td>3.45&lt;/td>
&lt;td>3.35&lt;/td>
&lt;td>3.35&lt;/td>
&lt;td>406&lt;/td>
&lt;td>70&lt;/td>
&lt;td>1388.82&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 09:33:00-04:00&lt;/th>
&lt;td>3.35&lt;/td>
&lt;td>3.50&lt;/td>
&lt;td>3.25&lt;/td>
&lt;td>3.25&lt;/td>
&lt;td>156&lt;/td>
&lt;td>46&lt;/td>
&lt;td>532.71&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 09:34:00-04:00&lt;/th>
&lt;td>3.10&lt;/td>
&lt;td>3.20&lt;/td>
&lt;td>3.05&lt;/td>
&lt;td>3.18&lt;/td>
&lt;td>120&lt;/td>
&lt;td>31&lt;/td>
&lt;td>375.24&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 09:35:00-04:00&lt;/th>
&lt;td>3.30&lt;/td>
&lt;td>3.30&lt;/td>
&lt;td>3.10&lt;/td>
&lt;td>3.26&lt;/td>
&lt;td>78&lt;/td>
&lt;td>31&lt;/td>
&lt;td>250.54&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>...&lt;/th>
&lt;td>...&lt;/td>
&lt;td>...&lt;/td>
&lt;td>...&lt;/td>
&lt;td>...&lt;/td>
&lt;td>...&lt;/td>
&lt;td>...&lt;/td>
&lt;td>...&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:55:00-04:00&lt;/th>
&lt;td>3.10&lt;/td>
&lt;td>3.13&lt;/td>
&lt;td>3.10&lt;/td>
&lt;td>3.10&lt;/td>
&lt;td>12&lt;/td>
&lt;td>6&lt;/td>
&lt;td>37.23&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:56:00-04:00&lt;/th>
&lt;td>3.15&lt;/td>
&lt;td>3.20&lt;/td>
&lt;td>3.15&lt;/td>
&lt;td>3.20&lt;/td>
&lt;td>17&lt;/td>
&lt;td>8&lt;/td>
&lt;td>54.27&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:57:00-04:00&lt;/th>
&lt;td>3.27&lt;/td>
&lt;td>3.29&lt;/td>
&lt;td>3.25&lt;/td>
&lt;td>3.25&lt;/td>
&lt;td>110&lt;/td>
&lt;td>7&lt;/td>
&lt;td>359.54&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:58:00-04:00&lt;/th>
&lt;td>3.25&lt;/td>
&lt;td>3.27&lt;/td>
&lt;td>3.15&lt;/td>
&lt;td>3.25&lt;/td>
&lt;td>90&lt;/td>
&lt;td>9&lt;/td>
&lt;td>293.30&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 15:59:00-04:00&lt;/th>
&lt;td>3.20&lt;/td>
&lt;td>3.22&lt;/td>
&lt;td>3.10&lt;/td>
&lt;td>3.10&lt;/td>
&lt;td>65&lt;/td>
&lt;td>11&lt;/td>
&lt;td>205.23&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>351 rows × 7 columns&lt;/p>
&lt;/div>
&lt;h2 id="bloomberg-intraday-tick-data">Bloomberg Intraday Tick Data&lt;/h2>
&lt;pre>&lt;code class="language-python">help(blp.bdtick)
&lt;/code>&lt;/pre>
&lt;pre>&lt;code>Help on function bdtick in module xbbg.blp:
bdtick(ticker, dt, session='allday', types=None, **kwargs) -&amp;gt; pandas.core.frame.DataFrame
Bloomberg tick data
Args:
ticker: ticker name
dt: date to download
session: [allday, day, am, pm, pre, post]
types: str or list, one or combinations of [
TRADE, AT_TRADE, BID, ASK, MID_PRICE,
BID_BEST, ASK_BEST, BEST_BID, BEST_ASK,
]
Returns:
pd.DataFrame
&lt;/code>&lt;/pre>
&lt;h3 id="stock-tick-level-data">Stock Tick Level Data&lt;/h3>
&lt;pre>&lt;code class="language-python">blp.bdtick('TSLA US Equity', dt=pre_dt).tail()
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead tr th {
text-align: left;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th colspan="5" halign="left">TSLA US Equity&lt;/th>
&lt;/tr>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>typ&lt;/th>
&lt;th>value&lt;/th>
&lt;th>volume&lt;/th>
&lt;th>cond&lt;/th>
&lt;th>exch&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>2024-05-14 09:51:59.977141-04:00&lt;/th>
&lt;td>TRADE&lt;/td>
&lt;td>177.57&lt;/td>
&lt;td>3&lt;/td>
&lt;td>R6,IS,OL&lt;/td>
&lt;td>K&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 09:51:59.979534-04:00&lt;/th>
&lt;td>TRADE&lt;/td>
&lt;td>177.58&lt;/td>
&lt;td>19&lt;/td>
&lt;td>Q,OL&lt;/td>
&lt;td>D&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 09:51:59.980286-04:00&lt;/th>
&lt;td>TRADE&lt;/td>
&lt;td>177.58&lt;/td>
&lt;td>300&lt;/td>
&lt;td>R6,IS&lt;/td>
&lt;td>Z&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 09:51:59.980587-04:00&lt;/th>
&lt;td>TRADE&lt;/td>
&lt;td>177.58&lt;/td>
&lt;td>100&lt;/td>
&lt;td>N&lt;/td>
&lt;td>D&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 09:51:59.986661-04:00&lt;/th>
&lt;td>TRADE&lt;/td>
&lt;td>177.58&lt;/td>
&lt;td>1&lt;/td>
&lt;td>Q,OL&lt;/td>
&lt;td>D&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;pre>&lt;code class="language-python">blp.bdtick('AAPL US Equity', dt=pre_dt).tail()
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead tr th {
text-align: left;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th colspan="5" halign="left">AAPL US Equity&lt;/th>
&lt;/tr>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>typ&lt;/th>
&lt;th>value&lt;/th>
&lt;th>volume&lt;/th>
&lt;th>cond&lt;/th>
&lt;th>exch&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>2024-05-14 16:00:00.519780-04:00&lt;/th>
&lt;td>TRADE&lt;/td>
&lt;td>445.88&lt;/td>
&lt;td>30&lt;/td>
&lt;td>FT,OL&lt;/td>
&lt;td>Q&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 16:00:00.644831-04:00&lt;/th>
&lt;td>TRADE&lt;/td>
&lt;td>445.87&lt;/td>
&lt;td>800&lt;/td>
&lt;td>FT,R6,IS&lt;/td>
&lt;td>P&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 16:00:00.645722-04:00&lt;/th>
&lt;td>TRADE&lt;/td>
&lt;td>445.87&lt;/td>
&lt;td>800&lt;/td>
&lt;td>FT,R6,IS&lt;/td>
&lt;td>P&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 16:00:00.831138-04:00&lt;/th>
&lt;td>TRADE&lt;/td>
&lt;td>445.88&lt;/td>
&lt;td>100&lt;/td>
&lt;td>FT&lt;/td>
&lt;td>Q&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 16:00:00.917392-04:00&lt;/th>
&lt;td>TRADE&lt;/td>
&lt;td>445.93&lt;/td>
&lt;td>1168&lt;/td>
&lt;td>FT,Q,AP&lt;/td>
&lt;td>D&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;h3 id="option-tick-level-data">Option Tick Level Data&lt;/h3>
&lt;pre>&lt;code class="language-python">blp.bdtick('TSLA US 05/17/24 C480 Equity', dt=pre_dt, ref='IndexUS').tail()
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead tr th {
text-align: left;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th colspan="5" halign="left">TSLA US 05/17/24 C480 Equity&lt;/th>
&lt;/tr>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>typ&lt;/th>
&lt;th>value&lt;/th>
&lt;th>volume&lt;/th>
&lt;th>cond&lt;/th>
&lt;th>exch&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>2024-05-14 09:37:16-04:00&lt;/th>
&lt;td>TRADE&lt;/td>
&lt;td>0.01&lt;/td>
&lt;td>10&lt;/td>
&lt;td>ET&lt;/td>
&lt;td>B&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 10:27:44-04:00&lt;/th>
&lt;td>TRADE&lt;/td>
&lt;td>0.01&lt;/td>
&lt;td>1&lt;/td>
&lt;td>ME&lt;/td>
&lt;td>W&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 11:02:07-04:00&lt;/th>
&lt;td>TRADE&lt;/td>
&lt;td>0.01&lt;/td>
&lt;td>1&lt;/td>
&lt;td>ME&lt;/td>
&lt;td>O&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 11:30:13-04:00&lt;/th>
&lt;td>TRADE&lt;/td>
&lt;td>0.01&lt;/td>
&lt;td>2&lt;/td>
&lt;td>ET&lt;/td>
&lt;td>B&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 11:33:13-04:00&lt;/th>
&lt;td>TRADE&lt;/td>
&lt;td>0.01&lt;/td>
&lt;td>48&lt;/td>
&lt;td>ET&lt;/td>
&lt;td>B&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;pre>&lt;code class="language-python">blp.bdtick('SPX US 05/17/24 C5300 Index', dt=pre_dt, types=['TRADE', 'AT_TRADE', 'BID', 'ASK']).tail()
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead tr th {
text-align: left;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th colspan="5" halign="left">SPX US 05/17/24 C5300 Index&lt;/th>
&lt;/tr>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>typ&lt;/th>
&lt;th>value&lt;/th>
&lt;th>volume&lt;/th>
&lt;th>cond&lt;/th>
&lt;th>exch&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>2024-05-14 12:00:00-04:00&lt;/th>
&lt;td>ASK&lt;/td>
&lt;td>3.4&lt;/td>
&lt;td>968&lt;/td>
&lt;td>B&lt;/td>
&lt;td>O&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 12:00:00-04:00&lt;/th>
&lt;td>ASK&lt;/td>
&lt;td>3.4&lt;/td>
&lt;td>943&lt;/td>
&lt;td>B&lt;/td>
&lt;td>O&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 12:00:00-04:00&lt;/th>
&lt;td>ASK&lt;/td>
&lt;td>3.4&lt;/td>
&lt;td>975&lt;/td>
&lt;td>B&lt;/td>
&lt;td>O&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 12:00:00-04:00&lt;/th>
&lt;td>ASK&lt;/td>
&lt;td>3.3&lt;/td>
&lt;td>63&lt;/td>
&lt;td>B&lt;/td>
&lt;td>O&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 12:00:00-04:00&lt;/th>
&lt;td>ASK&lt;/td>
&lt;td>3.4&lt;/td>
&lt;td>1025&lt;/td>
&lt;td>B&lt;/td>
&lt;td>O&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;h3 id="get-more-info-of-options">Get more Info of Options&lt;/h3>
&lt;p>Xbbg Package will not give us greek letter info, so we need to directy use Bloomberg API to get the data. We need to calculate them by ourselves.&lt;/p>
&lt;h1 id="other-useful-piplines">Other Useful Piplines&lt;/h1>
&lt;h2 id="raw-api-1">Raw API&lt;/h2>
&lt;p>Here is an example to use raw Bloomberg API to&lt;/p>
&lt;pre>&lt;code class="language-python"># Create a session
session = blpapi.Session()
if not session.start():
print(&amp;quot;Failed to start session.&amp;quot;)
exit()
if not session.openService(&amp;quot;//blp/refdata&amp;quot;):
print(&amp;quot;Failed to open service.&amp;quot;)
exit()
service = session.getService(&amp;quot;//blp/refdata&amp;quot;)
&lt;/code>&lt;/pre>
&lt;pre>&lt;code class="language-python"># Create a request for intraday data
request = service.createRequest(&amp;quot;IntradayBarRequest&amp;quot;)
request.set(&amp;quot;security&amp;quot;, &amp;quot;SPX US 05/17/24 C5300 Index&amp;quot;) # Update with actual option ticker
request.set(&amp;quot;eventType&amp;quot;, &amp;quot;TRADE&amp;quot;) # Typically TRADE for tick data, or BID/ASK
request.set(&amp;quot;interval&amp;quot;, 60) # Bar interval in minutes, set as needed (e.g., 1 for 1 minute)
# Set the start and end times for the data request
start_time = datetime(2024, 5, 14, 9, 30) # Example: starting at market open
end_time = datetime(2024, 5, 14, 16, 0) # Example: ending at market close
request.set(&amp;quot;startDateTime&amp;quot;, start_time)
request.set(&amp;quot;endDateTime&amp;quot;, end_time)
# Send the request
print(&amp;quot;Sending Request:&amp;quot;, request)
session.sendRequest(request)
&lt;/code>&lt;/pre>
&lt;pre>&lt;code>Sending Request: IntradayBarRequest = {
security = &amp;quot;SPX US 05/17/24 C5300 Index&amp;quot;
eventType = TRADE
interval = 60
startDateTime = 2024-05-14T09:30:00.000
endDateTime = 2024-05-14T16:00:00.000
}
&amp;lt;blpapi.internals.CorrelationId; proxy of &amp;lt;Swig Object of type 'blpapi_CorrelationId_t *' at 0x000002A8A2332CA0&amp;gt; &amp;gt;
&lt;/code>&lt;/pre>
&lt;pre>&lt;code class="language-python">try:
while True:
event = session.nextEvent()
if event.eventType() == blpapi.Event.PARTIAL_RESPONSE or event.eventType() == blpapi.Event.RESPONSE:
for msg in event:
print(msg)
if event.eventType() == blpapi.Event.RESPONSE:
# End the loop when all data has been received
break
finally:
session.stop()
&lt;/code>&lt;/pre>
&lt;pre>&lt;code>CID: {[ valueType=AUTOGEN classId=0 value=16 ]}
RequestId: 0e176c76-e7cf-4633-905f-efbbe85c9844
IntradayBarResponse = {
barData = {
eidData[] = {
}
delayedSecurity = true
barTickData[] = {
barTickData = {
time = 2024-05-14T09:30:00.000
open = 5.300000
high = 5.300000
low = 5.000000
close = 5.000000
volume = 750
numEvents = 19
value = 3906.040000
}
barTickData = {
time = 2024-05-14T10:30:00.000
open = 5.350000
high = 5.440000
low = 5.350000
close = 5.440000
volume = 3
numEvents = 2
value = 16.140000
}
barTickData = {
time = 2024-05-14T11:30:00.000
open = 5.500000
high = 5.900000
low = 5.500000
close = 5.900000
volume = 51
numEvents = 3
value = 280.900000
}
barTickData = {
time = 2024-05-14T12:30:00.000
open = 3.100000
high = 4.210000
low = 3.100000
close = 4.210000
volume = 714
numEvents = 18
value = 2685.810000
}
barTickData = {
time = 2024-05-14T13:30:00.000
open = 4.300000
high = 5.920000
low = 4.300000
close = 5.800000
volume = 332
numEvents = 34
value = 1837.060000
}
barTickData = {
time = 2024-05-14T14:30:00.000
open = 4.900000
high = 4.900000
low = 3.740000
close = 4.500000
volume = 1114
numEvents = 39
value = 4795.790000
}
barTickData = {
time = 2024-05-14T15:30:00.000
open = 4.400000
high = 4.400000
low = 3.430000
close = 3.600000
volume = 205
numEvents = 14
value = 801.300000
}
}
}
}
&lt;/code>&lt;/pre>
&lt;h2 id="vwap-for-intraday-bar-data">VWAP for Intraday Bar Data&lt;/h2>
&lt;pre>&lt;code class="language-python">fx = blp.bdib('JPY Curncy', dt=pre_dt)
jp = pd.concat([
blp.bdib(ticker, dt=pre_dt, session='day')
for ticker in ['7974 JP Equity', '9984 JP Equity']
], axis=1)
jp.tail()
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead tr th {
text-align: left;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th colspan="7" halign="left">7974 JP Equity&lt;/th>
&lt;th colspan="7" halign="left">9984 JP Equity&lt;/th>
&lt;/tr>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>open&lt;/th>
&lt;th>high&lt;/th>
&lt;th>low&lt;/th>
&lt;th>close&lt;/th>
&lt;th>volume&lt;/th>
&lt;th>num_trds&lt;/th>
&lt;th>value&lt;/th>
&lt;th>open&lt;/th>
&lt;th>high&lt;/th>
&lt;th>low&lt;/th>
&lt;th>close&lt;/th>
&lt;th>volume&lt;/th>
&lt;th>num_trds&lt;/th>
&lt;th>value&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>2024-05-15 14:54:00+09:00&lt;/th>
&lt;td>8312.0&lt;/td>
&lt;td>8313.0&lt;/td>
&lt;td>8309.0&lt;/td>
&lt;td>8312.0&lt;/td>
&lt;td>9000&lt;/td>
&lt;td>27&lt;/td>
&lt;td>74797504.0&lt;/td>
&lt;td>8378.0&lt;/td>
&lt;td>8380.0&lt;/td>
&lt;td>8377.0&lt;/td>
&lt;td>8377.0&lt;/td>
&lt;td>11900&lt;/td>
&lt;td>43&lt;/td>
&lt;td>99706496.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-15 14:55:00+09:00&lt;/th>
&lt;td>8312.0&lt;/td>
&lt;td>8312.0&lt;/td>
&lt;td>8309.0&lt;/td>
&lt;td>8309.0&lt;/td>
&lt;td>10000&lt;/td>
&lt;td>30&lt;/td>
&lt;td>83099400.0&lt;/td>
&lt;td>8378.0&lt;/td>
&lt;td>8384.0&lt;/td>
&lt;td>8377.0&lt;/td>
&lt;td>8379.0&lt;/td>
&lt;td>43600&lt;/td>
&lt;td>109&lt;/td>
&lt;td>365335616.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-15 14:56:00+09:00&lt;/th>
&lt;td>8309.0&lt;/td>
&lt;td>8312.0&lt;/td>
&lt;td>8304.0&lt;/td>
&lt;td>8307.0&lt;/td>
&lt;td>24000&lt;/td>
&lt;td>45&lt;/td>
&lt;td>199409104.0&lt;/td>
&lt;td>8379.0&lt;/td>
&lt;td>8382.0&lt;/td>
&lt;td>8377.0&lt;/td>
&lt;td>8381.0&lt;/td>
&lt;td>20000&lt;/td>
&lt;td>73&lt;/td>
&lt;td>167580800.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-15 14:57:00+09:00&lt;/th>
&lt;td>8308.0&lt;/td>
&lt;td>8308.0&lt;/td>
&lt;td>8301.0&lt;/td>
&lt;td>8305.0&lt;/td>
&lt;td>14200&lt;/td>
&lt;td>39&lt;/td>
&lt;td>117900800.0&lt;/td>
&lt;td>8381.0&lt;/td>
&lt;td>8381.0&lt;/td>
&lt;td>8377.0&lt;/td>
&lt;td>8380.0&lt;/td>
&lt;td>19700&lt;/td>
&lt;td>58&lt;/td>
&lt;td>165051808.0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-15 14:58:00+09:00&lt;/th>
&lt;td>8305.0&lt;/td>
&lt;td>8309.0&lt;/td>
&lt;td>8299.0&lt;/td>
&lt;td>8309.0&lt;/td>
&lt;td>42300&lt;/td>
&lt;td>73&lt;/td>
&lt;td>351199072.0&lt;/td>
&lt;td>8378.0&lt;/td>
&lt;td>8379.0&lt;/td>
&lt;td>8369.0&lt;/td>
&lt;td>8372.0&lt;/td>
&lt;td>63600&lt;/td>
&lt;td>78&lt;/td>
&lt;td>532562688.0&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;pre>&lt;code class="language-python">prices = (
jp
.pipe(pipeline.get_series, col='close')
.pipe(pipeline.apply_fx, fx=fx)
.tz_convert('Asia/Tokyo')
)
prices.tail()
&lt;/code>&lt;/pre>
&lt;pre>&lt;code>C:\Users\yzhang3654\AppData\Local\anaconda3\Lib\site-packages\xbbg\pipeline.py:118: FutureWarning: Series.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.
add_fx.iloc[:, -1] = add_fx.iloc[:, -1].fillna(method='pad')
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr style="text-align: right;">
&lt;th>&lt;/th>
&lt;th>7974 JP Equity&lt;/th>
&lt;th>9984 JP Equity&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>2024-05-15 14:54:00+09:00&lt;/th>
&lt;td>53.172979&lt;/td>
&lt;td>53.588792&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-15 14:55:00+09:00&lt;/th>
&lt;td>53.167392&lt;/td>
&lt;td>53.615306&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-15 14:56:00+09:00&lt;/th>
&lt;td>53.151193&lt;/td>
&lt;td>53.624672&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-15 14:57:00+09:00&lt;/th>
&lt;td>53.145197&lt;/td>
&lt;td>53.625136&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-15 14:58:00+09:00&lt;/th>
&lt;td>53.177600&lt;/td>
&lt;td>53.580800&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;pre>&lt;code class="language-python">def vwap(data: pd.DataFrame, fx=None, name=None) -&amp;gt; pd.Series:
return pd.Series({
ticker: (
data[ticker][['close', 'volume']].prod(axis=1).sum()
if fx is None else (
data[ticker].close
.pipe(pipeline.apply_fx, fx)
.close
.mul(data[ticker].volume)
.sum()
)
) / data[ticker].volume.sum()
for ticker in data.columns.get_level_values(0).unique()
}, name=name)
&lt;/code>&lt;/pre>
&lt;p>VWAP in Local Currency&lt;/p>
&lt;pre>&lt;code class="language-python">jp.pipe(vwap, name=jp.index[-1].date())
&lt;/code>&lt;/pre>
&lt;pre>&lt;code>7974 JP Equity 8348.106662
9984 JP Equity 8382.766258
Name: 2024-05-15, dtype: float64
&lt;/code>&lt;/pre>
&lt;p>VWAP in USD&lt;/p>
&lt;pre>&lt;code class="language-python">jp.pipe(vwap, fx=fx, name=jp.index[-1].date())
&lt;/code>&lt;/pre>
&lt;pre>&lt;code>C:\Users\yzhang3654\AppData\Local\anaconda3\Lib\site-packages\xbbg\pipeline.py:118: FutureWarning: Series.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.
add_fx.iloc[:, -1] = add_fx.iloc[:, -1].fillna(method='pad')
C:\Users\yzhang3654\AppData\Local\anaconda3\Lib\site-packages\xbbg\pipeline.py:118: FutureWarning: Series.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.
add_fx.iloc[:, -1] = add_fx.iloc[:, -1].fillna(method='pad')
7974 JP Equity 53.369565
9984 JP Equity 53.595914
Name: 2024-05-15, dtype: float64
&lt;/code>&lt;/pre>
&lt;h2 id="total-traded-volume-for-certain-period">Total Traded Volume for Certain Period&lt;/h2>
&lt;p>Get total tradded volume of certain date between 0:00 to input time.&lt;/p>
&lt;pre>&lt;code class="language-python">jp_hist = pd.concat([
pd.concat([
blp.bdib(ticker, dt=dt, session='day')
for ticker in ['7974 JP Equity', '9984 JP Equity']
], axis=1)
for dt in pd.bdate_range(end='today', periods=10)[:-1]
], sort=False)
unique(jp_hist.index.date)
&lt;/code>&lt;/pre>
&lt;pre>&lt;code>array([datetime.date(2024, 5, 7), datetime.date(2024, 5, 8),
datetime.date(2024, 5, 9), datetime.date(2024, 5, 10),
datetime.date(2024, 5, 13), datetime.date(2024, 5, 14),
datetime.date(2024, 5, 15)], dtype=object)
&lt;/code>&lt;/pre>
&lt;pre>&lt;code class="language-python">def drop_zeros(data: pd.DataFrame) -&amp;gt; pd.DataFrame:
return (
data
.replace(0, np.nan)
.dropna(how='all')
.replace(np.nan, 0)
)
&lt;/code>&lt;/pre>
&lt;pre>&lt;code class="language-python">def traded_volume(data: pd.DataFrame, asof: str) -&amp;gt; pd.DataFrame:
return (
data
.pipe(pipeline.get_series, col='volume')
.between_time('0:00', asof)
.resample('B')
.sum()
.pipe(drop_zeros)
)
&lt;/code>&lt;/pre>
&lt;pre>&lt;code class="language-python">jp_hist.pipe(traded_volume, asof='10:00')
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr style="text-align: right;">
&lt;th>&lt;/th>
&lt;th>7974 JP Equity&lt;/th>
&lt;th>9984 JP Equity&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>2024-05-07 00:00:00+09:00&lt;/th>
&lt;td>1286900&lt;/td>
&lt;td>1996500&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-08 00:00:00+09:00&lt;/th>
&lt;td>5777300&lt;/td>
&lt;td>1111200&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-09 00:00:00+09:00&lt;/th>
&lt;td>2213900&lt;/td>
&lt;td>1464800&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-10 00:00:00+09:00&lt;/th>
&lt;td>3861900&lt;/td>
&lt;td>2657500&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-13 00:00:00+09:00&lt;/th>
&lt;td>1040100&lt;/td>
&lt;td>2537000&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 00:00:00+09:00&lt;/th>
&lt;td>2712600&lt;/td>
&lt;td>5331800&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-15 00:00:00+09:00&lt;/th>
&lt;td>903600&lt;/td>
&lt;td>2267000&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;pre>&lt;code class="language-python">jp_hist.pipe(traded_volume, asof='11:00')
&lt;/code>&lt;/pre>
&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr style="text-align: right;">
&lt;th>&lt;/th>
&lt;th>7974 JP Equity&lt;/th>
&lt;th>9984 JP Equity&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>2024-05-07 00:00:00+09:00&lt;/th>
&lt;td>1950200&lt;/td>
&lt;td>2799900&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-08 00:00:00+09:00&lt;/th>
&lt;td>7407000&lt;/td>
&lt;td>1627400&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-09 00:00:00+09:00&lt;/th>
&lt;td>3055800&lt;/td>
&lt;td>1971500&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-10 00:00:00+09:00&lt;/th>
&lt;td>4686200&lt;/td>
&lt;td>3460500&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-13 00:00:00+09:00&lt;/th>
&lt;td>1627400&lt;/td>
&lt;td>3614300&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-14 00:00:00+09:00&lt;/th>
&lt;td>3468300&lt;/td>
&lt;td>8610400&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2024-05-15 00:00:00+09:00&lt;/th>
&lt;td>1307300&lt;/td>
&lt;td>3429100&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;h2 id="subscription">Subscription&lt;/h2>
&lt;pre>&lt;code class="language-python">async for snap in blp.live(['ESA Index', 'NQA Index'], max_cnt=2):
print(snap)
&lt;/code>&lt;/pre>
&lt;pre>&lt;code>{'TICKER': 'NQA Index', 'FIELD': 'LAST_PRICE', 'MKTDATA_EVENT_TYPE': 'SUMMARY', 'MKTDATA_EVENT_SUBTYPE': 'INITPAINT', 'BID': 18726.75, 'ASK': 18727.25, 'BEST_BID': 18726.75, 'BEST_ASK': 18727.25, 'BID_ALL_SESSION': 18726.75, 'ASK_ALL_SESSION': 18727.25, 'BID_SIZE_ALL_SESSIONS_RT': 2, 'ASK_SIZE_ALL_SESSIONS_RT': 5, 'IND_BID_FLAG': False, 'IND_ASK_FLAG': False, 'ASK_SIZE_TDY': 5, 'BID_SIZE_TDY': 2, 'BID_TDY': 18726.75, 'PRICE_LAST_BID_RT': 18726.75, 'ASK_TDY': 18727.25, 'PRICE_LAST_ASK_RT': 18727.25, 'BID_DIR': -1, 'ASK_DIR': 1, 'BID2': 18726.75, 'ASK2': 18727.25, 'ASK_SIZE': 5, 'BID_SIZE': 2, 'BID_ALL_SESSION_TDY_RT': 18726.75, 'ASK_ALL_SESSION_TDY_RT': 18727.25, 'CURRENT_SESSION_RT': 2, 'PX_OPEN_ALL_WITH_SWITCHOVER_RT': 18693.25, 'PX_CLOSE_ALL_WITH_SWITCHOVER_RT': 18691.75, 'LAST_PRICE_ALL_SESSION_DIR_RT': 1, 'SIMP_LAST_PX_ALL_SESS_DIR_RT': 1, 'ID_BB_SEC_NUM_SRC': 2078932528452, 'LAST_PRICE': 18727.0, 'LAST2_TRADE': 18727.25, 'SIZE_LAST_TRADE': 1, 'LAST_TRADE': 18727.0, 'VOLUME': 23392, 'HIGH': 18738.75, 'LOW': 18687.5, 'OPEN': 18693.25, 'ALL_PRICE_SIZE': 1, 'ALL_PRICE_COND_CODE': 'OR', 'OPEN_TDY': 18693.25, 'PRICE_OPEN_RT': 18693.25, 'VOLUME_TDY': 23392, 'LAST_PRICE_TDY': 18727.0, 'HIGH_TDY': 18738.75, 'PRICE_HIGH_RT': 18738.75, 'LOW_TDY': 18687.5, 'PRICE_LOW_RT': 18687.5, 'RT_OPEN_INTEREST': 250772, 'MID': 18727.0, 'MID_TDY': 18727.0, 'RT_EXCH_MARKET_STATUS': 'ACTV', 'MIN_LIMIT': 17390.0, 'DOWN_LIMIT': 17390.0, 'MAX_LIMIT': 19993.5, 'UP_LIMIT': 19993.5, 'THEO_PRICE': 18693.25, 'RT_TRADING_PERIOD': 'TRAD', 'LAST_ALL_SESSIONS': 18727.0, 'PREV_CLOSE_VALUE_REALTIME': 18691.75, 'TRADING_DT_REALTIME': datetime.date(2024, 5, 16), 'RT_OPEN_INT_DT': datetime.date(2024, 5, 15), 'PREV_TRADING_DT_REALTIME': datetime.date(2024, 5, 15), 'PRICE_CHANGE_1Y_NET_RT': 4716.0, 'PRICE_CHANGE_1Y_PCT_RT': 33.65999984741211, 'CLOSING_PRICE_1Y_AGO_RT': 14011.0, 'PX_SETTLE_ACTUAL_RT': 18691.75, 'OPEN_TRADE_PRICE_REALTIME': 18693.25, 'LOW_PRICE_AM_SESSION': 18228.75, 'LAST_PRICE_AM_SESSION': 18286.0, 'PX_SETTLE_INTRADAY_REALTIME': 18691.75, 'ZERO_BID_PRICE_INDICATOR_RT': False, 'ZERO_ASK_PRICE_INDICATOR_RT': False, 'PX_SETTLE_LAST_DT_RT': datetime.date(2024, 5, 15), 'IN_AUCTION_RT': False, 'RT_API_MACHINE': 'apipubx0@md1p-rr-006', 'PX_HIGH_BID_RT': 18738.5, 'PX_LOW_ASK_RT': 18688.25, 'VOLUME_AM_SESSION_RT': 404413, 'LAST_PRICE_COND_CODE_RT': 'TSUM', 'ALL_PRICE': 18727.0, 'RT_EXCH_TRADE_STATUS': True, 'RT_QUOTE_STATUS': True, 'RT_SIMP_SEC_STATUS': 'TRAD', 'VOLUME_THEO': 0, 'SIZE_LAST_TRADE_TDY': 1, 'MID2': 18727.0, 'MID_DIR': 1, 'RT_PRICING_SOURCE': 'EX', 'OFF_BOOK_VOLUME_REALTIME': 216, 'TRADE_SIZE_ALL_SESSIONS_RT': 1, 'ASK_CHANGE': 32.25, 'BID_CHANGE': 45.5, 'SPREAD_BA': 0.5, 'OPEN_CC_BLOOMBERG_RT': 'ORT', 'PRICE_52_WEEK_HIGH_RT': 18738.75, 'PRICE_52_WEEK_HIGH_DATE_RT': datetime.date(2024, 5, 16), 'PRICE_52_WEEK_LOW_RT': 14537.0, 'PRICE_52_WEEK_LOW_DATE_RT': datetime.date(2023, 10, 26), 'BLOOMBERG_CLOSE_PRICE_RT': 18691.75, 'PRICE_PREVIOUS_CLOSE_RT': 18691.75, 'PRICE_LAST_RT': 18727.0, 'LAST_TRADE_PRICE_TODAY_RT': 18727.0, 'PREVIOUS_TOTAL_VOLUME_RT': 596819, 'HIGH_TRADE_PRICE_RT': 18738.75, 'LOW_TRADE_PRICE_RT': 18687.5, 'SETTLEMENT_TYPE_RT': 'SETT', 'PER_TRADE_VWAP_TURNOVER_RT': 437534703.0, 'PER_TRADE_VWAP_VOLUME_RT': 23372.0, 'PER_TRADE_VWAP_REALTIME': 18720.4648, 'AUCTION_TYPE_REALTIME': 'OPEN', 'TRADING_HALT_REASON_TYPE_RT': 'NONE', 'PREVIOUS_CLOSE_BID_PRICE_RT': 18681.25, 'PREVIOUS_CLOSE_ASK_PRICE_RT': 18695.0, 'LAST_CONTINUOUS_TRADE_PRICE_RT': 18727.0, 'BLOOMBERG_CLOSE_DATE_RT': datetime.date(2024, 5, 15), 'LAST_TRADE_CANCELED_IND_RT': False, 'OPEN_TRADE_PRICE_TODAY_RT': 18693.25, 'HIGH_TRADE_PRICE_TODAY_RT': 18738.75, 'LOW_TRADE_PRICE_TODAY_RT': 18687.5, 'UNADJUSTED_PREV_LAST_PRICE_RT': 18691.75, 'ADJUSTED_PREV_LAST_PRICE_RT': 18691.75, 'BASE_PRICE_ENABLED_RT': False, 'PREVIOUS_BLOOMBERG_CLOSE_PX_RT': 18691.75, 'PREVIOUS_LAST_TRADE_PRICE_RT': 18694.5, 'NORMALIZED_PRICE_REALTIME': 18255.0, 'OFF_BOOK_VOLUME_DATE_RT': datetime.date(2024, 5, 13), 'NUM_TRADES_RT': 16706, 'BLOOMBERG_CLOSE_METHOD_RT': 'SETTLE', 'LAST_TICK_DIRECTION_RT': 3, 'DECIMAL_SETTLEMENT_PRICE_RT': 18691.75, 'CHG_NET_REG_SES_PRV_RG_SES_CL_RT': 35.25, 'CHG_PCT_REG_SES_PRV_RG_SES_CL_RT': 0.18858587344684152, 'EXCHANGE_FIXING_PRICE_RT': 18691.85, 'LAST_FIXING_PRICE_DATE_RT': datetime.date(2024, 5, 15), 'IS_DELAYED_STREAM': True, 'EXCH_CODE_LAST_ALL_SESSION_RT': '', 'LOC_SRC_FOR_LST_TRD_ALL_SESS_RT': '', 'CHG_NET_MTD_RT': 1155.75, 'CHG_PCT_MTD_RT': 6.5775, 'CHG_NET_QTD_RT': 252.0, 'CHG_PCT_QTD_RT': 1.364, 'CHG_NET_YTD_RT': 1495.0, 'CHG_PCT_YTD_RT': 8.6757, 'CHG_NET_1M_RT': 845.75, 'CHG_PCT_1M_RT': 4.7298, 'CHG_NET_3M_RT': 748.5, 'CHG_PCT_3M_RT': 4.1633, 'REALTIME_2_DAY_CHANGE_NET': 312.0, 'REALTIME_2_DAY_CHANGE_PERCENT': 1.6943, 'REALTIME_5_DAY_CHANGE_NET': 512.5, 'REALTIME_5_DAY_CHANGE_PERCENT': 2.8137, 'RT_PX_AS_PCT_INTRADAY_RANGE': 77.0732, 'REALTIME_PERCENT_BID_ASK_SPREAD': 0.0027000000000043656, 'RT_THEORETICAL_PCT_CHG_FROM_LAST': -0.18019999999999925, 'CHG_NET_1D_ALL_FROM_REGULAR_RT': 35.25, 'CHG_PCT_1D_ALL_FROM_REGULAR_RT': 0.1886, 'PX_CHG_NET_1D_ALL_SWITCHOVER_RT': 35.25, 'PX_CHG_PCT_1D_ALL_SWITCHOVER_RT': 0.1886, 'CHG_PCT_VOLUME_REG_SES_CLOSE': 0.0, 'API_RULES_VERSION': 201411210, 'PREV_SES_LAST_PRICE': 18691.75, 'RT_PX_CHG_NET_1D': 35.25, 'RT_PX_CHG_PCT_1D': 0.18860000371932983, 'PRICE_CHANGE_ON_DAY_RT': 35.25, 'NET_CHANGE_ON_DAY_TODAY_RT': 35.25, 'PERCENT_CHANGE_ON_DAY_TODAY_RT': 0.1886, 'LAST_UPDATE_BID_RT': datetime.time(0, 38, 42), 'LAST_UPDATE_ASK_RT': datetime.time(0, 38, 58), 'RT_TIME_OF_TRADE': datetime.time(0, 38, 58), 'TIME': datetime.time(0, 38, 58), 'BID_ASK_TIME': datetime.time(0, 38, 58), 'SES_START': datetime.time(18, 0), 'SES_END': datetime.time(17, 0), 'ACT_TIME_LAST_SETTLE_RECEIVED_RT': datetime.time(19, 0, 16), 'LAST_TRADE_RECEIVED_TIME_RT': datetime.time(0, 38, 58), 'PRICE_LAST_TIME_RT': datetime.time(0, 38, 58), 'BLOOMBERG_CLOSE_TIME_RT': datetime.time(19, 0, 16), 'FIXING_PRICE_TIME_RT': datetime.time(16, 0, 5), 'TIME_AUCTION_CALL_CONCLUSION_RT': datetime.time(17, 59, 30), 'THEORETICAL_TIME_TODAY_RT': datetime.time(17, 59, 56), 'LAST_BID_TIME_TODAY_REALTIME': datetime.time(0, 38, 42, 997000), 'LAST_ASK_TIME_TODAY_REALTIME': datetime.time(0, 38, 58, 848000), 'LAST_PRICE_TIME_TODAY_REALTIME': datetime.time(0, 38, 58, 802000), 'LAST_TRADE_PRICE_TIME_TODAY_RT': datetime.time(0, 38, 58, 802000), 'SUB_SEC_TM_AUCT_CALL_CNCLSN_RT': datetime.time(17, 59, 30), 'LAST_UPDATE_ALL_SESSIONS_RT': datetime.time(0, 38, 58), 'ACTUAL_TM_FIRST_SETTLEMT_RCVD_RT': datetime.time(16, 1, 8)}
{'TICKER': 'ESA Index', 'FIELD': 'LAST_PRICE', 'MKTDATA_EVENT_TYPE': 'SUMMARY', 'MKTDATA_EVENT_SUBTYPE': 'INITPAINT', 'BID': 5340.75, 'ASK': 5341.0, 'BEST_BID': 5340.75, 'BEST_ASK': 5341.0, 'BID_ALL_SESSION': 5340.75, 'ASK_ALL_SESSION': 5341.0, 'BID_SIZE_ALL_SESSIONS_RT': 36, 'ASK_SIZE_ALL_SESSIONS_RT': 45, 'IND_BID_FLAG': False, 'IND_ASK_FLAG': False, 'ASK_SIZE_TDY': 45, 'BID_SIZE_TDY': 36, 'BID_TDY': 5340.75, 'PRICE_LAST_BID_RT': 5340.75, 'ASK_TDY': 5341.0, 'PRICE_LAST_ASK_RT': 5341.0, 'BID_DIR': 1, 'ASK_DIR': 1, 'BID2': 5340.75, 'ASK2': 5341.0, 'ASK_SIZE': 45, 'BID_SIZE': 36, 'BID_ALL_SESSION_TDY_RT': 5340.75, 'ASK_ALL_SESSION_TDY_RT': 5341.0, 'CURRENT_SESSION_RT': 2, 'PX_OPEN_ALL_WITH_SWITCHOVER_RT': 5331.5, 'PX_CLOSE_ALL_WITH_SWITCHOVER_RT': 5333.0, 'LAST_PRICE_ALL_SESSION_DIR_RT': 1, 'SIMP_LAST_PX_ALL_SESS_DIR_RT': 1, 'ID_BB_SEC_NUM_SRC': 2078907673632, 'LAST_PRICE': 5340.75, 'LAST2_TRADE': 5340.75, 'SIZE_LAST_TRADE': 1, 'LAST_TRADE': 5340.75, 'VOLUME': 38843, 'HIGH': 5343.25, 'LOW': 5329.25, 'OPEN': 5331.5, 'ALL_PRICE_SIZE': 1, 'ALL_PRICE_COND_CODE': 'OR', 'OPEN_TDY': 5331.5, 'PRICE_OPEN_RT': 5331.5, 'VOLUME_TDY': 38843, 'LAST_PRICE_TDY': 5340.75, 'HIGH_TDY': 5343.25, 'PRICE_HIGH_RT': 5343.25, 'LOW_TDY': 5329.25, 'PRICE_LOW_RT': 5329.25, 'RT_OPEN_INTEREST': 2098839, 'MID': 5340.88, 'MID_TDY': 5340.88, 'RT_EXCH_MARKET_STATUS': 'ACTV', 'MIN_LIMIT': 4961.5, 'DOWN_LIMIT': 4961.5, 'MAX_LIMIT': 5704.5, 'UP_LIMIT': 5704.5, 'THEO_PRICE': 5331.5, 'RT_TRADING_PERIOD': 'TRAD', 'LAST_ALL_SESSIONS': 5340.75, 'PREV_CLOSE_VALUE_REALTIME': 5333.0, 'TRADING_DT_REALTIME': datetime.date(2024, 5, 16), 'RT_OPEN_INT_DT': datetime.date(2024, 5, 15), 'PREV_TRADING_DT_REALTIME': datetime.date(2024, 5, 15), 'PRICE_CHANGE_1Y_NET_RT': 1053.75, 'PRICE_CHANGE_1Y_PCT_RT': 24.579999923706055, 'CLOSING_PRICE_1Y_AGO_RT': 4287.0, 'PX_SETTLE_ACTUAL_RT': 5333.0, 'OPEN_TRADE_PRICE_REALTIME': 5331.5, 'LOW_PRICE_AM_SESSION': 5241.75, 'LAST_PRICE_AM_SESSION': 5243.75, 'PX_SETTLE_INTRADAY_REALTIME': 5333.0, 'ZERO_BID_PRICE_INDICATOR_RT': False, 'ZERO_ASK_PRICE_INDICATOR_RT': False, 'PX_SETTLE_LAST_DT_RT': datetime.date(2024, 5, 15), 'IN_AUCTION_RT': False, 'RT_API_MACHINE': 'apipubx0@md1p-rr-004', 'PX_HIGH_BID_RT': 5343.0, 'PX_LOW_ASK_RT': 5329.25, 'VOLUME_AM_SESSION_RT': 3585, 'LAST_PRICE_COND_CODE_RT': 'TSUM', 'BLOCK_TRADE_ACCUM_VOLUME_RT': 67, 'ALL_PRICE': 5340.75, 'RT_EXCH_TRADE_STATUS': True, 'RT_QUOTE_STATUS': True, 'RT_SIMP_SEC_STATUS': 'TRAD', 'VOLUME_THEO': 0, 'SIZE_LAST_TRADE_TDY': 1, 'MID2': 5340.88, 'MID_DIR': 1, 'RT_PRICING_SOURCE': 'EX', 'OFF_BOOK_VOLUME_REALTIME': 67, 'TRADE_SIZE_ALL_SESSIONS_RT': 1, 'ASK_CHANGE': 10.75, 'BID_CHANGE': 10.75, 'SPREAD_BA': 0.25, 'OPEN_CC_BLOOMBERG_RT': 'ORT', 'PRICE_52_WEEK_HIGH_RT': 5343.25, 'PRICE_52_WEEK_HIGH_DATE_RT': datetime.date(2024, 5, 16), 'PRICE_52_WEEK_LOW_RT': 4218.5, 'PRICE_52_WEEK_LOW_DATE_RT': datetime.date(2023, 10, 27), 'BLOOMBERG_CLOSE_PRICE_RT': 5333.0, 'PRICE_PREVIOUS_CLOSE_RT': 5333.0, 'PRICE_LAST_RT': 5340.75, 'LAST_TRADE_PRICE_TODAY_RT': 5340.75, 'PREVIOUS_TOTAL_VOLUME_RT': 1332702, 'HIGH_TRADE_PRICE_RT': 5343.25, 'LOW_TRADE_PRICE_RT': 5329.25, 'SETTLEMENT_TYPE_RT': 'SETT', 'PER_TRADE_VWAP_TURNOVER_RT': 206834873.25, 'PER_TRADE_VWAP_VOLUME_RT': 38747.0, 'PER_TRADE_VWAP_REALTIME': 5338.0874, 'AUCTION_TYPE_REALTIME': 'OPEN', 'TRADING_HALT_REASON_TYPE_RT': 'NONE', 'PREVIOUS_CLOSE_BID_PRICE_RT': 5330.0, 'PREVIOUS_CLOSE_ASK_PRICE_RT': 5330.25, 'LAST_CONTINUOUS_TRADE_PRICE_RT': 5340.75, 'LAST_OFF_BOOK_TRADE_PRICE_RT': 5340.0, 'BLOOMBERG_CLOSE_DATE_RT': datetime.date(2024, 5, 15), 'LAST_TRADE_CANCELED_IND_RT': False, 'OPEN_TRADE_PRICE_TODAY_RT': 5331.5, 'HIGH_TRADE_PRICE_TODAY_RT': 5343.25, 'LOW_TRADE_PRICE_TODAY_RT': 5329.25, 'UNADJUSTED_PREV_LAST_PRICE_RT': 5333.0, 'ADJUSTED_PREV_LAST_PRICE_RT': 5333.0, 'BASE_PRICE_ENABLED_RT': False, 'PREVIOUS_BLOOMBERG_CLOSE_PX_RT': 5333.0, 'PREVIOUS_LAST_TRADE_PRICE_RT': 5330.25, 'NORMALIZED_PRICE_REALTIME': 5243.75, 'OFF_BOOK_VOLUME_TODAY_RT': 67, 'OFF_BOOK_VOLUME_DATE_RT': datetime.date(2024, 5, 14), 'NUM_TRADES_RT': 14153, 'BLOOMBERG_CLOSE_METHOD_RT': 'SETTLE', 'LAST_TICK_DIRECTION_RT': 2, 'DECIMAL_SETTLEMENT_PRICE_RT': 5333.0, 'CHG_NET_REG_SES_PRV_RG_SES_CL_RT': 7.75, 'CHG_PCT_REG_SES_PRV_RG_SES_CL_RT': 0.14532158259891245, 'EXCHANGE_FIXING_PRICE_RT': 5333.05, 'LAST_FIXING_PRICE_DATE_RT': datetime.date(2024, 5, 15), 'IS_DELAYED_STREAM': True, 'EXCH_CODE_LAST_ALL_SESSION_RT': '', 'LOC_SRC_FOR_LST_TRD_ALL_SESS_RT': '', 'CHG_NET_MTD_RT': 273.75, 'CHG_PCT_MTD_RT': 5.4026, 'CHG_NET_QTD_RT': 32.25, 'CHG_PCT_QTD_RT': 0.6075, 'CHG_NET_YTD_RT': 469.25, 'CHG_PCT_YTD_RT': 9.6326, 'CHG_NET_1M_RT': 248.25, 'CHG_PCT_1M_RT': 4.8748, 'CHG_NET_3M_RT': 262.0, 'CHG_PCT_3M_RT': 5.1587, 'REALTIME_2_DAY_CHANGE_NET': 71.25, 'REALTIME_2_DAY_CHANGE_PERCENT': 1.3521, 'REALTIME_5_DAY_CHANGE_NET': 101.75, 'REALTIME_5_DAY_CHANGE_PERCENT': 1.9422, 'RT_PX_AS_PCT_INTRADAY_RANGE': 82.1429, 'REALTIME_PERCENT_BID_ASK_SPREAD': 0.004699999999999704, 'RT_THEORETICAL_PCT_CHG_FROM_LAST': -0.17319999999999425, 'CHG_NET_1D_ALL_FROM_REGULAR_RT': 7.75, 'CHG_PCT_1D_ALL_FROM_REGULAR_RT': 0.1453, 'PX_CHG_NET_1D_ALL_SWITCHOVER_RT': 7.75, 'PX_CHG_PCT_1D_ALL_SWITCHOVER_RT': 0.1453, 'CHG_PCT_VOLUME_REG_SES_CLOSE': 0.0, 'API_RULES_VERSION': 201411210, 'PREV_SES_LAST_PRICE': 5333.0, 'RT_PX_CHG_NET_1D': 7.75, 'RT_PX_CHG_PCT_1D': 0.1453000009059906, 'PRICE_CHANGE_ON_DAY_RT': 7.75, 'NET_CHANGE_ON_DAY_TODAY_RT': 7.75, 'PERCENT_CHANGE_ON_DAY_TODAY_RT': 0.1453, 'LAST_UPDATE_BID_RT': datetime.time(0, 38, 51), 'LAST_UPDATE_ASK_RT': datetime.time(0, 38, 51), 'RT_TIME_OF_TRADE': datetime.time(0, 38, 51), 'TIME': datetime.time(0, 38, 51), 'BID_ASK_TIME': datetime.time(0, 38, 51), 'SES_START': datetime.time(18, 0), 'SES_END': datetime.time(17, 0), 'ACT_TIME_LAST_SETTLE_RECEIVED_RT': datetime.time(19, 0), 'LAST_TRADE_RECEIVED_TIME_RT': datetime.time(0, 38, 51), 'PRICE_LAST_TIME_RT': datetime.time(0, 38, 51), 'BLOOMBERG_CLOSE_TIME_RT': datetime.time(19, 0), 'FIXING_PRICE_TIME_RT': datetime.time(16, 0, 5), 'TIME_AUCTION_CALL_CONCLUSION_RT': datetime.time(17, 59, 30), 'THEORETICAL_TIME_TODAY_RT': datetime.time(17, 59, 59), 'LAST_BID_TIME_TODAY_REALTIME': datetime.time(0, 38, 51, 158000), 'LAST_ASK_TIME_TODAY_REALTIME': datetime.time(0, 38, 51, 130000), 'LAST_PRICE_TIME_TODAY_REALTIME': datetime.time(0, 38, 51, 155000), 'LAST_TRADE_PRICE_TIME_TODAY_RT': datetime.time(0, 38, 51, 155000), 'SUB_SEC_TM_AUCT_CALL_CNCLSN_RT': datetime.time(17, 59, 30), 'LAST_UPDATE_ALL_SESSIONS_RT': datetime.time(0, 38, 51), 'ACTUAL_TM_FIRST_SETTLEMT_RCVD_RT': datetime.time(16, 0, 58)}
{'TICKER': 'NQA Index', 'FIELD': 'LAST_PRICE', 'MKTDATA_EVENT_TYPE': 'SUMMARY', 'MKTDATA_EVENT_SUBTYPE': 'INITPAINT', 'BID': 18726.75, 'ASK': 18727.25, 'BEST_BID': 18726.75, 'BEST_ASK': 18727.25, 'BID_ALL_SESSION': 18726.75, 'ASK_ALL_SESSION': 18727.25, 'BID_SIZE_ALL_SESSIONS_RT': 2, 'ASK_SIZE_ALL_SESSIONS_RT': 5, 'IND_BID_FLAG': False, 'IND_ASK_FLAG': False, 'ASK_SIZE_TDY': 5, 'BID_SIZE_TDY': 2, 'BID_TDY': 18726.75, 'PRICE_LAST_BID_RT': 18726.75, 'ASK_TDY': 18727.25, 'PRICE_LAST_ASK_RT': 18727.25, 'BID_DIR': -1, 'ASK_DIR': 1, 'BID2': 18726.75, 'ASK2': 18727.25, 'ASK_SIZE': 5, 'BID_SIZE': 2, 'BID_ALL_SESSION_TDY_RT': 18726.75, 'ASK_ALL_SESSION_TDY_RT': 18727.25, 'PX_OPEN_ALL_WITH_SWITCHOVER_RT': 18693.25, 'PX_CLOSE_ALL_WITH_SWITCHOVER_RT': 18691.75, 'LAST_PRICE_ALL_SESSION_DIR_RT': 1, 'ID_BB_SEC_NUM_SRC': 2078932528452, 'LAST_PRICE': 18727.0, 'LAST2_TRADE': 18727.25, 'SIZE_LAST_TRADE': 1, 'LAST_TRADE': 18727.0, 'VOLUME': 23392, 'HIGH': 18738.75, 'LOW': 18687.5, 'OPEN': 18693.25, 'ALL_PRICE_SIZE': 1, 'ALL_PRICE_COND_CODE': 'OR', 'OPEN_TDY': 18693.25, 'PRICE_OPEN_RT': 18693.25, 'VOLUME_TDY': 23392, 'LAST_PRICE_TDY': 18727.0, 'HIGH_TDY': 18738.75, 'PRICE_HIGH_RT': 18738.75, 'LOW_TDY': 18687.5, 'PRICE_LOW_RT': 18687.5, 'RT_OPEN_INTEREST': 250772, 'MID': 18727.0, 'MID_TDY': 18727.0, 'RT_EXCH_MARKET_STATUS': 'ACTV', 'MIN_LIMIT': 17390.0, 'DOWN_LIMIT': 17390.0, 'MAX_LIMIT': 19993.5, 'UP_LIMIT': 19993.5, 'THEO_PRICE': 18693.25, 'RT_TRADING_PERIOD': 'TRAD', 'LAST_ALL_SESSIONS': 18727.0, 'PREV_CLOSE_VALUE_REALTIME': 18691.75, 'TRADING_DT_REALTIME': datetime.date(2024, 5, 16), 'RT_OPEN_INT_DT': datetime.date(2024, 5, 15), 'PREV_TRADING_DT_REALTIME': datetime.date(2024, 5, 15), 'PRICE_CHANGE_1Y_NET_RT': 4716.0, 'PRICE_CHANGE_1Y_PCT_RT': 33.65999984741211, 'CLOSING_PRICE_1Y_AGO_RT': 14011.0, 'PX_SETTLE_ACTUAL_RT': 18691.75, 'OPEN_TRADE_PRICE_REALTIME': 18693.25, 'LOW_PRICE_AM_SESSION': 18228.75, 'LAST_PRICE_AM_SESSION': 18286.0, 'PX_SETTLE_INTRADAY_REALTIME': 18691.75, 'ZERO_BID_PRICE_INDICATOR_RT': False, 'ZERO_ASK_PRICE_INDICATOR_RT': False, 'PX_SETTLE_LAST_DT_RT': datetime.date(2024, 5, 15), 'IN_AUCTION_RT': False, 'RT_API_MACHINE': 'apipubx0@md1p-rr-006', 'PX_HIGH_BID_RT': 18738.5, 'PX_LOW_ASK_RT': 18688.25, 'VOLUME_AM_SESSION_RT': 404413, 'LAST_PRICE_COND_CODE_RT': 'TSUM', 'ALL_PRICE': 18727.0, 'RT_EXCH_TRADE_STATUS': True, 'RT_QUOTE_STATUS': True, 'RT_SIMP_SEC_STATUS': 'TRAD', 'VOLUME_THEO': 0, 'SIZE_LAST_TRADE_TDY': 1, 'MID2': 18727.0, 'MID_DIR': 1, 'RT_PRICING_SOURCE': 'EX', 'OFF_BOOK_VOLUME_REALTIME': 216, 'TRADE_SIZE_ALL_SESSIONS_RT': 1, 'ASK_CHANGE': 32.25, 'BID_CHANGE': 45.5, 'SPREAD_BA': 0.5, 'OPEN_CC_BLOOMBERG_RT': 'ORT', 'PRICE_52_WEEK_HIGH_RT': 18738.75, 'PRICE_52_WEEK_HIGH_DATE_RT': datetime.date(2024, 5, 16), 'PRICE_52_WEEK_LOW_RT': 14537.0, 'PRICE_52_WEEK_LOW_DATE_RT': datetime.date(2023, 10, 26), 'BLOOMBERG_CLOSE_PRICE_RT': 18691.75, 'PRICE_PREVIOUS_CLOSE_RT': 18691.75, 'PRICE_LAST_RT': 18727.0, 'LAST_TRADE_PRICE_TODAY_RT': 18727.0, 'PREVIOUS_TOTAL_VOLUME_RT': 596819, 'HIGH_TRADE_PRICE_RT': 18738.75, 'LOW_TRADE_PRICE_RT': 18687.5, 'SETTLEMENT_TYPE_RT': 'SETT', 'PER_TRADE_VWAP_TURNOVER_RT': 437534703.0, 'PER_TRADE_VWAP_VOLUME_RT': 23372.0, 'PER_TRADE_VWAP_REALTIME': 18720.4648, 'AUCTION_TYPE_REALTIME': 'OPEN', 'TRADING_HALT_REASON_TYPE_RT': 'NONE', 'PREVIOUS_CLOSE_BID_PRICE_RT': 18681.25, 'PREVIOUS_CLOSE_ASK_PRICE_RT': 18695.0, 'LAST_CONTINUOUS_TRADE_PRICE_RT': 18727.0, 'BLOOMBERG_CLOSE_DATE_RT': datetime.date(2024, 5, 15), 'LAST_TRADE_CANCELED_IND_RT': False, 'OPEN_TRADE_PRICE_TODAY_RT': 18693.25, 'HIGH_TRADE_PRICE_TODAY_RT': 18738.75, 'LOW_TRADE_PRICE_TODAY_RT': 18687.5, 'UNADJUSTED_PREV_LAST_PRICE_RT': 18691.75, 'ADJUSTED_PREV_LAST_PRICE_RT': 18691.75, 'BASE_PRICE_ENABLED_RT': False, 'PREVIOUS_BLOOMBERG_CLOSE_PX_RT': 18691.75, 'PREVIOUS_LAST_TRADE_PRICE_RT': 18694.5, 'NORMALIZED_PRICE_REALTIME': 18255.0, 'OFF_BOOK_VOLUME_DATE_RT': datetime.date(2024, 5, 13), 'NUM_TRADES_RT': 16706, 'BLOOMBERG_CLOSE_METHOD_RT': 'SETTLE', 'LAST_TICK_DIRECTION_RT': 3, 'DECIMAL_SETTLEMENT_PRICE_RT': 18691.75, 'CHG_NET_REG_SES_PRV_RG_SES_CL_RT': 35.25, 'CHG_PCT_REG_SES_PRV_RG_SES_CL_RT': 0.18858587344684152, 'EXCHANGE_FIXING_PRICE_RT': 18691.85, 'LAST_FIXING_PRICE_DATE_RT': datetime.date(2024, 5, 15), 'ORDER_IMB_BUY_VOLUME': None, 'IMBALANCE_SELL': None, 'SETTLMNT_PX_ALT_NOTTN_METHOD_RT': None, 'IMBALANCE_BUY': None, 'SETTLMNT_PX_ALTRNTVE_NOTTN_RT': None, 'INDICATIVE_NEAR': None, 'IBOR_FALLBCK_ACCRUAL_END_DATE_RT': None, 'ORDER_IMB_SELL_VOLUME': None, 'IBOR_FALLBCK_ACCRL_START_DATE_RT': None, 'IBOR_FALLBCK_DATE_FOR_LAST_PX_RT': None, 'MIN_CROSS_ORDER_QUANTITY_RT': None, 'IBOR_FALLBCK_CALCLTN_DATE_RT': None, 'IS_DELAYED_STREAM': True, 'EXCH_CODE_LAST_ALL_SESSION_RT': '', 'LOC_SRC_FOR_LST_TRD_ALL_SESS_RT': '', 'CHG_NET_MTD_RT': 1155.75, 'CHG_PCT_MTD_RT': 6.5775, 'CHG_NET_QTD_RT': 252.0, 'CHG_PCT_QTD_RT': 1.364, 'CHG_NET_YTD_RT': 1495.0, 'CHG_PCT_YTD_RT': 8.6757, 'CHG_NET_1M_RT': 845.75, 'CHG_PCT_1M_RT': 4.7298, 'CHG_NET_3M_RT': 748.5, 'CHG_PCT_3M_RT': 4.1633, 'REALTIME_2_DAY_CHANGE_NET': 312.0, 'REALTIME_2_DAY_CHANGE_PERCENT': 1.6943, 'REALTIME_5_DAY_CHANGE_NET': 512.5, 'REALTIME_5_DAY_CHANGE_PERCENT': 2.8137, 'RT_PX_AS_PCT_INTRADAY_RANGE': 77.0732, 'REALTIME_PERCENT_BID_ASK_SPREAD': 0.0027000000000043656, 'RT_THEORETICAL_PCT_CHG_FROM_LAST': -0.18019999999999925, 'CHG_NET_1D_ALL_FROM_REGULAR_RT': 35.25, 'CHG_PCT_1D_ALL_FROM_REGULAR_RT': 0.1886, 'PX_CHG_NET_1D_ALL_SWITCHOVER_RT': 35.25, 'PX_CHG_PCT_1D_ALL_SWITCHOVER_RT': 0.1886, 'CHG_PCT_VOLUME_REG_SES_CLOSE': 0.0, 'API_RULES_VERSION': 201411210, 'PREV_SES_LAST_PRICE': 18691.75, 'RT_PX_CHG_NET_1D': 35.25, 'RT_PX_CHG_PCT_1D': 0.18860000371932983, 'PRICE_CHANGE_ON_DAY_RT': 35.25, 'NET_CHANGE_ON_DAY_TODAY_RT': 35.25, 'PERCENT_CHANGE_ON_DAY_TODAY_RT': 0.1886, 'LAST_UPDATE_BID_RT': datetime.time(0, 38, 42), 'LAST_UPDATE_ASK_RT': datetime.time(0, 38, 58), 'RT_TIME_OF_TRADE': datetime.time(0, 38, 58), 'TIME': datetime.time(0, 38, 58), 'BID_ASK_TIME': datetime.time(0, 38, 58), 'SES_START': datetime.time(18, 0), 'SES_END': datetime.time(17, 0), 'ACT_TIME_LAST_SETTLE_RECEIVED_RT': datetime.time(19, 0, 16), 'LAST_TRADE_RECEIVED_TIME_RT': datetime.time(0, 38, 58), 'PRICE_LAST_TIME_RT': datetime.time(0, 38, 58), 'BLOOMBERG_CLOSE_TIME_RT': datetime.time(19, 0, 16), 'FIXING_PRICE_TIME_RT': datetime.time(16, 0, 5), 'TIME_AUCTION_CALL_CONCLUSION_RT': datetime.time(17, 59, 30), 'THEORETICAL_TIME_TODAY_RT': datetime.time(17, 59, 56), 'LAST_BID_TIME_TODAY_REALTIME': datetime.time(0, 38, 42, 997000), 'LAST_ASK_TIME_TODAY_REALTIME': datetime.time(0, 38, 58, 848000), 'LAST_PRICE_TIME_TODAY_REALTIME': datetime.time(0, 38, 58, 802000), 'LAST_TRADE_PRICE_TIME_TODAY_RT': datetime.time(0, 38, 58, 802000), 'SUB_SEC_TM_AUCT_CALL_CNCLSN_RT': datetime.time(17, 59, 30), 'LAST_UPDATE_ALL_SESSIONS_RT': datetime.time(0, 38, 58), 'ACTUAL_TM_FIRST_SETTLEMT_RCVD_RT': datetime.time(16, 1, 8)}
&lt;/code>&lt;/pre>
&lt;pre>&lt;code class="language-python">
&lt;/code>&lt;/pre>
&lt;h1 id="colab-link">Colab Link&lt;/h1>
&lt;p>This post was created with Colab. The orginal files can be found at &lt;a href="https://colab.research.google.com/drive/1PAGHVgH5Hp2MjuEtFeYUEW5GxIsULX7g?usp=sharing" target="_blank" rel="noopener">https://colab.research.google.com/drive/1PAGHVgH5Hp2MjuEtFeYUEW5GxIsULX7g?usp=sharing&lt;/a>&lt;/p></description></item></channel></rss>