从tushare中调取五只股票从2021.06.01到2024.10.18的所有日线数据,用这些数据的收盘价计算均值和方差,在均值-方差坐标系上绘制出可行集
时间: 2024-10-21 12:15:23 浏览: 40
首先,你需要安装Tushare Python库,如果尚未安装,可以使用pip命令进行安装:
```bash
pip install tushare
```
然后按照以下步骤获取并处理数据:
1. **导入所需库并设置Tushare API Key(需要先注册获取API)**:
```python
import tushare as ts
ts.set_token('your_tushare_token') # 替换为你的Tushare API密钥
pro = ts.pro_api()
```
2. **获取指定时间段内的股票日线数据**:
```python
stock_list = ['000001.SZ', '000002.SZ', '000003.SZ', '000004.SZ', '000005.SZ'] # 五只股票的代码
start_date = '20210601'
end_date = '20241018'
df = pro.daily(ts_code=stock_list, trade_date=start_date:end_date)
```
这将返回一个DataFrame,包含收盘价等信息。
3. **计算收盘价的均值和方差**:
```python
means = df['close'].mean()
variances = df['close'].var()
```
4. **准备绘图数据**:
```python
x = np.linspace(means - 3 * variances, means + 3 * variances, 100) # 假设标准差为3倍方差
y = x
```
5. **绘制可行集**:
```python
plt.figure(figsize=(10, 6))
plt.plot(x, y, linestyle='dashed', label='Mean-Variance Frontier')
plt.scatter(df['close'], df['close'], c='r', marker='o', s=10, label='Stock Prices')
plt.axhline(y=means, linewidth=1, color='k', label='Mean')
plt.axvline(x=means, linewidth=1, color='k')
plt.legend()
plt.xlabel('Closing Price Mean')
plt.ylabel('Closing Price Variance')
plt.title('Mean-Variance Analysis of Stock Prices')
plt.grid(True)
plt.show()
```
这个脚本将生成一个散点图,显示每只股票的日收盘价以及它们的平均值和方差,同时描绘出均值-方差可行集的虚线。
阅读全文