diff options
Diffstat (limited to 'python/position.py')
| -rw-r--r-- | python/position.py | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/python/position.py b/python/position.py index d1e289e6..ff0a7fc3 100644 --- a/python/position.py +++ b/python/position.py @@ -1,4 +1,4 @@ -from bbg_helpers import init_bbg_session, retreive_data, process_msgs +from bbg_helpers import init_bbg_session, retreive_data import pandas as pd from sqlalchemy import create_engine from pandas.tseries.offsets import BDay @@ -14,15 +14,6 @@ def get_list(workdate, asset_class=None, include_unsettled=True): positions.loc[positions.identifier.str.len() == 12, 'isin'] = positions.identifier return positions -def get_bbg_numbers(session, workdate, fields): - positions = get_list(workdate) - positions['bbg_id'] = positions.cusip.where(positions.cusip.notnull(), positions['isin']) + \ - ' ' + positions.bbg_type - data = retreive_data(session, positions.bbg_id.tolist(), fields, workdate) - df = process_msgs(data) - df = pd.DataFrame.from_dict(df, orient='index') - return positions.merge(df, left_on='bbg_id', right_index=True) - def backpopulate_marks(begin_str='2015-01-15', end_str='2015-07-15'): pattern = re.compile("\d{4}-\d{2}-\d{2}") list_of_daily_folder = (fullpath for (fullpath, _, _) in os.walk('/home/share/Daily') @@ -48,17 +39,24 @@ def update_securities(session, fields): securities['bbg_id'] = securities.cusip.where(securities.cusip.notnull(), securities['isin']) + \ ' ' + securities.bbg_type data = retreive_data(session, securities.bbg_id.tolist(), fields) - df = process_msgs(data) - df = pd.DataFrame.from_dict(df, orient='index') + df = pd.DataFrame.from_dict(data, orient='index') return securities.merge(df, left_on='bbg_id', right_index=True) +def init_fx(session, startdate): + currencies = ['EURUSD', 'CADUSD'] + securities = [c + ' Curncy' for c in currencies] + data = retreive_data(session, securities, ['PX_LAST'], start_date=startdate) + data = data['CADUSD Curncy'].merge(data['CADUSD Curncy'], left_on='date', right_on='date') + data.rename(columns={'PX_LAST_x': 'eurusd', + 'PX_LAST_y': 'cadusd'}, inplace=True) + data.to_sql('fx', engine, index=False, if_exists='append') + def update_fx(session, conn, currencies): securities = [c + ' Curncy' for c in currencies] data = retreive_data(session, securities, ['FIXED_CLOSING_PRICE_NY']) - d = process_msgs(data) colnames = ['date'] values = [pd.datetime.today()] - for k, v in d.items(): + for k, v in data.items(): currency_pair = k.split(' ')[0].lower() colnames.append(currency_pair) values.append(v['FIXED_CLOSING_PRICE_NY']) @@ -74,8 +72,7 @@ def populate_cashflow_history(session, conn, workdate): ' ' + securities.bbg_type securities.set_index('bbg_id', inplace=True) data = retreive_data(session, securities.index.tolist(), ['HIST_CASH_FLOW']) - df = process_msgs(data) - for k, v in df.items(): + for k, v in data.items(): to_insert = v.get('HIST_CASH_FLOW') if to_insert is not None: identifier = securities.loc[k,'identifier'] @@ -108,3 +105,5 @@ if __name__=="__main__": ",coupon=%(CUR_CPN)s WHERE identifier=%(identifier)s", df.to_dict('records')) conn.commit() + # with init_bbg_session('192.168.0.4', 8194) as session: + # init_fx(session, pd.datetime(2013, 1, 1)) |
