AI升成的和你的差不多啊,算出beta 也挣不了钱,牛顿把天体运行也算出了,哈哈哈
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}")