跳到主内容
研究主线期货与跨资产研究 · 第51–54讲1/4 · 配套练习模块导览 →
练习

第51讲:期货入门 (Introduction to Futures) · 练习

比较现货、远期和期货现金流,使用持有成本模型计算理论价格,并模拟每日盯市和保证金变化。

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

Exercise 1: 期货合约与现货市场#

问题背景#

2016年某玉米种植者选择在现货市场出售产品,请通过以下数据分析该决策是否明智:

  • 计划出售量:15,000蒲式耳

  • 期货头寸建立时间:2016-06-01

  • 现货交割日与期货到期日同为2016-09-14

  • CORN ETF每单位代表6蒲式耳现货价格

数据准备#

code
import yfinance as yf
import pandas as pd
import matplotlib.pyplot as plt

# 基础参数设置
bushels = 15000
spot_symbol = 'CORN'  # ETF代码
futures_symbol = 'ZC=F'  # 芝加哥期货交易所玉米期货示例代码

# 获取现货价格数据(2016年数据可能受限,需确认数据可用性)
spot_data = yf.download(spot_symbol, start='2016-06-01', end='2016-09-15')
spot_prices = spot_data['Close']

# 获取期货价格数据(实际需验证合约代码)
futures_data = yf.download(futures_symbol, start='2016-06-01', end='2016-09-15')
futures_prices = futures_data['Close']

# 关键日期标记
sale_date = '2016-09-14'
entry_date = '2016-06-01'

# 可视化价格走势
plt.figure(figsize=(12,6))
spot_prices.plot(label='Spot Price')
futures_prices.plot(label='Futures Price')
plt.axvline(pd.to_datetime(sale_date), color='r', linestyle='--', label='Settlement Date')
plt.legend()
plt.show()

分析要求#

  1. 计算现货市场销售收入(注意单位转换)

  2. 计算期货合约锁定收益(需验证合约乘数)

  3. 比较两种方式的收益差异

  4. 绘制现金流对比图(选做)


Exercise 2: 持有成本模型#

理论价格模拟#

a. 期货溢价情景#

构建理论价格模型,参数设定:

  • 初始现货价:$1000

  • 持有成本率:0.01/日

  • 到期时间:100交易日

  • 价格波动服从正态分布

代码框架#

code
import numpy as np

N = 100
cost_of_carry = 0.01
np.random.seed(42)

# 初始化序列容器
spot_series = np.zeros(N)
futures_series = np.zeros(N)

# 初始值设置
spot_series[0] = 1000
futures_series[0] = spot_series[0] * np.exp(cost_of_carry * N)

# 动态模拟过程
for t in range(1, N):
    spot_series[t] = spot_series[t-1] * (1 + np.random.normal(0, 0.02))  # 2%日波动
    remaining_days = N - t
    futures_series[t] = spot_series[t] * np.exp(cost_of_carry * remaining_days)

# 可视化结果

b. 现货溢价情景#

调整持有成本率为负值(-0.01/日),重构价格序列

分析要求#

  1. 补全价格生成循环逻辑

  2. 比较不同成本率下期现收敛特征

  3. 解释两种市场结构的形成机制


(注:期货合约实际交易需考虑合约规格、展期规则等复杂因素,本练习为简化模型)

完成练习后,自评一次

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