文章内容
2023/7/27 15:40:50,作 者: 黄兵
均值 - 方差投资组合理论
下面的 Python 从远程检索数据文件,根据投资者的目标选择一些列字段,并从价格时间序列数据中计算对数收益率。
示例代码:
import numpy as np
import pandas as pd
from pylab import plt, mpl
from scipy.optimize import minimize
plt.style.use('seaborn')
mpl.rcParams['savefig.dpi'] = 300
mpl.rcParams['font.family'] = 'serif'
np.set_printoptions(precision=5, suppress=True, formatter={'float': lambda x: f'{x:6.3f}'})
# 从远程位置检索历史终日数据
url = 'http://hilpisch.com/aiif_eikon_eod_data.csv'
raw = pd.read_csv(url, index_col=0, parse_dates=True).dropna()
raw.info()
# 指定需要检索的字段
symbols = ['AAPL.O', 'MSFT.O', 'INTC.O', 'AMZN.O', 'GLD']
# 计算所有时间序列的对数收益率
rets = np.log(raw[symbols] / raw[symbols].shift(1)).dropna()
# 绘制选定字段的标准化金融时间序列
(raw[symbols] / raw[symbols].iloc[0]).plot(figsize=(10, 6))
最后运行结果如下:
这里需要注意导入的几个库,一个是 matplotlib 我们可以通过如下方式安装:
pip 方式安装:
pip install matplotlib
使用 conda 方式安装:
conda install -c conda-forge matplotlib
SciPy 是基于NumPy 构建的数学算法和便利函数的集合。它通过为用户提供用于操作和可视化数据的高级命令和类,为 Python 增添了强大的功能。
pip 安装方式:
python -m pip install scipy
使用 conda 方式安装:
conda install scipy
参考资料:
1、Matplotlib 3.7.2 documentation
其他相关推荐:
3、期货:内盘外盘
评论列表