aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/exploration/option_trades.py21
1 files changed, 10 insertions, 11 deletions
diff --git a/python/exploration/option_trades.py b/python/exploration/option_trades.py
index 733c2cfb..bfa0171e 100644
--- a/python/exploration/option_trades.py
+++ b/python/exploration/option_trades.py
@@ -73,20 +73,19 @@ def atm_vol_calc(df, index_type, moneyness):
return df
def atm_vol(index, date, series=None, moneyness=0.2):
- sql_str = "SELECT * from swaption_ref_quotes JOIN swaption_quotes " \
- "USING (quotedate, index, series, expiry) WHERE index=%s " \
- "and quotedate >=%s"
+ extra_filter = ''
params = (index.upper(), date)
if series:
- sql_str += ' AND series = %s'
+ extra_filter = ' AND series=%s'
params = params + (series,)
- qsrc_sql = "select distinct(quotedate), quote_source from swaption_quotes"
- qsrc = pd.read_sql_query(qsrc_sql, serenitasdb, index_col=['quotedate'], parse_dates=['quotedate'])
- df = pd.read_sql_query(sql_str, serenitasdb,
- index_col=['quotedate', 'expiry', 'series'],
- params=params, parse_dates=['quotedate'])
- df = df.merge(qsrc)
- df = df.groupby(df.index).filter(lambda x: len(x)>2)
+ sql_str = "SELECT * from swaption_ref_quotes JOIN swaption_quotes " \
+ "USING (quotedate, index, series, expiry) WHERE index=%s " \
+ f"and quotedate>=%s {extra_filter} ORDER BY quotedate ASC"
+
+ df = pd.read_sql_query(sql_str, serenitasdb, params=params)
+ df.quotedate = pd.to_datetime(df.quotedate, utc=True).dt.tz_convert('America/New_York')
+ df = df.set_index(['quotedate', 'index', 'series', 'expiry'])
+ df = df.groupby(level=['quotedate', 'index', 'series', 'expiry']).filter(lambda x: len(x)>2)
return atm_vol_calc(df, index, moneyness)
def rolling_vol(df, col='atm_vol', term=[3]):