[Python] Quants : Beta calculation using pandas

Discussão em 'Python' iniciado por Stack, Maio 30, 2025.

  1. Stack

    Stack Membro Participativo

    Need help in verifying the way beta is calculated in below two ways:

    beta = {
    'AAPL' : (df['AAPL'].rolling(252).corr(df['QQQ'])) * (df['AAPL'].rolling(252).std() ) / (df['QQQ'].rolling(252).std()),
    'AMZN' : (df['AMZN'].rolling(252).corr(df['QQQ']) * df['AMZN'].rolling(252).std() ) / (df['QQQ'].rolling(252).std()),
    'GOOGL' : (df['GOOGL'].rolling(252).corr(df['QQQ']) * df['GOOGL'].rolling(252).std() ) / (df['QQQ'].rolling(252).std()),
    'META' : (df['META'].rolling(252).corr(df['QQQ']) ) * (df['META'].rolling(252).std()) / (df['QQQ'].rolling(252).std()),
    'NFLX' : (df['NFLX'].rolling(252).corr(df['QQQ']) * df['NFLX'].rolling(252).std() ) / (df['QQQ'].rolling(252).std()),
    'QQQ' : (df['QQQ'].rolling(252).corr(df['QQQ']) * df['QQQ'].rolling(252).std() ) / (df['QQQ'].rolling(252).std()),
    }

    beta = pd.DataFrame(beta) beta

    The solution (in course) to calculate beta is given as below:

    ''' corr = ret.rolling(252).corr(ret['QQQ'])
    vol = ret.rolling(252).std()
    beta = (corr*vol).divide(vol['QQQ'],axis=0) '''

    Continue reading...

Compartilhe esta Página