计算股票波动率,python代码
时间: 2023-08-06 21:16:10 浏览: 213
以下是使用Python计算股票波动率的示例代码,假设我们要计算某只股票过去一年的波动率:
```python
import pandas as pd
import numpy as np
import yfinance as yf
# 获取股票价格数据
symbol = 'AAPL' # 股票代码
start_date = '2020-01-01' # 开始日期
end_date = '2020-12-31' # 结束日期
prices = yf.download(symbol, start=start_date, end=end_date)['Adj Close'] # 获取收盘价
# 计算对数收益率
log_returns = np.log(prices / prices.shift(1)).dropna()
# 计算波动率
volatility = log_returns.std() * np.sqrt(252) # 假设一年有252个交易日
print(f'{symbol}的波动率为{volatility:.2%}')
```
代码中使用了pandas、numpy和yfinance库,需要先安装。其中,`yf.download()`函数可以从雅虎财经获取股票价格数据,返回的是一个DataFrame对象。计算对数收益率使用了numpy的`log()`函数和pandas的`shift()`方法,计算波动率使用了numpy的`std()`函数。最后输出的波动率使用了f-string格式化输出。
相关问题
rv波动率python代码
根据引用[1],RV波动率是一种金融学中的波动率计算方法,它是通过计算一段时间内每日收盘价的对数差值的平方和来计算的。以下是一个简单的Python代码示例,用于计算给定时间段内的RV波动率:
```python
import pandas as pd
import numpy as np
# 读取数据
data = pd.read_csv('data.csv')
# 计算对数收益率
data['log_return'] = np.log(data['Close']) - np.log(data['Close'].shift(1))
# 计算RV波动率
rv = np.sqrt(np.sum(data['log_return']**2))
print('RV波动率为:', rv)
```
在这个示例中,我们使用了Pandas和NumPy库来读取数据、计算对数收益率和计算RV波动率。请注意,这只是一个简单的示例,实际的RV波动率计算可能需要更多的数据处理和统计方法。
滚动波动率python代码
我可以回答这个问题。以下是一个简单的滚动波动率的Python代码示例:
```python
import numpy as np
def rolling_volatility(data, window):
"""
计算滚动波动率
:param data: 数据序列
:param window: 滚动窗口大小
:return: 滚动波动率序列
"""
vol = np.zeros_like(data)
for i in range(window - 1, len(data)):
vol[i] = np.std(data[i - window + 1:i + 1])
return vol
```
这个函数接受一个数据序列和一个滚动窗口大小作为输入,返回一个滚动波动率序列。
阅读全文