第三周-期货回测连接仿真交易-动量策略对比并仿真
  我在等编译 9天前 77 0

一、本周研究目标:动量策略对比并仿真

本周我主要围绕 期货动量因子 做了一轮更系统的对比研究,并尝试把研究结果进一步衔接到 仿真交易 流程中。

和前两周更多偏向平台熟悉、工作流搭建不同,这一周我开始把重点放在:

  1. 经典动量因子的搭建与对比
  2. 不同动量思路在期货场景中的适用性分析
  3. 基于 PandaAI 平台进行因子分析与筛选
  4. 从因子研究继续推进到仿真交易验证

本周实际尝试的因子主要有四类,如工作流所示:

  1. 基本截面动量
  2. 波动率调整动量
  3. 多周期时间序列动量
  4. 双重动量
    PixPin_20260309_060744.png
    整体目标比较明确:
    先通过因子分析比较不同动量因子的表现,再从中选出一个更适合当前阶段做策略落地和仿真观察的核心因子。

从结果来看,我最终选择了 多周期时间序列动量因子 单因子进入后续策略尝试和仿真阶段。


二、经典动量因子大概有哪几种?以及我本周实际尝试的四类因子

从研究逻辑上看,经典动量因子通常可以分为几类,而我这周测试的四个因子,基本也都可以对应到这些典型框架中。

1. 横截面动量:对应本周的“基本截面动量”

横截面动量关注的是 同一时点、不同标的之间的相对强弱

最常见的做法是:

  • 计算各个期货品种过去一段时间的收益
  • 按照收益强弱排序
  • 做多更强的品种,做空更弱的品种

它的优点是逻辑直观、适合做排序选仓;
但缺点也很明显:如果市场整体都处于震荡环境,仅凭相对强弱排序,容易选到“相对不差但并不真正强”的标的。

本周我搭建 基本截面动量,就是希望先验证这种最经典、最基础的动量思路,在当前样本区间内是否具备比较稳定的区分能力。


2. 风险调整动量:对应本周的“波动率调整动量”

风险调整动量是在原始动量基础上,再引入波动率约束。
它不是只看“谁涨得多”,而是进一步看:

这个上涨是不是在一个相对可控、相对稳定的波动环境中形成的。

常见形式包括:

  • 动量 / 波动率
  • 平均收益 / 收益波动率
  • 简化版 Sharpe-like 动量结构

它相对于纯价格动量的优势在于:

  • 可以过滤部分高波动噪声
  • 避免把“暴涨暴跌”的标的误判成高质量趋势
  • 更强调趋势质量,而不是只看幅度

本周我测试的 波动率调整动量,本质上就是希望在基本动量的基础上,再加入一层风险过滤,看是否能得到更稳健的因子输出。


3. 时间序列动量:对应本周的“多周期时间序列动量”

时间序列动量和横截面动量最大的区别在于:

  • 横截面动量看的是“不同标的之间谁更强”
  • 时间序列动量看的是“这个标的自己过去强不强”

例如:

  • 过去 (N) 个周期收益为正,则偏多
  • 过去 (N) 个周期收益为负,则偏空

它本质上更接近 趋势跟踪 的思路,因此在期货策略中非常常见。

而本周我实际使用的并不是单一周期时间序列动量,而是 多周期时间序列动量
也就是说,我不是只看一个窗口,而是综合了多个时间尺度的趋势信息,希望减少单周期过于敏感或者过于迟钝的问题。

这种做法的意义在于:

  • 短周期可以更早捕捉变化
  • 中周期可以平衡噪声
  • 长周期可以提供更稳定的方向背景

也正因为它在逻辑上更贴近期货趋势策略的实际需要,所以最终我选择它进入策略尝试阶段。


4. 双重动量:对应本周的“双重动量”

双重动量通常结合了两层判断:

  1. 绝对动量:某个标的自身过去表现是否为正
  2. 相对动量:在多个标的中,它是否比其他标的更强

它相比单一动量的优势是:

  • 可以先筛掉整体偏弱的标的
  • 再从剩余标的中选出更强的一批
  • 同时兼顾趋势方向和相对强弱

双重动量在资产配置和多标的筛选中比较常见,理论上是一个很有吸引力的框架。
但在实际测试中,它对参数、阈值和市场状态的依赖也更明显,因此在当前阶段,我更倾向于先选择逻辑更直接、可解释性更强、便于快速落地调试的因子来推进仿真。


