aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/quote_parsing/parse_emails.py47
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(