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

练习

基础习题

习题1:行业组合对冲复现

问题:使用科技行业ETF(XLK)和医疗行业ETF(XLV),复现行业对冲策略的全过程

依赖数据

sector_etf = {'科技': 'XLK', '医疗': 'XLV'}
tickers = ['AAPL', 'MSFT', 'GOOGL', 'JNJ', 'PFE', 'MRK', 'SPY', 'XLK', 'XLV']
start = '2018-01-01'
end = '2020-12-31'

# 数据获取示例
prices = yf.download(tickers, start=start, end=end)['Close']
returns = prices.pct_change().dropna()

习题2:Buckle公式验证

问题:修改有效广度计算函数,验证当资产间平均相关系数ρ=0时,有效广度等于资产数量N

依赖函数

def effective_breadth(N, rho):
    return N / (1 + rho*(N-1))

# 测试用例
test_cases = [(5,0), (10,0), (20,0)]  # 应返回5,10,20

进阶习题

习题3:个股对冲分析

问题:计算苹果(AAPL)与微软(MSFT)在不同对冲阶段的相关性变化

依赖数据

tickers = ['AAPL', 'MSFT', 'SPY', 'XLK']  # XLK为科技行业ETF
start = '2019-01-01'
end = '2021-12-31'

# 数据准备
prices = yf.download(tickers, start=start, end=end)['Close']
returns = prices.pct_change().dropna()

习题4:动态对冲效果分析

问题:使用滚动窗口计算动态Beta值,比较静态Beta对冲与动态Beta对冲的效果差异

依赖代码框架

window_size = 60  # 滚动窗口长度
dynamic_residuals = pd.DataFrame()

for i in range(window_size, len(returns)):
    # 滚动窗口数据切片
    window_returns = returns.iloc[i-window_size:i]

    # 在此处补充动态Beta计算代码
    # ...

挑战习题

习题5:多因子风险模型实现

问题:在行业对冲基础上加入规模因子(SMB)和价值因子(HML),构建多因子对冲模型

依赖数据

# 三因子数据获取
ff_factors = yf.download('^SMB ^HML', start=start, end=end)['Close']
merged_returns = pd.concat([returns, ff_factors], axis=1).dropna()

习题6:对冲成本优化模拟

问题:在考虑交易手续费(0.1%每次调仓)的情况下,优化对冲策略的调仓频率

依赖参数

transaction_cost = 0.001  # 单边交易成本
rebalance_freq_options = [5, 10, 20]  # 调仓周期选项(交易日)
initial_capital = 1_000_000  # 初始资金