用python写一个计算股票收益率和波动率
时间: 2024-10-17 20:13:05 浏览: 36
在Python中,我们可以使用pandas库来处理金融数据,并结合numpy库计算股票收益率和波动率。这里是一个简单的例子:
```python
import pandas as pd
import numpy as np
# 假设df_data是一个包含日期和收盘价的DataFrame,例如从Yahoo Finance获取的数据
def calculate_stock_metrics(df_data):
# 计算每日收益率
df_data['Return'] = df_data['Close'].pct_change()
# 将第一天的收益率设为0,因为前一天没有数据
df_data.loc[0, 'Return'] = 0
# 计算简单收益率(日收益率的累计)
daily_returns = df_data['Return'].cumsum()
# 计算年化收益率 (假设一年有252个交易日)
annual_return = (daily_returns.iloc[-1] + 1) ** (252 / len(daily_returns)) - 1
# 计算波动率 (通常使用标准差衡量)
volatility = np.std(df_data['Return']) * np.sqrt(252)
return annual_return, volatility
# 使用函数并打印结果
annual_return, volatility = calculate_stock_metrics(df_data)
print(f"年化收益率: {annual_return:.4f}")
print(f"波动率: {volatility:.4f}")
阅读全文