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
示例#3
0
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())
示例#6
0
        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],