跳到主内容
研究工具量化研究工具与数据基础 · 第1–5讲1/5 · 配套练习模块导览 →
练习

第1讲:研究入门 (Introduction to Research) · 练习

获取并清洗多资产数据,分析波动与收益分布,回测移动平均规则,并识别成交量异常点。

← 返回本讲讲义
完成状态保存在当前浏览器,可随时取消。

1. 多资产数据获取与清洗#

使用yfinance同时获取阿里巴巴(BABA)、京东(JD)在2021-2023年的完整交易日数据:

  • 验证数据集是否存在缺失值

  • 用向前填充法处理Open/High/Low/Close的缺失数据

  • 对Volume字段缺失值填充0

code
import yfinance as yf
import pandas as pd

tickers = ['BABA', 'JD']
raw_data = yf.download(tickers, start='2021-01-01', end='2023-12-31')

2. 波动率曲面分析#

获取英伟达(NVDA)2020-2023年日线数据:

  • 计算20日、60日、120日历史波动率(收益率标准差)

  • 将波动率序列与股价走势绘制在双坐标轴图表

  • 添加图例说明不同窗口长度的波动率特征

code
nvda = yf.download('NVDA', start='2020-01-01')['Close']

3. 收益分布特征分析#

对比分析特斯拉(TSLA)与通用汽车(GM)在新冠疫情期间(2020-2021)的收益率分布:

  • 计算两股票的日收益率偏度与峰度

  • 绘制叠加直方图比较分布形态

  • 添加正态分布曲线作为基准参考

code
import numpy as np
from scipy.stats import norm

pandemic_data = yf.download(['TSLA', 'GM'], start='2020-01-01', end='2022-01-01')['Close']

4. 移动平均策略回测#

选取标普500ETF(SPY)2015-2020年数据:

  • 构建双均线策略(20日与200日)

  • 计算每日策略信号(短期均线上穿/下穿长期均线)

  • 绘制价格与均线系统交互示意图

  • 标注典型的金叉/死叉发生位置

code
spy = yf.download('SPY', start='2015-01-01', end='2020-12-31')['Close']

5. 交易量异常检测#

分析苹果(AAPL)过去五年的交易量数据:

  • 计算交易量的20日Z-Score指标:

    Zt=Vtμ20σ20Z_t = \frac{V_t - \mu_{20}}{\sigma_{20}}

  • 标记Z-Score绝对值超过3倍的异常交易日

  • 在价格走势图上用垂直标记线标注异常量能日

code
aapl_volume = yf.download('AAPL', period='5y')['Volume']

完成练习后,自评一次

建议先独立作答,再展开参考答案进行核对。