diff options
Diffstat (limited to 'python/calibrate_swaption.py')
| -rw-r--r-- | python/calibrate_swaption.py | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/python/calibrate_swaption.py b/python/calibrate_swaption.py index eda9dcc4..0bcfb8f8 100644 --- a/python/calibrate_swaption.py +++ b/python/calibrate_swaption.py @@ -70,17 +70,17 @@ def calibrate(index_type=None, series=None, date=None, nproc=4, latest=False): data = get_data(index_type, series, date) 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 + for k, v in data.groupby([data['quotedate'].dt.date, 'index', 'series']): + trade_date, 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) + for expiry, df in v.groupby(['expiry']): + option = Swaption(index, expiry.date(), 100) + mycalib = partial(calib, option) + r = pool.starmap(mycalib, df[['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(df.quotedate.tolist(), r)] + serenitas_engine.execute(sql_str, to_insert) if __name__ == "__main__": parser = argparse.ArgumentParser() |