5. 期限结构动量:本周有尝试,但暂时没有成功落地

除了以上四个已经实际完成测试的动量因子之外,我本周原本还想尝试做 期限结构因子

之所以关注它,是因为期货市场本身就具有明显的期限结构特征,例如:

  • 近月与远月价差
  • 升贴水变化
  • 展期收益结构
  • 不同月份合约间的相对强弱变化

这类因子相比纯价格动量,更贴近期货市场自身的结构属性,因此我本来希望把它作为一个更“期货特色”的扩展方向。

不过这周尝试了几次,都没有成功把它顺利落到当前的因子分析工作流中。
这个部分我先记录下来,后续继续研究和尝试。


三、为什么最终选择“多周期时间序列动量因子”

本周对比了四类动量因子之后,我最终选择了 多周期时间序列动量因子 来继续做策略尝试和仿真交易。

这次选择它,主要不是因为它“看起来最复杂”,而是因为它在当前阶段具备几个比较现实的优势。

1. 更符合期货策略中常见的趋势跟踪逻辑

期货市场中,时间序列动量本身就是一个非常经典、非常自然的研究方向。
相比只做横截面强弱比较,时间序列动量更直接回答了一个问题:

当前这个品种自己的趋势方向是什么?

这对于后续做开平仓逻辑映射、做多做空判断、连接仿真交易,都会更直接一些。


2. 多周期结构比单周期更稳一些

单周期动量往往有一个问题:
周期太短,容易噪声大;周期太长,又容易反应慢。

多周期时间序列动量相当于把不同周期的信息结合起来,尽量在“敏感”和“稳定”之间做一个平衡。
我选择它,也是因为它比单一周期动量更有研究继续往下推进的价值。


3. 相比其他几个因子,它更适合作为当前阶段的策略原型

本周实际测试下来,我的感受是:

  • 基本截面动量:逻辑最简单,但更偏排序型,不一定最适合作为我当前的仿真起点
  • 波动率调整动量:增加了质量过滤,但对参数设定会更敏感
  • 双重动量:结构上更完整,但也更复杂,对当前阶段调试和验证来说成本更高
  • 多周期时间序列动量:趋势逻辑清晰,便于从因子过渡到策略信号,适合作为当前的落地尝试对象

因此,从“研究有效性 + 策略可实现性 + 仿真可验证性”三个角度来看,我最终选择了 多周期时间序列动量因子


4. 因子分析中,我重点参考的指标包括

本次在 PandaAI 平台做因子分析时,pandaAI的因子分析结果真很直观好用:
推荐大家可以看看pandaAI的b站视频(用好“动量+波动率”双因子,构建自动化股票轮动策略|量化实战第七课):https://www.bilibili.com/video/BV1yHmsBwEXF/?buvid=ZD40FBDAEA1D198C4DF2BFE8BA087F47F04E&from_spmid=search.search-result.0.0&is_story_h5=false&mid=XjKM7ytckearm%2BDAo1LHzQ%3D%3D&plat_id=116&share_from=ugc&share_medium=iphone&share_plat=ios&share_session_id=CC122C5C-144F-440B-B314-4A537B2409A1&share_source=weixin&share_tag=s_i&spmid=united.player-video-detail.0.0&timestamp=1765456957&unique_k=HqyWBsN&up_id=3546939909999104&vd_source=8a4f98f0fd4c86dce42e43440c4ae8ef
讲的很清晰
这些指标里,我比较关注几个点:
image.png

  • IC_mean 为正:说明因子整体上具备一定预测能力
  • Rank_IC 为正:说明因子排序能力是成立的
  • IC_IR、IR 表现尚可:说明不仅有一定效果,也有一定稳定性
  • t统计量较高、p-value 较低:说明当前样本下结果具备一定统计显著性
  • 单调性较高:说明分层表现有结构,不只是偶然有效

对我来说,这种“不是特别激进,但整体更均衡”的因子,更适合作为本周仿真尝试的核心对象。


四、本周仿真过程:从“没有成交”到“放宽条件后大量成交”

本周在把 多周期时间序列动量因子 往仿真策略推进时,经历了一个比较典型、也很有代表性的过程。

1. 周四:策略跑了一天没有成交

