diff options
Diffstat (limited to 'python/analytics')
| -rw-r--r-- | python/analytics/index_data.py | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/python/analytics/index_data.py b/python/analytics/index_data.py index 8a3cd66a..21da4cbc 100644 --- a/python/analytics/index_data.py +++ b/python/analytics/index_data.py @@ -69,23 +69,23 @@ def get_index_quotes( if args["end_date"] is None: args["end_date"] = datetime.date.today() if args["years"] is not None: - args["date"] = (end_date - pd.DateOffset(years=years)).date() + args["from_date"] = (end_date - pd.DateOffset(years=years)).date() del args["years"] - if args["from_date"]: - args["date"] = args["from_date"] - del args["from_date"] def make_str(key, val): + col_key = key if isinstance(val, list) or isinstance(val, tuple): op = "IN" return "{} IN %({})s".format(key, key) - elif key == "date": + elif key == "from_date": + col_key = "date" op = ">=" elif key == "end_date": + col_key = "date" op = "<=" else: op = "=" - return "{} {} %({})s".format(key, op, key) + return "{} {} %({})s".format(col_key, op, key) where_clause = " AND ".join( make_str(k, v) for k, v in args.items() if v is not None @@ -121,7 +121,14 @@ def get_index_quotes( def index_returns( - df=None, index=None, series=None, tenor=None, from_date=None, years=3, per=1 + df=None, + index=None, + series=None, + tenor=None, + from_date=None, + end_date=None, + years=3, + per=1, ): """computes spreads and price returns @@ -142,7 +149,7 @@ def index_returns( """ if df is None: - df = get_index_quotes(index, series, tenor, from_date, years) + df = get_index_quotes(index, series, tenor, from_date, end_date, years) spread_return = df.groupby( level=["index", "series", "tenor", "version"] ).close_spread.pct_change(periods=per) |
