diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/mark_swaptions.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/python/mark_swaptions.py b/python/mark_swaptions.py index d9edade8..dd3094e9 100644 --- a/python/mark_swaptions.py +++ b/python/mark_swaptions.py @@ -5,7 +5,7 @@ import os import pandas as pd from pandas.tseries.offsets import BDay -from analytics import Index, Swaption +from analytics import Index, Swaption, Portfolio, BlackSwaption from db import dbengine from sqlalchemy import exc @@ -21,6 +21,14 @@ def get_trades(date, engine): "WHERE termination_date is NULL AND expiration_date > %s AND trade_date <= %s", engine, 'dealid', params=(date, date), parse_dates=['expiration_date']) +def get_swaption_portfolio(date, engine): + tradeids = engine.execute("SELECT id FROM swaptions WHERE termination_date is NULL " + "AND expiration_date > %s AND trade_date <= %s", + (date, date)) + portf = Portfolio([BlackSwaption.from_tradeid(r[0]) for r in tradeids]) + portf.value_date = date + portf.mark(interp_method='bivariate_linear') + return portf def get_swaptionvol(index, series, strike, expiry, date, engine): r = engine.execute( @@ -91,6 +99,7 @@ def mark_trades(date, engine): logging.info("succesfully marked trade id: %s", trade.Index) return result + if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument('workdate', nargs='?', |
