def granger_casualties(banks, full_period=True, date_start="", date_end=""): banks_name = [] #Creo la matrice delle correlazioni for x in banks: banks_name.append(x.ticker) corr_matrix = pd.DataFrame(index=banks_name, columns=banks_name) #Senza thread for x in corr_matrix.index: for y in corr_matrix.columns: bank_a = bank.find_ticker_in_list(x,banks) bank_b = bank.find_ticker_in_list(y,banks) corr_matrix.loc[x,y] = correlation_a_granger_caused_by_b(bank_a,bank_b,full_period=full_period, date_start=date_start, date_end=date_end) ''' #Thread version def correlation_for_thread(x, y, banks, full_period, date_start, date_end): bank_a = bank.find_ticker_in_list(x, banks) bank_b = bank.find_ticker_in_list(y, banks) corr_matrix.loc[x, y] = correlation_a_granger_caused_by_b(bank_a, bank_b, full_period=full_period, date_start=date_start, date_end=date_end) thread_list = [] for x in corr_matrix.index: for y in corr_matrix.columns: args = [x, y, banks, full_period, date_start, date_end] t = Thread(target=correlation_for_thread, args=args) thread_list.append(t) t.start() for thread in thread_list: thread.join() ''' return corr_matrix
def granger_casualties(banks, full_period=True, date_start="", date_end=""): banks_name = [] #Creo la matrice delle correlazioni for x in banks: banks_name.append(x.ticker) corr_matrix = pd.DataFrame(index=banks_name, columns=banks_name) for x in corr_matrix.index: for y in corr_matrix.columns: bank_a = bank.find_ticker_in_list(x, banks) bank_b = bank.find_ticker_in_list(y, banks) corr_matrix.loc[x, y] = correlation_a_granger_caused_by_b( bank_a, bank_b, full_period=full_period, date_start=date_start, date_end=date_end) return corr_matrix
def portfolio_covar(covar_matrix, banks, year, quarter): covar = covar_matrix.copy() covar['Weighted'] = 0 mva_sum = 0 for ticker in covar['Ticker']: bank = find_ticker_in_list(ticker,banks) mask = (bank.mva['Year'] == year ) & ( bank.mva['Quarter'] == quarter) mva = float(bank.mva[mask]['MVA']) mva_sum += mva covar.loc[covar['Ticker'] == ticker, 'Weighted'] = mva * covar.loc[covar['Ticker'] == ticker, 'COVAR'] portfolio_covar = covar['Weighted'].sum() / mva_sum return portfolio_covar
def portfolio_ses(datamatrix, banks, year, quarter): port_ses = 0 dm = datamatrix.copy() dm['Weighted'] = 0 mva_sum = 0 for ticker in dm['Ticker']: bank = find_ticker_in_list(ticker, banks) mask = (bank.mva['Year'] == year) & (bank.mva['Quarter'] == quarter) mva = float(bank.mva[mask]['MVA']) mva_sum += mva dm.loc[dm['Ticker'] == ticker, 'Weighted'] = mva * dm.loc[dm['Ticker'] == ticker, 'SES'] port_ses = dm['Weighted'].sum() / mva_sum return port_ses
import pandas as pd import bank from getdata import get_banks_data if __name__ == '__main__': banks = get_banks_data() yealds1 = bank.find_ticker_in_list('ACA:FP', banks).yealds yealds2 = bank.find_ticker_in_list('AKTAV:FH', banks).yealds yeald_inner_join = pd.merge(yealds1, yealds2, on='Date', how='inner') print(yeald_inner_join[['Yeald_x', 'Yeald_y']]) print(yeald_inner_join.head()) print(yeald_inner_join.tail()) date_start = "2010-1-10" date_end = "2011-1-1" mask = (yeald_inner_join['Date'] > date_start) & (yeald_inner_join['Date'] <= date_end) yeald_inner_join = yeald_inner_join.loc[mask] print(yeald_inner_join.head())
predictions = results.predict(X) df = x.yealds plt.plot(df['Date'], df['Yeald'], label="Sample") plt.plot(df['Date'], predictions, label="Prediction") plt.title(x.name) plt.legend() plt.xlabel('Date') plt.ylabel('Yeald') plt.show() #Testo il metodo di ricerca in lista if False: x = bank.find_ticker_in_list('ACA:FP', banks) print(x.name) yealds = x.yealds print(yealds['Date']) #Testo il metodo get_states_variable() if False: df = get_states_variable() print(df.head()) #Plotto il grafico andamentale del portfolio covar if False: dates = [[2005, 3, 2007, 2], [2005, 4, 2007, 3], [2006, 1, 2007, 4],