项目状态
已完成
项目类型
策略研究
起始时间
Jun 15, 2025 → Aug 20, 2025
项目描述
复现并优化跨品种股指期货套利(年化收益13%,夏普1.53)与跨式组合波动率策略优化(VRP择时+ Zakamouline对冲,年化收益28.7%,夏普1.99),构建可复用的模块化研究框架,成果显著优于传统策略;
负责人
所属板块
开发衍生品(期权、期货)交易策略
学习收获
Daily-Futures-Arbitrary-Strategy
Yuyang-Yao75Updated Dec 21, 2025
notion image
💡

S(Situation)

为了深入理解 IF/IC 等股指期货跨品种套利 的研究思路,我选取东证期货金工团队的研究报告《股指期货套利策略系列四:跨品种套利的基差、动量与季节性特征》作为蓝本,希望在此基础上:
  • 完整复现 报告中的基差、动量、季节性三类信号;
  • 搭建一个模块化、可扩展的多因子策略研究框架,而不是单一 notebook;
  • 形成一套可以反复迭代的 日频策略研究平台(频率可通过换数据源扩展到更高频)。
这个项目在策略层面暂时不直接面向实盘——没有充分覆盖交易成本、滑点、保证金约束等,但它的规模足够大、流程足够完整,非常适合用来训练我对“一个量化策略从想法 → 数据 → 信号 → 回测 → 绩效分析”的全流程理解,同时系统学习 git 和工程化开发。
股指期货跨品种套利赚钱的原因很直接: IC、IF、IH 代表的风格不同,资金在这些风格之间不断切换,使得它们短期涨跌出现明显错位(比如宽松时 IC 涨太多)。这种偏离通常会在情绪冷却后回归正常水平。策略不是赌市场方向,而是捕捉不同指数之间“短期超涨—长期修复”的价差变化,收益来自风格溢价的重新定价和情绪错价的修复。
💡

T(Task)

  1. 把报告里的策略逻辑“翻译成代码”
    1. 用清晰的 Python 模块,将基差、动量、季节性信号全部函数化,实现可配置参数和组合方式。
  1. 搭建一个日频回测框架
    1. 从数据加载、信号合成、仓位决策到净值回测、绩效指标与图表输出,形成一条可以“一键跑完”的策略研究流水线。
  1. 练习 git + 模块化开发习惯
    1. 用 git 管理代码版本和文件结构,按 data_utils / signal_utils / strategy_utils / backtest_utils / factor_selection 等模块拆分,把项目做成可以复用、可以协作的代码库。
💡

A(Action)

1️⃣ 策略拆解与模块设计

  • 阅读并拆解研报,将策略分解为三大信号:
    • 基差信号:根据股指期货相对现货的年化基差差,捕捉价差收敛空间;
    • 动量信号:对跨品种价差使用均线、通道突破等指标,抽取趋势信息;
    • 季节性信号:统计历史月度胜率和春节效应,对特定月份加权提升持仓置信度。
  • 设计模块化架构:
    • data_utils 负责数据读取、同期对齐和基差/价差计算;
    • signal_utils 封装三类信号函数;
    • strategy_utils 将信号合成、离散化为目标仓位(0, ±0.5, ±1, ±1.5);
    • backtest_utils 承担日频回测、净值计算和绩效指标统计;
    • factor_selection 做参数网格搜索与结果管理;
    • picture_utils 完成净值曲线和信号可视化

2️⃣ 数据与回测流水线实现

  • config.py 中集中配置品种映射、回测区间、参数空间,主程序 main.py 只负责调度:
    • 先调用 data_utils 加载/预处理日频数据;
    • 再调用 signal_utils 生成各因子信号;
    • 交给 strategy_utils 合成最终仓位;
    • 最后用 backtest_utils 计算日度收益、净值曲线和一整套指标(年化收益、波动率、夏普、最大回撤、Calmar 等),回测使用 pybroker 回测框架。
  • 默认以日频收盘价为基础,可以通过替换数据源扩展到更高频,实现了频率可调的设计。

3️⃣ 工程化与 git 实践

  • 用 git 管理项目版本:
    • 按功能拆分 commit(例如“新增基差信号模块”“重构回测接口”“补充季节性统计”);
    • 在引入大改动时先开分支,本地验证后合并,逐渐建立起较为规范的开发工作流。
  • 代码组织上:
    • 使用清晰的包结构与相对导入,提高可读性和可维护性;
    • 在 README 中记录依赖、运行方式、模块说明,并添加 License,形成一个“对外可读”的开源型项目。
💡

R(Result & Reflection)

  • 功能层面
    • 成功复现了研报中的核心结论,策略在日频假设下能获得与报告方向一致、结构清晰的多因子收益;
    • 一键脚本可以完成“数据加载 → 信号生成 → 回测 → 图表输出”,为后续扩展其他股指对/商品对提供了模板。
  • 实盘适用性
    • 当前框架尚未完整纳入交易成本、滑点、保证金占用和交易细则(最小变动价位、持仓上限等),因此策略收益与真实可交易收益之间仍有差距;
    • 策略频率为日频(可通过调整数据扩展),可解释性强、信号清晰,更适合作为研究与教学案例,而不是直接“搬到实盘”。
  • 个人收获
    • 通过这个项目,我第一次从头到尾独立跑通了一个完整策略全流程:阅读研报 → 抽象信号 → 写模块 → 跑回测 → 做参数分析与可视化;
    • 在实践中学会使用 git 做版本管理、用模块化思路拆分代码任务,也形成了自己偏好的项目结构和开发习惯;
    • 这些经验为后续真正面向实盘的策略开发打下了工程基础,也让我对“研究型代码”和“交易型代码”的差异有了更清楚的认识。
Loading...
务醒
务醒
慢慢搭一座知识楼📖
小红书
统计
文章数:
1
公告
type
Notice
status
Published
date
Jul 2, 2021
slug
#
summary
类型为Notice的文章将被显示为公告
tags
category
icon
password
comment
🎉务醒‘s Blog 已经上线🎉
-- 感谢您的支持 ---