任选两只股票用Python使用日度交易行情信息构造10日简单移动平均线、动量和滚动波动率三个特征,分别画出时间序列图,附上完整代码
时间: 2024-03-24 11:36:44 浏览: 54
好的,我理解您的问题了。以下是我提供的Python代码,其中我选择了AAPL和IBM两个股票,使用了pandas和yfinance库来获取日交易数据,然后计算了10日简单移动平均线、动量和滚动波动率三个特征,并画出了时间序列图。
```python
import pandas as pd
import yfinance as yf
import matplotlib.pyplot as plt
# 获取AAPL和IBM的交易数据
aapl = yf.download("AAPL", start="2020-01-01")
ibm = yf.download("IBM", start="2020-01-01")
# 计算10日简单移动平均线
aapl['SMA'] = aapl['Close'].rolling(window=10).mean()
ibm['SMA'] = ibm['Close'].rolling(window=10).mean()
# 计算动量
aapl['Momentum'] = aapl['Close'] - aapl['Close'].shift(1)
ibm['Momentum'] = ibm['Close'] - ibm['Close'].shift(1)
# 计算滚动波动率
aapl['Rolling Volatility'] = aapl['Close'].rolling(window=10).std()
ibm['Rolling Volatility'] = ibm['Close'].rolling(window=10).std()
# 画出时间序列图
plt.figure(figsize=(15,5))
plt.plot(aapl['Close'], label='AAPL Close')
plt.plot(aapl['SMA'], label='AAPL 10-day SMA')
plt.plot(aapl['Momentum'], label='AAPL Momentum')
plt.plot(aapl['Rolling Volatility'], label='AAPL Rolling Volatility')
plt.legend(loc='upper left')
plt.title('AAPL')
plt.show()
plt.figure(figsize=(15,5))
plt.plot(ibm['Close'], label='IBM Close')
plt.plot(ibm['SMA'], label='IBM 10-day SMA')
plt.plot(ibm['Momentum'], label='IBM Momentum')
plt.plot(ibm['Rolling Volatility'], label='IBM Rolling Volatility')
plt.legend(loc='upper left')
plt.title('IBM')
plt.show()
```
希望这个代码对您有所帮助。如果您有任何其他问题,请随时问我。
阅读全文