AI升成的和你的差不多啊,算出beta 也挣不了钱,牛顿把天体运行也算出了,哈哈哈

来源: 2025-08-19 23:02:24 [旧帖] [给我悄悄话] 本文已被阅读:

import yfinance as yf
import pandas as pd
import numpy as np

def calculate_beta(stock_ticker, market_ticker='^GSPC', period='5y', interval='1d'):
  """
  Calculates the beta of a stock against a market index.

  Args:
    stock_ticker (str): The ticker symbol of the stock.
    market_ticker (str): The ticker symbol of the market index (default: S&P 500).
    period (str): The period for which to fetch data (e.g., '5y', '1y', '6mo').
    interval (str): The interval of data points (e.g., '1d', '1wk', '1mo').

  Returns:
    float: The calculated beta of the stock.
  """

  # Download historical data from Yahoo Finance
  stock_data = yf.download(stock_ticker, period=period, interval=interval)['Adj Close']
  market_data = yf.download(market_ticker, period=period, interval=interval)['Adj Close']

  # Calculate daily returns
  stock_returns = stock_data.pct_change().dropna()
  market_returns = market_data.pct_change().dropna()

  # Align the dataframes by date (in case of missing dates or different market holidays)
  aligned_returns = pd.DataFrame({'stock': stock_returns, 'market': market_returns}).dropna()

  # Calculate covariance between stock and market returns
  covariance = np.cov(aligned_returns['stock'], aligned_returns['market'])[0, 1]

  # Calculate variance of market returns
  market_variance = np.var(aligned_returns['market'])

  # Calculate beta
  beta = covariance / market_variance

  return beta

# Example usage:
stock_ticker = 'AAPL'  # Apple Inc.
market_ticker = '^GSPC' # S&P 500
beta = calculate_beta(stock_ticker, market_ticker)

print(f"The beta of {stock_ticker} against the {market_ticker} is: {beta:.2f}")