🔴
入学要求
💯
能力测试
🛣️
课程安排
🕹️
研究资源

练习

import numpy as np
import matplotlib.pyplot as plt

练习 1:直方图

a. 回报率

查找 SPY 在 7 年窗口内的每日回报率。

data = get_pricing('SPY', fields='price', start_date='2010-01-01', end_date='2017-01-01')
## 你的代码写在这里

b. 绘图

使用课程中介绍的技术,绘制回报率的直方图。

## 你的代码写在这里
plt.xlabel('随机数');
plt.ylabel('观察次数');
plt.title('随机数的频率分布');

c. 累积分布

绘制回报率的累积分布直方图。

## 你的代码写在这里

练习 2:散点图

a. 数据

获取过去 5 年内 McDonalds(MCD)和星巴克(SBUX)的每日收盘价数据。

SPY  = get_pricing('SPY', fields='close_price', start_date='2013-06-19', end_date='2018-06-19', frequency='daily')
SBUX = get_pricing('SBUX', fields='close_price', start_date='2013-06-19', end_date='2018-06-19', frequency='daily')
## 你的代码写在这里

b. 绘图

绘制 SPY 和星巴克的散点图。

## 你的代码写在这里
plt.title('SPY 和 SBUX 的散点图');
plt.xlabel('SPY 价格');
plt.ylabel('SBUX 价格');

c. 回报率绘图

绘制 SPY 和星巴克回报率的散点图。

SPY_R = SPY.pct_change()[1:]
SBUX_R = SBUX.pct_change()[1:]
## 你的代码写在这里
plt.title('SPY 和星巴克回报的散点图');
plt.xlabel('SPY 回报率');
plt.ylabel('SBUX 回报率');

提示:散点图的两个参数必须具有相同的数据点数量,否则会报错。


练习 3:折线图

a. 获取数据

使用课程中介绍的技术,查找星巴克(SBUX)和 Dunkin Brands Group(DNKN)在 2 年期间的开盘价,并将结果打印为表格。

data = get_pricing(['SBUX', 'DNKN'], fields='open_price', start_date='2015-01-01', end_date='2017-01-01')
## 你的代码写在这里

b. 数据结构

数据以 Pandas DataFrame 对象返回。索引数据以将其列名转换为简单字符串。

## 你的代码写在这里

c. 绘图

绘制 SBUX 股价随时间变化的折线图。记得标注轴标题和图表标题。

## 你的代码写在这里
plt.xlabel('时间');
plt.ylabel('价格');
plt.title('价格 vs 时间');

练习 4:最佳拟合图

任务说明

以下是一个两组数据的散点图。调整代码中的 a 和 b 参数,尝试绘制一条“拟合”数据的直线。这条线应看似描述了数据的某种模式。虽然有定量方法可以自动完成此任务,但我们希望你通过手动调整来培养直觉。

data1 = get_pricing('SBUX', fields='open_price', start_date='2013-01-01', end_date='2014-01-01')
data2 = get_pricing('SPY', fields='open_price', start_date='2013-01-01', end_date='2014-01-01')

rdata1 = data1.pct_change()[1:]
rdata2 = data2.pct_change()[1:]
plt.scatter(rdata2, rdata1);

# 调整以下参数
a = 0.0004
b = 1.14

x = np.arange(-0.02, 0.03, 0.01)
y = a + (b * x)
## 你的代码写在这里