aboutsummaryrefslogtreecommitdiffstats
path: root/python/mark_swaptions.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/mark_swaptions.py')
-rw-r--r--python/mark_swaptions.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/python/mark_swaptions.py b/python/mark_swaptions.py
index 4db50724..6a54a124 100644
--- a/python/mark_swaptions.py
+++ b/python/mark_swaptions.py
@@ -26,11 +26,12 @@ def get_swaption_portfolio(date, conn):
portf = Portfolio([BlackSwaption.from_tradeid(t) for t in trade_ids],
trade_ids=deal_ids)
portf.value_date = date
- try:
- portf.mark(interp_method='bivariate_spline')
- except ValueError as e:
- logging.info(e)
- return {}
+ for t in portf.trades:
+ try:
+ t.mark(interp_method='bivariate_spline')
+ except Exception as e:
+ logging.info(e)
+ t.mark(interp_method='bivariate_linear')
return portf
@@ -38,7 +39,8 @@ def insert_swaption_portfolio(portf, conn):
sql_str = "INSERT INTO swaption_marks VALUES(%s, %s, %s, %s, %s, %s, %s)"
with conn.cursor() as c:
for id, trade in portf.items():
- to_insert = (id, trade.value_date, trade.pv, trade.delta, trade.gamma, trade.vega, trade.theta)
+ to_insert = (id, trade.value_date, trade.pv, trade.delta,
+ trade.gamma, trade.vega, trade.theta)
try:
c.execute(sql_str, to_insert)
except DataError as e: