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

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

介绍远期与期货的合约机制、保证金、结算和持有成本定价,并说明基差、到期与杠杆风险。

完成状态保存在当前浏览器,可随时取消。

阶段 3 · 研究主线 · 第51–54讲

期货与跨资产研究

本模块要解决

  • 理解合约乘数、保证金、期限结构、展期与连续合约
  • 研究期货均值回归、价差和配对策略

研究纪律

  • 明确主力切换、回溯调整和可交易合约规则
  • 绩效按合约乘数、保证金、手续费与展期成本计算

期货合约是标准化的金融衍生工具,其价值取决于标的资产价格变动。与股票不同,期货具有独特的交易机制和定价逻辑。本指南将循序渐进地解析期货的核心概念。

衍生品基础#

什么是衍生品?#

  • 定义:价值依附于标的资产(如商品、股票指数)的金融工具

  • 功能:风险管理、价格发现、投机套利

  • 常见类型:期货、期权、互换

远期合约(Forward Contract)#

运作机制

  • 买卖双方约定未来特定时间以预定价格(K)交易标的资产

  • 多空双方收益函数:

    • 多头收益:Plong=STKP_{long} = S_T - K

    • 空头收益:Pshort=KSTP_{short} = K - S_T

code
import numpy as np
import matplotlib.pyplot as plt

K = 50  # 交割价格
S_T = np.linspace(0, 100, 200)  # 到期价格可能值

plt.figure(figsize=(12,6))
plt.subplot(1,2,1)
plt.plot(S_T, S_T - K, label='多头收益')
plt.axvline(K, color='r', linestyle='--')
plt.title('多头收益曲线')
plt.legend()

plt.subplot(1,2,2)
plt.plot(S_T, K - S_T, label='空头收益')
plt.axvline(K, color='r', linestyle='--')
plt.title('空头收益曲线')
plt.tight_layout()

期货合约机制#

期货与远期的区别#

特征远期合约期货合约
交易场所场外交易(OTC)交易所交易
标准化程度可定制完全标准化
对手方风险较高交易所担保,风险极低
保证金制度逐日盯市制度

关键要素解析#

  1. 合约规格

    • 标的资产

    • 合约规模(如1手原油=1000桶)

    • 报价单位(美元/桶)

  2. 交割条款

    • 交割月份(F=1月,G=2月...)

    • 最后交易日(如CLH17在3月20日到期)

    • 交割方式(实物/现金)

code
import yfinance as yf

# 获取原油期货数据示例
crude_oil = yf.download('CL=F', start='2023-01-01', end='2023-06-30')
print(f"原油期货最新报价:{crude_oil['Close'].iloc[-1]:.2f}美元/桶")

保证金与风险控制#

保证金账户运作#

  • 初始保证金:开仓时缴纳(如每手$5,000)

  • 维持保证金:最低账户余额(如$4,000)

  • 追缴保证金:当账户余额低于维持保证金时需补足

示例计算

假设交易5手玉米期货(每手5,000蒲式耳):

code
initial_margin = 990 * 5  # 初始保证金
maintenance_margin = 900 * 5  # 维持保证金

# 模拟每日盈亏
price_changes = [2, -5, 3, -7, 4]  # 价格变动(美元/蒲式耳)
margin_account = initial_margin

for day, change in enumerate(price_changes, 1):
    margin_account += change * 5000  # 每手规模5,000
    print(f"第{day}天 账户余额:${margin_account:,.2f}")
    if margin_account < maintenance_margin:
        print("触发保证金追缴!需补足至初始保证金")
        margin_account = initial_margin

逐日盯市(Mark-to-Market)#

  • 每日结算盈亏

  • 账户余额实时反映持仓价值

  • 防止风险积累的重要机制

价格形成机制#

期货定价模型#

持有成本模型

F=S×e(r+sy)TF = S \times e^{(r + s - y)T}

  • S:现货价格

  • r:无风险利率

  • s:存储成本

  • y:便利收益

Contango与Backwardation#

现象特征市场预期
Contango期货价 > 现货价预计未来供给充足
Backwardation期货价 < 现货价预计未来供给紧张
code
# Contango示例
import pandas as pd

spot_prices = pd.Series([50, 51, 52, 53], name='Spot')
futures_prices = pd.Series([53, 52.5, 52, 51], name='Futures')

plt.plot(spot_prices, label='现货价格')
plt.plot(futures_prices, label='期货价格')
plt.title('Backwardation现象示例')
plt.legend()

实战练习#

  1. 计算保证金需求

    • 假设黄金期货合约规模100盎司

    • 当前价格$1,800/盎司

    • 保证金比例5%

    • 计算交易3手需要的初始保证金

  2. 分析价格曲线

    使用yfinance获取标普500指数期货(ES=F)数据:

code
es = yf.download('ES=F', period='6mo')
es['Close'].plot(title='S&P 500期货价格走势')

观察是否存在Contango或Backwardation

常见问题解答#

Q:个人投资者如何进行实物交割?

A:多数经纪商会要求平仓,实物交割通常仅限机构。个人持仓若未平仓可能被强制平仓

Q:如何选择合约月份?

参考步骤:

  1. 查看各月份成交量

  2. 选择主力合约(通常近月合约流动性最佳)

  3. 注意展期时间(通常到期前1周)

Q:期货杠杆有多大?

杠杆不是某类合约的固定倍数,而是合约名义价值与实际占用保证金之比,会随交易所、经纪商、波动率和持仓集中度动态变化。研究与风控必须使用当时有效的合约乘数和保证金规则,并对追加保证金情景做压力测试。

连续合约与回测口径清单#

  1. 明确主力切换依据、展期日期和可交易时点,不能事后选择最有利的换月规则

  2. 区分不复权、价差后复权与比例后复权序列;复权连续价适合信号研究,但不能直接当作真实成交价格或累计收益

  3. 使用逐合约成交价计算持仓盈亏,并单独归因现货变动、基差与展期收益

  4. 正确处理合约乘数、报价单位、币种、交易日历、涨跌停、手续费、保证金和交割规则

  5. 在流动性迁移和临近到期时检验滑点、容量及无法换月的压力情景


通过本指南,您已掌握期货合约的基本原理与核心机制。下一步可深入研究:

  • 期货套利策略

  • 跨期价差交易

  • 期权与期货的组合应用

建议实践操作时使用模拟账户,熟悉保证金管理和风险控制流程。