aboutsummaryrefslogtreecommitdiffstats
path: root/python/calibrate_swaption.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/calibrate_swaption.py')
-rw-r--r--python/calibrate_swaption.py23
1 files changed, 12 insertions, 11 deletions
diff --git a/python/calibrate_swaption.py b/python/calibrate_swaption.py
index c768ea8d..eda9dcc4 100644
--- a/python/calibrate_swaption.py
+++ b/python/calibrate_swaption.py
@@ -69,17 +69,18 @@ def calibrate(index_type=None, series=None, date=None, nproc=4, latest=False):
else:
data = get_data(index_type, series, date)
- for k, v in data.groupby([data['quotedate'].dt.date, 'expiry','index', 'series']):
- trade_date, expiry, index_type, series = k
- index = Index.from_name(index_type, series, "5yr", trade_date)
- option = Swaption(index, expiry.date(), 100)
- mycalib = partial(calib, option)
- with Pool(nproc) as p:
- r = p.starmap(mycalib, v[['ref', 'strike', 'pay_bid',
- 'pay_offer', 'rec_bid', 'rec_offer']].
- itertuples(index=False, name=None))
- to_insert = [[a, index_type, series, expiry] + b for a, b in zip(v.quotedate.tolist(), r)]
- serenitas_engine.execute(sql_str, to_insert)
+ with Pool(nproc) as pool:
+ for k, v in data.groupby([data['quotedate'].dt.date, 'expiry','index', 'series']):
+ trade_date, expiry, index_type, series = k
+ index = Index.from_name(index_type, series, "5yr", trade_date)
+ option = Swaption(index, expiry.date(), 100)
+ mycalib = partial(calib, option)
+
+ r = pool.starmap(mycalib, v[['ref', 'strike', 'pay_bid',
+ 'pay_offer', 'rec_bid', 'rec_offer']].
+ itertuples(index=False, name=None))
+ to_insert = [[a, index_type, series, expiry] + b for a, b in zip(v.quotedate.tolist(), r)]
+ serenitas_engine.execute(sql_str, to_insert)
if __name__ == "__main__":
parser = argparse.ArgumentParser()