diff options
Diffstat (limited to 'python/calibrate_swaption.py')
| -rw-r--r-- | python/calibrate_swaption.py | 23 |
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() |