因为最终因子的确定和策略搭建完成得比较晚,周四我把策略接到仿真环境后,先按照相对偏严格的成交条件运行了一天。

结果是:全天基本没有成交。

这个现象一开始会让人怀疑,是不是策略有问题,或者是不是工作流没有跑通。
但结合日志和信号逻辑去看之后,我更倾向于认为,这并不是“策略失效”,而是:

  • 信号阈值设得偏严
  • 过滤条件较多
  • 当前行情环境没有频繁触发条件
  • 因子虽然在研究层面有效,但策略层面的执行门槛仍然偏高

2. 周五:大幅降低成交条件后,开始出现大量成交

为了确认策略链路是否真的打通、信号是否能顺利触发、仿真账户是否能稳定执行,我在周五对策略条件做了比较明显的放宽。
image.png
调整后,策略终于开始出现了大量成交

这一步对我来说其实很重要,因为它验证了几件事:

  • 工作流本身是可以正常运行的
  • 因子信号是能够转化成交易动作的
  • 仿真账户连接是正常的
  • 日志、信号、成交之间的链路是打通的

也就是说,周五的“有大量成交”并不意味着策略参数已经最优,
但它至少说明:从因子研究到策略执行,这条链路已经初步走通了。


3. 这次仿真过程给我的一个直接感受

我觉得这次最直观的收获是:

因子研究阶段关注的是“这个信号有没有统计意义”;
而仿真阶段更关注的是“这个信号如何被转成实际可执行的交易动作”。

两者之间有明显区别。

一个因子可能分析结果不错,但如果:

  • 交易阈值过严
  • 调仓节奏不合适
  • 开平仓规则不够匹配
  • 风控限制太强

那么它在仿真里就可能长期不触发,导致“看起来像没有效果”。

所以后续我会继续在仿真中观察,并进一步区分:

  • 哪些参数是为了研究有效性服务
  • 哪些参数是为了执行可行性服务

五、从因子到仿真实盘,策略上还需要补哪些内容?

这一周让我体会非常深的一点是:

一个因子分析跑得通,不代表一个策略就已经成熟;一个策略能仿真成交,也不代表它已经具备稳定实盘能力。

从因子到仿真实盘,至少还需要继续补充以下内容。

1. 把因子映射成更清晰的交易规则

例如:

  • 什么条件下开多
  • 什么条件下开空
  • 什么条件下平仓
  • 是否允许反手
  • 是否设置最小持有周期
  • 是否使用绝对阈值或相对阈值

目前这部分虽然已经搭出基础框架,但后续还需要继续细化。


2. 优化成交阈值和信号触发条件

这周周四“没成交”、周五“放宽后大量成交”的过程,实际上就说明了这一点:

  • 阈值太严,策略可能几乎不动
  • 阈值太松,策略可能过度交易

所以后续需要继续研究一个更合适的平衡点,让策略既能保持交易频率,又不至于因为过度放宽而损失信号质量。


3. 增加仓位管理

当前阶段我更关注的是先把链路跑通,因此仓位上还是偏保守。
但如果后续要继续深入,仓位管理一定需要补充,包括:

  • 单品种最大持仓
  • 总仓位上限
  • 多空敞口控制
  • 是否按因子强弱分配仓位
  • 是否按波动率调整头寸大小

4. 补充交易成本、滑点和流动性约束

期货策略在回测和仿真之间,经常会受到以下因素影响:

  • 手续费
  • 滑点
  • 合约活跃度
  • 主力合约切换
  • 极端行情下的成交质量

这些因素如果不补充进去,策略在研究层面的表现和交易层面的表现可能会有不小差异。


5. 加入更完整的风险控制

后续至少还需要逐步补上:

  • 单日亏损限制
  • 单品种风险暴露限制
  • 最大回撤控制
  • 波动率过高时降低仓位
  • 极端行情暂停交易
  • 连续亏损后的风控降档

6. 重视日志、持仓和成交记录

本周仿真过程中我越来越明显地感觉到,
日志不是附属信息,而是策略调试的核心工具。

很多问题都要通过日志来判断,例如:

  • 为什么没有触发交易
  • 是条件没满足,还是数据没准备好
  • 是代码没应用成功,还是策略逻辑本身太严格
  • 交易是否真的按预期执行

这部分后续我会继续重点观察。


