mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-11-02 07:23:25 +00:00
115 lines
3.9 KiB
Python
115 lines
3.9 KiB
Python
""" OECD view """
|
|
__docformat__ = "numpy"
|
|
|
|
# IMPORTATION STANDARD
|
|
import logging
|
|
import os
|
|
from typing import Optional
|
|
|
|
from openbb_terminal import OpenBBFigure
|
|
from openbb_terminal.decorators import log_start_end
|
|
from openbb_terminal.fixedincome import oecd_model
|
|
from openbb_terminal.helper_funcs import export_data, print_rich_table
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
# pylint: disable=too-many-arguments, too-many-function-args
|
|
|
|
|
|
@log_start_end(log=logger)
|
|
def plot_treasuries(
|
|
short_term: Optional[list] = None,
|
|
long_term: Optional[list] = None,
|
|
forecast: bool = False,
|
|
start_date: Optional[str] = None,
|
|
end_date: Optional[str] = None,
|
|
raw: bool = False,
|
|
export: str = "",
|
|
sheet_name: str = "",
|
|
external_axes: bool = False,
|
|
limit: int = 10,
|
|
):
|
|
"""Gets interest rates data from selected countries (3 month and 10 year)
|
|
|
|
Short-term interest rates are the rates at which short-term borrowings are effected between financial
|
|
institutions or the rate at which short-term government paper is issued or traded in the market. Short-term
|
|
interest rates are generally averages of daily rates, measured as a percentage. Short-term interest rates are
|
|
based on three-month money market rates where available. Typical standardised names are "money market rate" and
|
|
"treasury bill rate".
|
|
|
|
Long-term interest rates refer to government bonds maturing in ten years. Rates are mainly determined by the
|
|
price charged by the lender, the risk from the borrower and the fall in the capital value. Long-term interest
|
|
rates are generally averages of daily rates, measured as a percentage. These interest rates are implied by the
|
|
prices at which the government bonds are traded on financial markets, not the interest rates at which the loans
|
|
were issued. In all cases, they refer to bonds whose capital repayment is guaranteed by governments. Long-term
|
|
interest rates are one of the determinants of business investment. Low long-term interest rates encourage
|
|
investment in new equipment and high interest rates discourage it. Investment is, in turn, a major source of
|
|
economic growth.
|
|
|
|
Parameters
|
|
----------
|
|
short_term: list
|
|
Countries you wish to plot the 3-month interest rate for
|
|
long_term: list
|
|
Countries you wish to plot the 10-year interest rate for
|
|
forecast: bool
|
|
If True, plot forecasts for short term interest rates
|
|
start_date: str
|
|
Start date of data, in YYYY-MM-DD format
|
|
end_date: str
|
|
End date of data, in YYYY-MM-DD format
|
|
raw: bool
|
|
If True, print raw data
|
|
export: str
|
|
Export data to csv or excel file
|
|
external_axes : bool, optional
|
|
Whether to return the figure object or not, by default False
|
|
"""
|
|
df = oecd_model.get_treasury(short_term, long_term, forecast, start_date, end_date)
|
|
|
|
fig = OpenBBFigure(yaxis_title="Yield (%)")
|
|
|
|
for country in df.columns:
|
|
fig.add_scatter(
|
|
x=df.index,
|
|
y=df[country],
|
|
name=country.replace("_", " ").title(),
|
|
mode="lines",
|
|
line_width=2.5,
|
|
showlegend=True,
|
|
)
|
|
|
|
term = (
|
|
"Short and Long"
|
|
if short_term and long_term
|
|
else "Long"
|
|
if long_term
|
|
else "Short"
|
|
)
|
|
title = f"{term} Term Interest Rates {' with forecasts' if forecast else ''}"
|
|
fig.set_title(title)
|
|
|
|
if raw:
|
|
# was a -iloc so we need to flip the index as we use head
|
|
df = df.sort_index(ascending=False)
|
|
print_rich_table(
|
|
df,
|
|
headers=list(df.columns),
|
|
show_index=True,
|
|
title=title,
|
|
floatfmt=".3f",
|
|
export=bool(export),
|
|
limit=limit,
|
|
)
|
|
|
|
export_data(
|
|
export,
|
|
os.path.dirname(os.path.abspath(__file__)),
|
|
"treasury",
|
|
df / 100,
|
|
sheet_name,
|
|
fig,
|
|
)
|
|
|
|
return fig.show(external=raw or external_axes)
|