diff options
| -rw-r--r-- | python/quote_parsing/parse_emails.py | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/python/quote_parsing/parse_emails.py b/python/quote_parsing/parse_emails.py index 7deb9396..c2713ed9 100644 --- a/python/quote_parsing/parse_emails.py +++ b/python/quote_parsing/parse_emails.py @@ -425,6 +425,31 @@ def parse_citi_block(fh, indextype): ) return makedf(r, indextype, "CITI") +def parse_jpm_block(fh, indextype): + for line in fh: + line = line.strip() + if "**" in line or line == "": + break + if line.startswith("K"): + continue + rec_strike, rec_data, pay_strike, pay_data = [item.strip() for item in line.split('|')] + rec_data = rec_data.replace("/", " ") + if rec_strike is not '-': + receivers[rec_strike] = rec_data.split()[:-2] + pay_data = pay_data.replace("/", " ") + if pay_strike is not '-': + payers[pay_strike] = pay_data.split()[:-2] + + cols = ['bid', 'offer', 'delta', 'vol'] + pay = pd.DataFrame.from_dict(payers, orient='index', columns=cols).add_prefix('pay_') + rec = pd.DataFrame.from_dict(receivers, orient='index', columns=cols).add_prefix('rec_') + df = pd.concat([rec, pay], axis=1) + df['vol'] = df['rec_vol'].fillna(df['pay_vol']) + df = df.reset_index().drop(['rec_vol', "pay_vol"], axis=1).rename(columns={'index':'strike', 'pay_vol':'vol', "rec_delta": "delta_rec", "pay_delta": "delta_pay"}) + + + return makedf(df, indextype, "JPM"), line + def parse_ms(fh, index_desc, *args): option_stack = {} @@ -621,28 +646,6 @@ def parse_jpm(fh, index_desc): return option_stack, fwd_index -def parse_jpm_block(fh, indextype): - for line in fh: - line = line.strip() - if "**" in line or line == "": - break - if line.startswith("K"): - continue - rec_strike, rec_data, pay_strike, pay_data = [item.strip() for item in line.split('|')] - rec_data = rec_data.replace("/", " ") - receivers[rec_strike] = rec_data.split()[:-2] - pay_data = pay_data.replace("/", " ") - payers[pay_strike] = pay_data.split()[:-2] - - cols = ['bid', 'offer', 'delta', 'vol'] - pay = pd.DataFrame.from_dict(payers, orient='index', columns=cols).add_prefix('pay_') - rec = pd.DataFrame.from_dict(receivers, orient='index', columns=cols).add_prefix('rec_') - df = pd.concat([rec, pay], axis=1) - df['vol'] = df['rec_vol'].fillna(df['pay_vol']) - df = df.reset_index().drop(['rec_vol', "pay_vol"], axis=1).rename(columns={'index':'strike', 'pay_vol':'vol', "rec_delta": "delta_rec", "pay_delta": "delta_pay"}) - - return makedf(r, indextype, "BAML"), line - # subject_baml = re.compile(r"(?:Fwd:){0,2}(?:BAML )?(\D{2})(\d{1,2})\s") subject_baml = re.compile(r"(?:Fwd:){0,2}(?:BofA )?(\D{2})(\d{1,2}).*Ref[^\d]*([\d.]+)") subject_ms = re.compile( |
