diff options
Diffstat (limited to 'python/book_bbg.py')
| -rw-r--r-- | python/book_bbg.py | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/python/book_bbg.py b/python/book_bbg.py index 082b22aa..0a5d7309 100644 --- a/python/book_bbg.py +++ b/python/book_bbg.py @@ -10,11 +10,13 @@ from collections import defaultdict fund_dictionary = {"SERENITAS_CGMF": "SERCGMAST", "BOWDOINST": "BOWDST"} fcm_dictionary = {"Bank of America, N.A.": "BAML", "Goldman Sachs": "GS"} -counterparty_dictionary = {"BNP PARIB.": "BNPBNY"} +cdx_cp_dictionary = {"BNP PARIB.": "BNPBNY"} +bond_cp_dictionary = {"CG": "CITINY"} sql_str_by_trade = { "CDX": "INSERT INTO cds (action, folder, cp_code, account_code, trade_date, effective_date, maturity, currency, payment_rolldate, notional, fixed_rate, day_count, frequency, protection, security_id, security_desc, upfront, upfront_settle_date, swap_type, clearing_facility, portfolio, fund) " "VALUES (%(action)s, %(folder)s, %(cp_code)s, %(account_code)s, %(trade_date)s, %(effective_date)s, %(maturity)s, %(currency)s, %(payment_rolldate)s, %(notional)s, %(fixed_rate)s, %(day_count)s, %(frequency)s, %(protection)s, %(security_id)s, %(security_desc)s, %(upfront)s, %(upfront_settle_date)s, %(swap_type)s, %(clearing_facility)s, %(portfolio)s, %(fund)s);", - "BOND": "", + "BOND": "INSERT INTO bonds(folder, cp_code, trade_date, settle_date, cusip, identifier, description, buysell, faceamount, price, asset_class )" + "VALUES (%(folder)s, %(cp_code)s, %(trade_date)s, %(settle_date)s, %(cusip)s, %(identifier)s, %(description)s, %(buysell)s, %(faceamount)s, %(price)s, %(asset_class)s", } @@ -75,7 +77,7 @@ def cdx_trade_process(reader, conn): obj["fund"] = fund_dictionary[obj["Account"]] obj["action"] = "NEW" obj["folder"] = "*" - obj["cp_code"] = counterparty_dictionary[obj["BrkrName"]] + obj["cp_code"] = cdx_cp_dictionary[obj["BrkrName"]] obj["payment_rolldate"] = "Following" obj["day_count"] = "ACT/360" obj["frequency"] = 4 @@ -92,6 +94,29 @@ def cdx_trade_process(reader, conn): return trades +def bond_trade_process(reader, conn): + trades = [] + for obj in reader: + if obj["Block Status"] != "Accepted": + print(obj["Cusip"]) + continue + rename_keys( + obj, + {"Quantity": "faceamount", "Price (Dec)": "price", "Cusip": "cusip"}, + ) + obj["buysell"] = True if obj["Side"] == "B" else False + obj["description"] = obj["Security"].replace(" Mtge", "") + obj["trade_date"] = datetime.datetime.strptime(obj["Trade Dt"], "%m/%d/%Y") + obj["settle_date"] = datetime.datetime.strptime(obj["SetDt"], "%m/%d/%Y") + obj["folder"] = "*" + obj["cp_code"] = bond_cp_dictionary[obj["Brkr"]] + obj["portfolio"] = "UNALLOCATED" + obj["identifier"] = obj["cusip"] + obj["asset_class"] = "*" + trades.append(obj) + return trades + + def book_trades(downloaded_files, date): conn = dbconn("dawndb") downloaded_files = download_files(date) |