六、本周一个未完成但已记录的方向:期限结构因子

本周我原本希望在动量因子之外,再尝试把 期限结构因子 加入研究范围。

原因在于,期限结构本身就是期货市场非常有代表性的特征。
和单纯的价格涨跌相比,期限结构类信号更能体现期货品种自身的结构变化。

但这周尝试了几次后,暂时还没有成功跑通。
目前我先把这个方向记录下来,后续继续尝试,重点可能会从以下几个方面去排查:

  • 合约月份数据如何组织更合理
  • 近月、远月之间如何稳定匹配
  • 价差和展期收益如何定义得更清晰
  • 当前工作流是否适合直接承载期限结构型因子表达

这部分虽然本周没有完成,但我觉得它是一个值得继续投入的方向。


七、本周平台使用中的建议

希望“超级图表 + 因子分析”后续能支持在一个工作流中可以做多因子参数对比

本周我在测试四类动量因子时,最直接的感受就是:

多因子横向比较的效率还有提升空间。

当前的流程中,通常需要:

  • 分别搭建和运行多个工作流
  • 再分别查看各自结果
  • 手动比较 IC、IR、单调性等指标

如果后续平台能够支持:

  • 一个工作流 中同时运行多个因子
  • 统一输出每个因子的核心分析结果
  • 直接进行参数横向对比
  • 以表格或图表形式展示差异

这部分是我的主观感受,不知道是不是平台已经有了更直观科学的方法,或者已经实现,但我还没找到


八、本周的整体收获

本周的重点不在于把策略做“完整”,而在于把几类典型动量因子放到同一研究框架下做对比,并完成从因子分析到仿真验证的第一次闭环。

这周比较明确的几点收获是:

  • 基本截面动量、波动率调整动量、多周期时间序列动量、双重动量 四类因子的结构差异有了更直接的对比认识
  • 在当前研究框架下,多周期时间序列动量因子 更适合作为后续继续推进的核心对象
  • 因子分析结果和策略执行结果之间仍然存在明显差异,尤其体现在 信号阈值、成交条件和触发频率
  • 仿真阶段的价值更多在于验证执行链路和参数适配,而不仅仅是看是否“有收益”

整体来看,这周更像是在完成一次策略研究框架的收敛:
先把候选因子做横向比较,再挑出更适合当前场景的方向,最后通过仿真去验证它在执行层面是否成立。


九、下周准备继续推进的方向

下周准备围绕已经选出的 多周期时间序列动量因子 继续往下推进,重点放在以下几个方面:

  1. 继续优化交易触发条件
    结合本周“周四无成交、周五放宽后大量成交”的情况,进一步调整开平仓阈值,寻找更合理的触发区间。

  2. 观察仿真成交结构与信号质量
    不只看成交数量,还会继续看成交分布、持仓变化和日志表现,判断当前参数是否导致过度交易或无效交易。

  3. 补充更实用的策略约束
    逐步加入仓位管理、风险控制、交易成本和滑点等约束,让策略从“能跑”进一步过渡到“更接近真实交易”。

  4. 继续尝试期限结构因子
    本周这一部分没有跑通,下周会继续排查数据组织、因子表达和工作流适配问题,看看能否形成可分析版本。

  5. 整理多因子对比流程
    把这周四类动量因子的测试过程进一步整理,沉淀成后续可复用的比较框架,提升后面做因子筛选的效率。


结语

整体来看,本周比前两周更接近“真正做策略”的状态了。

如果说前面更多是在熟悉 PandaAI 平台和工作流使用方式,
那么这一周我更关注的是:

如何把一个因子,从研究结果一步步推进到仿真策略。

虽然当前选择的 多周期时间序列动量因子 还处在继续调试和观察阶段,
而且期限结构因子的尝试也还没有成功,
但至少这周我已经把“因子比较 → 因子筛选 → 策略搭建 → 仿真验证”这条路径走通了一部分。

后续我会继续围绕这个因子做观察和优化,也继续补上策略真正落地所需要的那些环节。

也欢迎大家交流:
在做期货动量因子、从因子走到仿真交易的过程中,你们通常最先补的是哪一部分?

最后一次编辑于 8天前 0

暂无评论

推荐阅读
  18764136999   3天前   18   0   0 中频交易
657
  13764338794   8天前   34   0   0 中频交易