diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/process_queue.py | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/python/process_queue.py b/python/process_queue.py index d666e77b..c8e7a044 100644 --- a/python/process_queue.py +++ b/python/process_queue.py @@ -73,7 +73,20 @@ HEADERS = {'bond_trades':['Deal Type', 'Deal ID', 'Action', 'Client', 'Reserved' 'PremiumSettlementCurrency', 'PremiumSettlementAmount', 'ReceiveIMM Period', 'PayIMMPeriod', 'Reserved', 'ClearingFacility', 'Strike', 'CcpTradeRef', 'BreakClauseFrequency', 'BlockId', 'BlockAmount', 'Cross Currency Premium Payment', - 'Premium Payment Amount', 'Netting Id', 'BreakClauseDate']} + 'Premium Payment Amount', 'Netting Id', 'BreakClauseDate'], + 'future_trades': [ + "Deal Type", "Deal ID", "Action", "Client", "Reserved", "Reserved", + "Folder", "Custodian", "Cash Account", "Counterparty", "Comments", + "State", "Trade Date", "Settlement Date", "Reserved", + "GlopeOp Security Identifier", "Reserved", "Reserved", "Reserved", + "Bloomberg Ticker", "RIC", "Security Description", + "Transaction Indicator", "SubTransaction Indicator", + "Quantity", "Price", "Commission", "Tax", "VAT", + "Trade Currency", "Reserved", "Reserved", "Broker Short Name", + "MaturityDate", "Exchange", "Client Reference", "Swap Type", + "Initial Margin", "Initial Margin Currency", "Future Event", + "Commission Entries", "BlockId", "Block Amount"] +} def get_effective_date(d): return previous_twentieth(d + datetime.timedelta(days=1)) @@ -141,11 +154,11 @@ def build_line(obj, queue_name='bond_trades'): 'expiration_date': 'ExpirationDate'} rename_keys(obj, rename_cols) - + if queue_name in ['bond_trades', 'swaption_trades', 'future_trades']: + obj['Transaction Indicator'] = "Buy" if obj['buysell'] else "Sell" if queue_name == 'bond_trades': obj['Deal Type'] = 'MortgageDeal' obj['Portfolio'] = 'MORTGAGE' - obj['Transaction Indicator'] = "Buy" if obj['buysell'] else "Sell" obj['Delivery'] = 'S' ## zero coupon bond if obj['CUSIP'] != obj['GlopeOp Security Identifier']: @@ -153,7 +166,6 @@ def build_line(obj, queue_name='bond_trades'): elif queue_name == 'swaption_trades': obj['Deal Type'] = 'SwaptionDeal' obj['Portfolio'] = 'OPTIONS' - obj['Transaction Indicator'] = "Buy" if obj['buysell'] else "Sell" obj['ExerciseType'] = 'European' obj['SettlementMode'] = 'Delivery' rename_keys(obj, {'Settlement Date': 'PremiumSettlementDate', @@ -193,8 +205,17 @@ def build_line(obj, queue_name='bond_trades'): obj['InitialMarginPercentage'] = obj.pop('initial_margin_percentage') if obj['InitialMarginPercentage']: obj['InitialMarginCurrency'] = obj['Currency'] - return [obj.get(h, None) for h in HEADERS[queue_name]] + elif queue_name == 'future_trades': + obj['Deal Type'] = 'FutureDeal' + rename_keys(obj, {'currency':'Trade Currency', + 'commission': 'Commission', + 'quantity': 'Quantity', + 'swap_type': 'Swap Type', + 'bbg_ticker': 'Bloomberg Ticker', + 'Currency': 'Trade Currency', + 'exchange': 'Exchange'}) + return [obj.get(h, None) for h in HEADERS[queue_name]] def get_bbg_data(conn, session, identifier, cusip=None, isin = None, settle_date = None, asset_class=None, **kwargs): @@ -298,9 +319,10 @@ def generate_csv(l, queue_name='bond_trades'): return output.getvalue() def get_filename(timestamp, queue_name): - d = {'bond_trades':'Mortgages', + d = {'bond_trades': 'Mortgages', 'cds_trades':'CreditDefaultSwapDeal', - 'swaption_trades': 'SwaptionDeal'} + 'swaption_trades': 'SwaptionDeal', + 'future_trades': 'Future'} return 'Serenitas.ALL.{0:%Y%m%d.%H%M%S}.{1}.csv'.format(timestamp, d[queue_name]) def upload_file(timestamp, queue_name='bond_trades'): @@ -341,7 +363,7 @@ if __name__=="__main__": q = get_redis_queue() serenitasdb = dbconn('serenitasdb') dawndb = dbconn('dawndb') - for queue_name in ['bond_trades', 'cds_trades', 'swaption_trades']: + for queue_name in ['bond_trades', 'cds_trades', 'swaption_trades', 'future_trades']: list_trades = get_trades(q, queue_name) if list_trades: if queue_name == 'bond_trades': |
