Ejemplo n.º 1
0
df = pd.read_csv(in_folder + in_file, index_col='trade_id')
df_netting_set = pd.read_csv(in_folder + in_file_netting_set,
                             index_col='netting_set')
df_sa_table2_supervisory_parameters = pd.read_csv(
    in_folder + in_file_sa_table2_supervisory_parameters,
    index_col='asset_class_cd')

#get the Asset Class
# SD_i = supervisory duration
# d_i = adjusted notional
df['asset_cd'] = df.apply(lambda x: df_sa_table2_supervisory_parameters.at[x[
    'asset_class_cd'], 'asset_cd'],
                          axis=1)
df['SD_i'] = df.apply(
    lambda x: sa_calcs.supervisory_duration(x['S_i'], x['E_i'], x['asset_cd']),
    axis=1)
df['d_i'] = df.apply(lambda x: sa_calcs.adjusted_notional(
    x['notional'], x['S_i'], x['E_i'], x['asset_cd']),
                     axis=1)
df['hedging_factor_cd'] = df['asset_class_cd'] + '_' + df[
    'hedging_set'] + '_' + df['hedging_factor']
df['hedging_set_cd'] = df['asset_class_cd'] + '_' + df['hedging_set']

#get MPOR for the netting set, then associate this value with the respective trades
df_netting_set['MPOR'] = df_netting_set.apply(
    lambda x: sa_calcs.MPOR(x['margin_freq_days']), axis=1)
df['MPOR_i'] = df.apply(lambda x: df_netting_set.at[x['netting_set'], 'MPOR'],
                        axis=1)
df['MF_i'] = df.apply(lambda x: sa_calcs.MF_i(x['E_i'], x['MPOR_i']), axis=1)
Ejemplo n.º 2
0
#out files
out_folder = in_folder
out_file = 'out_' + in_file.replace('.csv','.xlsx')


df = pd.read_csv(in_folder + in_file,index_col='trade_id')
df_netting_set = pd.read_csv(in_folder + in_file_netting_set,index_col='netting_set')
df_sa_table2_supervisory_parameters = pd.read_csv(in_folder + in_file_sa_table2_supervisory_parameters,index_col='asset_class_cd') 


#get the Asset Class
# SD_i = supervisory duration
# d_i = adjusted notional 
#get MPOR for the netting set, then associate this value with the respective trades
df['asset_cd'] = df.apply(lambda x: df_sa_table2_supervisory_parameters.at[x['asset_class_cd'],'asset_cd'], axis=1)
df['SD_i'] = df.apply(lambda x: sa_calcs.supervisory_duration(x['S_i'], x['E_i'], x['asset_cd']), axis=1)
df['d_i'] = df.apply(lambda x: sa_calcs.adjusted_notional(x['notional'],x['S_i'], x['E_i'], x['asset_cd']), axis=1)
df['hedging_factor_cd'] = df['asset_cd'] + '_' + df['hedging_set'] + '_' + df['hedging_factor'] 
df['hedging_set_cd'] = df['asset_cd'] + '_' + df['hedging_set']
df_netting_set['MPOR'] = df_netting_set.apply(lambda x: sa_calcs.MPOR(x['margin_freq_days']), axis=1)
df['MPOR_i'] = df.apply(lambda x: df_netting_set.at[x['netting_set'],'MPOR'], axis=1)
df['MF_i'] = df.apply(lambda x: sa_calcs.MF_i(x['E_i'],x['MPOR_i']), axis=1)
print df

#aggregate by hedge_factor
# hedge factor for ir = time_bucket
#D_jk = effective_notional
#D_jk = sum( delta_i * d_i * MF_i )
df_hedging_factor = df.groupby(['hedging_factor_cd'])[['netting_set','asset_cd','asset_class_cd','hedging_set_cd','hedging_set','hedging_factor']].first()
df_hedging_factor['D_jk'] = ([sum(df[df['hedging_factor_cd']==hedging_factor]
                                .apply(lambda x: x['delta_i'] * x['d_i'] * x['MF_i'], axis=1))
Ejemplo n.º 3
0
#all trades are contract_type = Interest_Rate
df['asset_class_cd'] = ['interest_rate', 'interest_rate', 'interest_rate']

#assign trades to hedging set by the base currency
df['hedging_set'] = df['base_currency']

#assign to {0Y_1Y, 1Y+_5Y, 5Y+}
df['maturity_bucket'] = ['5Y+', '1Y+_5Y', '5Y+']

#assign start and end date
df['S_i'] = [0, 0, 1]
df['E_i'] = [10, 4, 11]

#assign supervisory duration
df['SD_i'] = df.apply(
    lambda x: sa_calcs.supervisory_duration(x['S_i'], x['E_i']), axis=1)

#d_i = adjusted notional
df['d_i'] = df.apply(
    lambda x: sa_calcs.adjusted_notional(x['notional'], x['S_i'], x['E_i']),
    axis=1)

#supervisory delta, plus other jumps
############################################################## TBD ##########################################################
# delta_i = supervisory delta
df['delta_i'] = [1, -1, -0.27]
df['MF_i'] = [1, 1, 1]

#aggregate by bucket, hedging_set
df['bucket_cd'] = df['asset_class_cd'] + '_' + df['hedging_set'] + '_' + df[
    'maturity_bucket']