%load_ext autoreload
%autoreload 2
import pandas as pd
from IPython.display import Markdown
from tulip.data.bloomberg import BloombergClient as bb
from tulip.plots import plot_line, plot_lines
import plotly.offline as pyo
pyo.init_notebook_mode(connected=True)
Currencies¶
This is a work in progress we only have one-off charts for now. It only has this interest rate differential
start_date = "1980-01-01"
fixed_income = {
"USA": ["GTUSD5Y Govt", "GTUSD10Y Govt", "USGGBE05 Index", "USGGBE10 Index"],
"EUR": ["GTEUR5Y Govt", "GTEUR10Y Govt", "DEGGBE05 Index", "DEGGBE10 Index"],
"JPN": ["GTJPY5Y Govt", "GTJPY10Y Govt", "JYGGBE05 Index", "JYGGBE10 Index"],
}
spot_fx = {"EUR": "EUR", "JPN": "JPY"}
eur = bb.get_fx(
quoted_currency="EUR",
dollar_as_base=True,
start_date=start_date,
)
jpy = bb.get_fx(
quoted_currency="JPY",
dollar_as_base=True,
start_date=start_date,
)
fixed_income_data = {}
data_df = {}
for ctry, tickers in fixed_income.items():
fixed_income_data[ctry] = [bb.bdh(t) for t in tickers]
data_df[ctry] = pd.concat(fixed_income_data[ctry], axis=1).xs(
"PX_LAST", level=1, axis=1
)
data_df[ctry].columns = ["NOM_5Y", "NOM_10Y", "BEI_10Y", "BEI_5Y"]
if ctry == "USA":
data_df[ctry]["spot_fx"] = 1
else:
data_df[ctry]["spot_fx"] = bb.get_fx(
quoted_currency=spot_fx[ctry], dollar_as_base=True, start_date=start_date
)
data_df = pd.concat(data_df, axis=1).sort_index()fig = plot_line(
blue=data_df.loc[:, ("EUR", "spot_fx")].rename("EUR"),
red=data_df.loc[:, ("USA", "NOM_5Y")]
.ffill()
.sub(data_df.loc[:, ("EUR", "NOM_5Y")].ffill())
.rename("5Y Nominal Yield Diff"),
years_limit=2,
align_z=True,
figsize=(900, 400),
)
fig.show()fig = plot_line(
blue=data_df.loc[:, ("JPN", "spot_fx")].rename("JPY"),
red=data_df.loc[:, ("USA", "NOM_5Y")]
.ffill()
.sub(data_df.loc[:, ("JPN", "NOM_5Y")].ffill())
.rename("5Y Nominal Yield Diff"),
years_limit=2,
align_z=True,
figsize=(900, 400),
)
fig.show()from tulip_mania.notebook_related import notebook_updated
notebook_updated()