Skip to content

Instantly share code, notes, and snippets.

@capm
Last active July 1, 2024 07:45
Show Gist options
  • Save capm/3ff46924a5e50e9fe7687d91a7f700e8 to your computer and use it in GitHub Desktop.
Save capm/3ff46924a5e50e9fe7687d91a7f700e8 to your computer and use it in GitHub Desktop.
Bloomberg and xbbg python library example
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Formatting"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 1;\n",
" var nbb_formatted_code = \"%load_ext nb_black\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%load_ext nb_black"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Import libraries"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 2;\n",
" var nbb_formatted_code = \"# Data\\nimport pandas as pd\\nimport numpy as np\\n\\n# Date\\nfrom datetime import date\\n\\n# Bloomberg\\nfrom xbbg import blp\\n\\n# Graphs\\nimport matplotlib.pyplot as plt\\n\\n%matplotlib inline\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Data\n",
"import pandas as pd\n",
"import numpy as np\n",
"\n",
"# Date\n",
"from datetime import date\n",
"\n",
"# Bloomberg\n",
"from xbbg import blp\n",
"\n",
"# Graphs\n",
"import matplotlib.pyplot as plt\n",
"\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We are going to download the yield curve for the US and Peru. On your Bloomberg terminal `YCGT0025 Index` and `YCGT0361 Index` are the yield curves indexes for US and Peru, respectively. With the `bdp` we ask for the `NAME` of the indexes."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>name</th>\n",
" </tr>\n",
" <tr>\n",
" <th>ticker</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>YCGT0025 Index</td>\n",
" <td>US Treasury Actives Curve</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0361 Index</td>\n",
" <td>PEN Peru Sovereign Curve</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" name\n",
"ticker \n",
"YCGT0025 Index US Treasury Actives Curve\n",
"YCGT0361 Index PEN Peru Sovereign Curve"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 3;\n",
" var nbb_formatted_code = \"blp.bdp([\\\"YCGT0025 Index\\\", \\\"YCGT0361 Index\\\"], \\\"NAME\\\")\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"blp.bdp([\"YCGT0025 Index\", \"YCGT0361 Index\"], \"NAME\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So now we are going to get the components of each index. Using `bds` command and with the `INDX_MEMBERS` field from Bloomberg."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 4;\n",
" var nbb_formatted_code = \"# Securities for the US Treasury Actives Curve\\nYC_US = blp.bds(\\\"YCGT0025 Index\\\", \\\"INDX_MEMBERS\\\")\\n# Securities for the PEN Peru Sovereign Curve\\nYC_Peru = blp.bds(\\\"YCGT0361 Index\\\", \\\"INDX_MEMBERS\\\")\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Securities for the US Treasury Actives Curve\n",
"YC_US = blp.bds(\"YCGT0025 Index\", \"INDX_MEMBERS\")\n",
"# Securities for the PEN Peru Sovereign Curve\n",
"YC_Peru = blp.bds(\"YCGT0361 Index\", \"INDX_MEMBERS\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Securities for the american yield curve."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>member_ticker_and_exchange_code</th>\n",
" </tr>\n",
" <tr>\n",
" <th>ticker</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>YCGT0025 Index</td>\n",
" <td>912796WA Govt</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0025 Index</td>\n",
" <td>912796WE Govt</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0025 Index</td>\n",
" <td>912796SX Govt</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0025 Index</td>\n",
" <td>912796TL Govt</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0025 Index</td>\n",
" <td>912796TJ Govt</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0025 Index</td>\n",
" <td>912828YC Govt</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0025 Index</td>\n",
" <td>912828YF Govt</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0025 Index</td>\n",
" <td>912828YE Govt</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0025 Index</td>\n",
" <td>912828YD Govt</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0025 Index</td>\n",
" <td>912828YB Govt</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0025 Index</td>\n",
" <td>912810SJ Govt</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" member_ticker_and_exchange_code\n",
"ticker \n",
"YCGT0025 Index 912796WA Govt\n",
"YCGT0025 Index 912796WE Govt\n",
"YCGT0025 Index 912796SX Govt\n",
"YCGT0025 Index 912796TL Govt\n",
"YCGT0025 Index 912796TJ Govt\n",
"YCGT0025 Index 912828YC Govt\n",
"YCGT0025 Index 912828YF Govt\n",
"YCGT0025 Index 912828YE Govt\n",
"YCGT0025 Index 912828YD Govt\n",
"YCGT0025 Index 912828YB Govt\n",
"YCGT0025 Index 912810SJ Govt"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 5;\n",
" var nbb_formatted_code = \"YC_US\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"YC_US"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Securities for the peruvian yield curve."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>member_ticker_and_exchange_code</th>\n",
" </tr>\n",
" <tr>\n",
" <th>ticker</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>YCGT0361 Index</td>\n",
" <td>EF025269 Corp</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0361 Index</td>\n",
" <td>EJ254711 Corp</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0361 Index</td>\n",
" <td>EK579960 Corp</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0361 Index</td>\n",
" <td>EF397255 Corp</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0361 Index</td>\n",
" <td>QZ744509 Corp</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0361 Index</td>\n",
" <td>AV961092 Corp</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0361 Index</td>\n",
" <td>AO400864 Corp</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0361 Index</td>\n",
" <td>EG665000 Corp</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0361 Index</td>\n",
" <td>EI129494 Corp</td>\n",
" </tr>\n",
" <tr>\n",
" <td>YCGT0361 Index</td>\n",
" <td>EK380738 Corp</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" member_ticker_and_exchange_code\n",
"ticker \n",
"YCGT0361 Index EF025269 Corp\n",
"YCGT0361 Index EJ254711 Corp\n",
"YCGT0361 Index EK579960 Corp\n",
"YCGT0361 Index EF397255 Corp\n",
"YCGT0361 Index QZ744509 Corp\n",
"YCGT0361 Index AV961092 Corp\n",
"YCGT0361 Index AO400864 Corp\n",
"YCGT0361 Index EG665000 Corp\n",
"YCGT0361 Index EI129494 Corp\n",
"YCGT0361 Index EK380738 Corp"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 6;\n",
" var nbb_formatted_code = \"YC_Peru\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"YC_Peru"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we get the yield (`YLD_YTM_ASK`), the name (`SECURITY NAME`), and the maturity (`MATURITY`) of each point of the yield curve that we got in the previous step, using the `blp` command."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 7;\n",
" var nbb_formatted_code = \"# US Treasury Actives Curve\\nYC_US_VAL = blp.bdp(\\n YC_US.member_ticker_and_exchange_code.tolist(),\\n [\\\"YLD_YTM_ASK\\\", \\\"SECURITY NAME\\\", \\\"MATURITY\\\"],\\n)\\n# PEN Peru Sovereign Curve\\nYC_PE_VAL = blp.bdp(\\n YC_Peru.member_ticker_and_exchange_code.tolist(),\\n [\\\"YLD_YTM_ASK\\\", \\\"SECURITY NAME\\\", \\\"MATURITY\\\"],\\n)\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# US Treasury Actives Curve\n",
"YC_US_VAL = blp.bdp(\n",
" YC_US.member_ticker_and_exchange_code.tolist(),\n",
" [\"YLD_YTM_ASK\", \"SECURITY NAME\", \"MATURITY\"],\n",
")\n",
"# PEN Peru Sovereign Curve\n",
"YC_PE_VAL = blp.bdp(\n",
" YC_Peru.member_ticker_and_exchange_code.tolist(),\n",
" [\"YLD_YTM_ASK\", \"SECURITY NAME\", \"MATURITY\"],\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>yld_ytm_ask</th>\n",
" <th>security_name</th>\n",
" <th>maturity</th>\n",
" </tr>\n",
" <tr>\n",
" <th>ticker</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>912796SX Govt</td>\n",
" <td>1.896974</td>\n",
" <td>B 12/19/19</td>\n",
" <td>2019-12-19</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912796TJ Govt</td>\n",
" <td>1.818060</td>\n",
" <td>B 09/10/20</td>\n",
" <td>2020-09-10</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912796TL Govt</td>\n",
" <td>1.898197</td>\n",
" <td>B 03/19/20</td>\n",
" <td>2020-03-19</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912796WA Govt</td>\n",
" <td>1.929529</td>\n",
" <td>B 10/22/19</td>\n",
" <td>2019-10-22</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912796WE Govt</td>\n",
" <td>1.932279</td>\n",
" <td>B 11/19/19</td>\n",
" <td>2019-11-19</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912810SJ Govt</td>\n",
" <td>2.161623</td>\n",
" <td>T 2 1/4 08/15/49</td>\n",
" <td>2049-08-15</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912828YB Govt</td>\n",
" <td>1.721498</td>\n",
" <td>T 1 5/8 08/15/29</td>\n",
" <td>2029-08-15</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912828YC Govt</td>\n",
" <td>1.683012</td>\n",
" <td>T 1 1/2 08/31/21</td>\n",
" <td>2021-08-31</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912828YD Govt</td>\n",
" <td>1.669512</td>\n",
" <td>T 1 3/8 08/31/26</td>\n",
" <td>2026-08-31</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912828YE Govt</td>\n",
" <td>1.600197</td>\n",
" <td>T 1 1/4 08/31/24</td>\n",
" <td>2024-08-31</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912828YF Govt</td>\n",
" <td>1.615953</td>\n",
" <td>T 1 1/2 09/15/22</td>\n",
" <td>2022-09-15</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" yld_ytm_ask security_name maturity\n",
"ticker \n",
"912796SX Govt 1.896974 B 12/19/19 2019-12-19\n",
"912796TJ Govt 1.818060 B 09/10/20 2020-09-10\n",
"912796TL Govt 1.898197 B 03/19/20 2020-03-19\n",
"912796WA Govt 1.929529 B 10/22/19 2019-10-22\n",
"912796WE Govt 1.932279 B 11/19/19 2019-11-19\n",
"912810SJ Govt 2.161623 T 2 1/4 08/15/49 2049-08-15\n",
"912828YB Govt 1.721498 T 1 5/8 08/15/29 2029-08-15\n",
"912828YC Govt 1.683012 T 1 1/2 08/31/21 2021-08-31\n",
"912828YD Govt 1.669512 T 1 3/8 08/31/26 2026-08-31\n",
"912828YE Govt 1.600197 T 1 1/4 08/31/24 2024-08-31\n",
"912828YF Govt 1.615953 T 1 1/2 09/15/22 2022-09-15"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 8;\n",
" var nbb_formatted_code = \"YC_US_VAL\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"YC_US_VAL"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>yld_ytm_ask</th>\n",
" <th>security_name</th>\n",
" <th>maturity</th>\n",
" </tr>\n",
" <tr>\n",
" <th>ticker</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>AO400864 Corp</td>\n",
" <td>4.610548</td>\n",
" <td>PERUGB 6.15 08/12/32</td>\n",
" <td>2032-08-12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>AV961092 Corp</td>\n",
" <td>4.193310</td>\n",
" <td>PERUGB 5.94 02/12/29</td>\n",
" <td>2029-02-12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EF025269 Corp</td>\n",
" <td>2.286500</td>\n",
" <td>PERUGB 7.84 08/12/20</td>\n",
" <td>2020-08-12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EF397255 Corp</td>\n",
" <td>3.715600</td>\n",
" <td>PERUGB 8.2 08/12/26</td>\n",
" <td>2026-08-12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EG665000 Corp</td>\n",
" <td>4.968700</td>\n",
" <td>PERUGB 6.9 08/12/37</td>\n",
" <td>2037-08-12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EI129494 Corp</td>\n",
" <td>5.058400</td>\n",
" <td>PERUGB 6.85 02/12/42</td>\n",
" <td>2042-02-12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EJ254711 Corp</td>\n",
" <td>2.677400</td>\n",
" <td>PERUGB 5.2 09/12/23</td>\n",
" <td>2023-09-12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EK380738 Corp</td>\n",
" <td>5.115756</td>\n",
" <td>PERUGB 6.7142 02/12/55</td>\n",
" <td>2055-02-12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EK579960 Corp</td>\n",
" <td>3.140700</td>\n",
" <td>PERUGB 5.7 08/12/24</td>\n",
" <td>2024-08-12</td>\n",
" </tr>\n",
" <tr>\n",
" <td>QZ744509 Corp</td>\n",
" <td>4.149950</td>\n",
" <td>PERUGB 6.35 08/12/28</td>\n",
" <td>2028-08-12</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" yld_ytm_ask security_name maturity\n",
"ticker \n",
"AO400864 Corp 4.610548 PERUGB 6.15 08/12/32 2032-08-12\n",
"AV961092 Corp 4.193310 PERUGB 5.94 02/12/29 2029-02-12\n",
"EF025269 Corp 2.286500 PERUGB 7.84 08/12/20 2020-08-12\n",
"EF397255 Corp 3.715600 PERUGB 8.2 08/12/26 2026-08-12\n",
"EG665000 Corp 4.968700 PERUGB 6.9 08/12/37 2037-08-12\n",
"EI129494 Corp 5.058400 PERUGB 6.85 02/12/42 2042-02-12\n",
"EJ254711 Corp 2.677400 PERUGB 5.2 09/12/23 2023-09-12\n",
"EK380738 Corp 5.115756 PERUGB 6.7142 02/12/55 2055-02-12\n",
"EK579960 Corp 3.140700 PERUGB 5.7 08/12/24 2024-08-12\n",
"QZ744509 Corp 4.149950 PERUGB 6.35 08/12/28 2028-08-12"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 9;\n",
" var nbb_formatted_code = \"YC_PE_VAL\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"YC_PE_VAL"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We are going to see the type of data of each table with dtypes."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"yld_ytm_ask float32\n",
"security_name object\n",
"maturity object\n",
"dtype: object"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 10;\n",
" var nbb_formatted_code = \"# You'll see that the maturity column for each is not a date.\\nYC_US_VAL.dtypes\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# You'll see that the maturity column for each is not a date.\n",
"YC_US_VAL.dtypes"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"yld_ytm_ask float32\n",
"security_name object\n",
"maturity object\n",
"dtype: object"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 11;\n",
" var nbb_formatted_code = \"YC_PE_VAL.dtypes\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"YC_PE_VAL.dtypes"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We are going to convert the maturity to a date format."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 12;\n",
" var nbb_formatted_code = \"YC_US_VAL.maturity = pd.to_datetime(YC_US_VAL.maturity)\\nYC_PE_VAL.maturity = pd.to_datetime(YC_PE_VAL.maturity)\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"YC_US_VAL.maturity = pd.to_datetime(YC_US_VAL.maturity)\n",
"YC_PE_VAL.maturity = pd.to_datetime(YC_PE_VAL.maturity)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"yld_ytm_ask float32\n",
"security_name object\n",
"maturity datetime64[ns]\n",
"dtype: object"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 13;\n",
" var nbb_formatted_code = \"YC_US_VAL.dtypes\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"YC_US_VAL.dtypes"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"yld_ytm_ask float32\n",
"security_name object\n",
"maturity datetime64[ns]\n",
"dtype: object"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 14;\n",
" var nbb_formatted_code = \"YC_PE_VAL.dtypes\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"YC_PE_VAL.dtypes"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We are going to create a column with the maturity of each bond in term of years. For that we are going to substract the maturity from the actual date."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 15;\n",
" var nbb_formatted_code = \"# US Treasury Actives Curve\\nYC_US_VAL[\\\"Yr\\\"] = (YC_US_VAL.maturity - pd.to_datetime(date.today())) / np.timedelta64(\\n 1, \\\"Y\\\"\\n)\\n# PEN Peru Sovereign Curve\\nYC_PE_VAL[\\\"Yr\\\"] = (YC_PE_VAL.maturity - pd.to_datetime(date.today())) / np.timedelta64(\\n 1, \\\"Y\\\"\\n)\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# US Treasury Actives Curve\n",
"YC_US_VAL[\"Yr\"] = (YC_US_VAL.maturity - pd.to_datetime(date.today())) / np.timedelta64(\n",
" 1, \"Y\"\n",
")\n",
"# PEN Peru Sovereign Curve\n",
"YC_PE_VAL[\"Yr\"] = (YC_PE_VAL.maturity - pd.to_datetime(date.today())) / np.timedelta64(\n",
" 1, \"Y\"\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>yld_ytm_ask</th>\n",
" <th>security_name</th>\n",
" <th>maturity</th>\n",
" <th>Yr</th>\n",
" </tr>\n",
" <tr>\n",
" <th>ticker</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>912796SX Govt</td>\n",
" <td>1.896974</td>\n",
" <td>B 12/19/19</td>\n",
" <td>2019-12-19</td>\n",
" <td>0.246412</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912796TJ Govt</td>\n",
" <td>1.818060</td>\n",
" <td>B 09/10/20</td>\n",
" <td>2020-09-10</td>\n",
" <td>0.974695</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912796TL Govt</td>\n",
" <td>1.898197</td>\n",
" <td>B 03/19/20</td>\n",
" <td>2020-03-19</td>\n",
" <td>0.495561</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912796WA Govt</td>\n",
" <td>1.929529</td>\n",
" <td>B 10/22/19</td>\n",
" <td>2019-10-22</td>\n",
" <td>0.087613</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912796WE Govt</td>\n",
" <td>1.932279</td>\n",
" <td>B 11/19/19</td>\n",
" <td>2019-11-19</td>\n",
" <td>0.164274</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912810SJ Govt</td>\n",
" <td>2.161623</td>\n",
" <td>T 2 1/4 08/15/49</td>\n",
" <td>2049-08-15</td>\n",
" <td>29.903420</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912828YB Govt</td>\n",
" <td>1.721498</td>\n",
" <td>T 1 5/8 08/15/29</td>\n",
" <td>2029-08-15</td>\n",
" <td>9.903010</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912828YC Govt</td>\n",
" <td>1.683012</td>\n",
" <td>T 1 1/2 08/31/21</td>\n",
" <td>2021-08-31</td>\n",
" <td>1.946652</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912828YD Govt</td>\n",
" <td>1.669512</td>\n",
" <td>T 1 3/8 08/31/26</td>\n",
" <td>2026-08-31</td>\n",
" <td>6.946070</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912828YE Govt</td>\n",
" <td>1.600197</td>\n",
" <td>T 1 1/4 08/31/24</td>\n",
" <td>2024-08-31</td>\n",
" <td>4.947398</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912828YF Govt</td>\n",
" <td>1.615953</td>\n",
" <td>T 1 1/2 09/15/22</td>\n",
" <td>2022-09-15</td>\n",
" <td>2.987057</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" yld_ytm_ask security_name maturity Yr\n",
"ticker \n",
"912796SX Govt 1.896974 B 12/19/19 2019-12-19 0.246412\n",
"912796TJ Govt 1.818060 B 09/10/20 2020-09-10 0.974695\n",
"912796TL Govt 1.898197 B 03/19/20 2020-03-19 0.495561\n",
"912796WA Govt 1.929529 B 10/22/19 2019-10-22 0.087613\n",
"912796WE Govt 1.932279 B 11/19/19 2019-11-19 0.164274\n",
"912810SJ Govt 2.161623 T 2 1/4 08/15/49 2049-08-15 29.903420\n",
"912828YB Govt 1.721498 T 1 5/8 08/15/29 2029-08-15 9.903010\n",
"912828YC Govt 1.683012 T 1 1/2 08/31/21 2021-08-31 1.946652\n",
"912828YD Govt 1.669512 T 1 3/8 08/31/26 2026-08-31 6.946070\n",
"912828YE Govt 1.600197 T 1 1/4 08/31/24 2024-08-31 4.947398\n",
"912828YF Govt 1.615953 T 1 1/2 09/15/22 2022-09-15 2.987057"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 16;\n",
" var nbb_formatted_code = \"YC_US_VAL\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"YC_US_VAL"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>yld_ytm_ask</th>\n",
" <th>security_name</th>\n",
" <th>maturity</th>\n",
" <th>Yr</th>\n",
" </tr>\n",
" <tr>\n",
" <th>ticker</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>AO400864 Corp</td>\n",
" <td>4.610548</td>\n",
" <td>PERUGB 6.15 08/12/32</td>\n",
" <td>2032-08-12</td>\n",
" <td>12.895542</td>\n",
" </tr>\n",
" <tr>\n",
" <td>AV961092 Corp</td>\n",
" <td>4.193310</td>\n",
" <td>PERUGB 5.94 02/12/29</td>\n",
" <td>2029-02-12</td>\n",
" <td>9.399235</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EF025269 Corp</td>\n",
" <td>2.286500</td>\n",
" <td>PERUGB 7.84 08/12/20</td>\n",
" <td>2020-08-12</td>\n",
" <td>0.895296</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EF397255 Corp</td>\n",
" <td>3.715600</td>\n",
" <td>PERUGB 8.2 08/12/26</td>\n",
" <td>2026-08-12</td>\n",
" <td>6.894050</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EG665000 Corp</td>\n",
" <td>4.968700</td>\n",
" <td>PERUGB 6.9 08/12/37</td>\n",
" <td>2037-08-12</td>\n",
" <td>17.894960</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EI129494 Corp</td>\n",
" <td>5.058400</td>\n",
" <td>PERUGB 6.85 02/12/42</td>\n",
" <td>2042-02-12</td>\n",
" <td>22.398817</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EJ254711 Corp</td>\n",
" <td>2.677400</td>\n",
" <td>PERUGB 5.2 09/12/23</td>\n",
" <td>2023-09-12</td>\n",
" <td>3.978179</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EK380738 Corp</td>\n",
" <td>5.115756</td>\n",
" <td>PERUGB 6.7142 02/12/55</td>\n",
" <td>2055-02-12</td>\n",
" <td>35.398400</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EK579960 Corp</td>\n",
" <td>3.140700</td>\n",
" <td>PERUGB 5.7 08/12/24</td>\n",
" <td>2024-08-12</td>\n",
" <td>4.895378</td>\n",
" </tr>\n",
" <tr>\n",
" <td>QZ744509 Corp</td>\n",
" <td>4.149950</td>\n",
" <td>PERUGB 6.35 08/12/28</td>\n",
" <td>2028-08-12</td>\n",
" <td>8.895460</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" yld_ytm_ask security_name maturity Yr\n",
"ticker \n",
"AO400864 Corp 4.610548 PERUGB 6.15 08/12/32 2032-08-12 12.895542\n",
"AV961092 Corp 4.193310 PERUGB 5.94 02/12/29 2029-02-12 9.399235\n",
"EF025269 Corp 2.286500 PERUGB 7.84 08/12/20 2020-08-12 0.895296\n",
"EF397255 Corp 3.715600 PERUGB 8.2 08/12/26 2026-08-12 6.894050\n",
"EG665000 Corp 4.968700 PERUGB 6.9 08/12/37 2037-08-12 17.894960\n",
"EI129494 Corp 5.058400 PERUGB 6.85 02/12/42 2042-02-12 22.398817\n",
"EJ254711 Corp 2.677400 PERUGB 5.2 09/12/23 2023-09-12 3.978179\n",
"EK380738 Corp 5.115756 PERUGB 6.7142 02/12/55 2055-02-12 35.398400\n",
"EK579960 Corp 3.140700 PERUGB 5.7 08/12/24 2024-08-12 4.895378\n",
"QZ744509 Corp 4.149950 PERUGB 6.35 08/12/28 2028-08-12 8.895460"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 17;\n",
" var nbb_formatted_code = \"YC_PE_VAL\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"YC_PE_VAL"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Sort each table by `Yr`."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 18;\n",
" var nbb_formatted_code = \"# Sort data by Yr column\\nYC_US_VAL = YC_US_VAL.sort_values(by=[\\\"Yr\\\"])\\nYC_PE_VAL = YC_PE_VAL.sort_values(by=[\\\"Yr\\\"])\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Sort data by Yr column\n",
"YC_US_VAL = YC_US_VAL.sort_values(by=[\"Yr\"])\n",
"YC_PE_VAL = YC_PE_VAL.sort_values(by=[\"Yr\"])"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>yld_ytm_ask</th>\n",
" <th>security_name</th>\n",
" <th>maturity</th>\n",
" <th>Yr</th>\n",
" </tr>\n",
" <tr>\n",
" <th>ticker</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>912796WA Govt</td>\n",
" <td>1.929529</td>\n",
" <td>B 10/22/19</td>\n",
" <td>2019-10-22</td>\n",
" <td>0.087613</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912796WE Govt</td>\n",
" <td>1.932279</td>\n",
" <td>B 11/19/19</td>\n",
" <td>2019-11-19</td>\n",
" <td>0.164274</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912796SX Govt</td>\n",
" <td>1.896974</td>\n",
" <td>B 12/19/19</td>\n",
" <td>2019-12-19</td>\n",
" <td>0.246412</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912796TL Govt</td>\n",
" <td>1.898197</td>\n",
" <td>B 03/19/20</td>\n",
" <td>2020-03-19</td>\n",
" <td>0.495561</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912796TJ Govt</td>\n",
" <td>1.818060</td>\n",
" <td>B 09/10/20</td>\n",
" <td>2020-09-10</td>\n",
" <td>0.974695</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912828YC Govt</td>\n",
" <td>1.683012</td>\n",
" <td>T 1 1/2 08/31/21</td>\n",
" <td>2021-08-31</td>\n",
" <td>1.946652</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912828YF Govt</td>\n",
" <td>1.615953</td>\n",
" <td>T 1 1/2 09/15/22</td>\n",
" <td>2022-09-15</td>\n",
" <td>2.987057</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912828YE Govt</td>\n",
" <td>1.600197</td>\n",
" <td>T 1 1/4 08/31/24</td>\n",
" <td>2024-08-31</td>\n",
" <td>4.947398</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912828YD Govt</td>\n",
" <td>1.669512</td>\n",
" <td>T 1 3/8 08/31/26</td>\n",
" <td>2026-08-31</td>\n",
" <td>6.946070</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912828YB Govt</td>\n",
" <td>1.721498</td>\n",
" <td>T 1 5/8 08/15/29</td>\n",
" <td>2029-08-15</td>\n",
" <td>9.903010</td>\n",
" </tr>\n",
" <tr>\n",
" <td>912810SJ Govt</td>\n",
" <td>2.161623</td>\n",
" <td>T 2 1/4 08/15/49</td>\n",
" <td>2049-08-15</td>\n",
" <td>29.903420</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" yld_ytm_ask security_name maturity Yr\n",
"ticker \n",
"912796WA Govt 1.929529 B 10/22/19 2019-10-22 0.087613\n",
"912796WE Govt 1.932279 B 11/19/19 2019-11-19 0.164274\n",
"912796SX Govt 1.896974 B 12/19/19 2019-12-19 0.246412\n",
"912796TL Govt 1.898197 B 03/19/20 2020-03-19 0.495561\n",
"912796TJ Govt 1.818060 B 09/10/20 2020-09-10 0.974695\n",
"912828YC Govt 1.683012 T 1 1/2 08/31/21 2021-08-31 1.946652\n",
"912828YF Govt 1.615953 T 1 1/2 09/15/22 2022-09-15 2.987057\n",
"912828YE Govt 1.600197 T 1 1/4 08/31/24 2024-08-31 4.947398\n",
"912828YD Govt 1.669512 T 1 3/8 08/31/26 2026-08-31 6.946070\n",
"912828YB Govt 1.721498 T 1 5/8 08/15/29 2029-08-15 9.903010\n",
"912810SJ Govt 2.161623 T 2 1/4 08/15/49 2049-08-15 29.903420"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 19;\n",
" var nbb_formatted_code = \"YC_US_VAL\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"YC_US_VAL"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>yld_ytm_ask</th>\n",
" <th>security_name</th>\n",
" <th>maturity</th>\n",
" <th>Yr</th>\n",
" </tr>\n",
" <tr>\n",
" <th>ticker</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>EF025269 Corp</td>\n",
" <td>2.286500</td>\n",
" <td>PERUGB 7.84 08/12/20</td>\n",
" <td>2020-08-12</td>\n",
" <td>0.895296</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EJ254711 Corp</td>\n",
" <td>2.677400</td>\n",
" <td>PERUGB 5.2 09/12/23</td>\n",
" <td>2023-09-12</td>\n",
" <td>3.978179</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EK579960 Corp</td>\n",
" <td>3.140700</td>\n",
" <td>PERUGB 5.7 08/12/24</td>\n",
" <td>2024-08-12</td>\n",
" <td>4.895378</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EF397255 Corp</td>\n",
" <td>3.715600</td>\n",
" <td>PERUGB 8.2 08/12/26</td>\n",
" <td>2026-08-12</td>\n",
" <td>6.894050</td>\n",
" </tr>\n",
" <tr>\n",
" <td>QZ744509 Corp</td>\n",
" <td>4.149950</td>\n",
" <td>PERUGB 6.35 08/12/28</td>\n",
" <td>2028-08-12</td>\n",
" <td>8.895460</td>\n",
" </tr>\n",
" <tr>\n",
" <td>AV961092 Corp</td>\n",
" <td>4.193310</td>\n",
" <td>PERUGB 5.94 02/12/29</td>\n",
" <td>2029-02-12</td>\n",
" <td>9.399235</td>\n",
" </tr>\n",
" <tr>\n",
" <td>AO400864 Corp</td>\n",
" <td>4.610548</td>\n",
" <td>PERUGB 6.15 08/12/32</td>\n",
" <td>2032-08-12</td>\n",
" <td>12.895542</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EG665000 Corp</td>\n",
" <td>4.968700</td>\n",
" <td>PERUGB 6.9 08/12/37</td>\n",
" <td>2037-08-12</td>\n",
" <td>17.894960</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EI129494 Corp</td>\n",
" <td>5.058400</td>\n",
" <td>PERUGB 6.85 02/12/42</td>\n",
" <td>2042-02-12</td>\n",
" <td>22.398817</td>\n",
" </tr>\n",
" <tr>\n",
" <td>EK380738 Corp</td>\n",
" <td>5.115756</td>\n",
" <td>PERUGB 6.7142 02/12/55</td>\n",
" <td>2055-02-12</td>\n",
" <td>35.398400</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" yld_ytm_ask security_name maturity Yr\n",
"ticker \n",
"EF025269 Corp 2.286500 PERUGB 7.84 08/12/20 2020-08-12 0.895296\n",
"EJ254711 Corp 2.677400 PERUGB 5.2 09/12/23 2023-09-12 3.978179\n",
"EK579960 Corp 3.140700 PERUGB 5.7 08/12/24 2024-08-12 4.895378\n",
"EF397255 Corp 3.715600 PERUGB 8.2 08/12/26 2026-08-12 6.894050\n",
"QZ744509 Corp 4.149950 PERUGB 6.35 08/12/28 2028-08-12 8.895460\n",
"AV961092 Corp 4.193310 PERUGB 5.94 02/12/29 2029-02-12 9.399235\n",
"AO400864 Corp 4.610548 PERUGB 6.15 08/12/32 2032-08-12 12.895542\n",
"EG665000 Corp 4.968700 PERUGB 6.9 08/12/37 2037-08-12 17.894960\n",
"EI129494 Corp 5.058400 PERUGB 6.85 02/12/42 2042-02-12 22.398817\n",
"EK380738 Corp 5.115756 PERUGB 6.7142 02/12/55 2055-02-12 35.398400"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 20;\n",
" var nbb_formatted_code = \"YC_PE_VAL\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"YC_PE_VAL"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0xa63b248>]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"application/javascript": [
"\n",
" setTimeout(function() {\n",
" var nbb_cell_id = 21;\n",
" var nbb_formatted_code = \"# Plot curves\\nplt.plot(YC_US_VAL.Yr, YC_US_VAL.yld_ytm_ask, \\\"b\\\")\\nplt.plot(YC_PE_VAL.Yr, YC_PE_VAL.yld_ytm_ask, \\\"r\\\")\";\n",
" var nbb_cells = Jupyter.notebook.get_cells();\n",
" for (var i = 0; i < nbb_cells.length; ++i) {\n",
" if (nbb_cells[i].input_prompt_number == nbb_cell_id) {\n",
" nbb_cells[i].set_text(nbb_formatted_code);\n",
" break;\n",
" }\n",
" }\n",
" }, 500);\n",
" "
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Plot curves\n",
"plt.plot(YC_US_VAL.Yr, YC_US_VAL.yld_ytm_ask, \"b\")\n",
"plt.plot(YC_PE_VAL.Yr, YC_PE_VAL.yld_ytm_ask, \"r\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment