公开研究测试显示,股指期货提前3个交易日进行移仓展期,在不同时点的测试中表现较好。但这不是固定规则。深贴水环境下,提前7至10个交易日分批移仓,可能更有利于降低贴水损失。相对升水环境下,季月合约的展期结果可能优于当月合约。
移仓换月不是把一个合约卖掉,再把另一个合约买回来这么简单。账面上能看到手续费。交易记录里能看到成交价。真正影响策略收益的部分,往往藏在近月与远月之间的价差、盘口深度、换仓冲击和持仓方向里。
如果只统计手续费,移仓成本会被系统性低估。
一、移仓换月的成本,不止两笔手续费
期货策略进入交割月前,需要把当前持仓从近月合约转移到远月合约。这个过程通常包含两个动作:
1. 平掉当前持仓。
2. 建立下一交割月份的同方向持仓。
例如,策略持有近月多头,需要卖出近月合约,再买入远月合约。策略持有近月空头,则需要买入近月合约,再卖出远月合约。
理论上,两条腿的价格差决定了展期收益或损失。实际成交则还会受到盘口流动性、挂单深度和交易速度影响。
可以把总成本拆成四层:
- 显性交易费用,包括手续费、交易所费用及可能产生的相关费用。
- 单腿成交造成的滑点。
- 两个合约之间的期限价差变化。
- 换仓期间基差结构变化对策略净值的影响。
第一层最容易计算。第二层需要逐笔成交数据。第三层和第四层则需要持续跟踪现货、近月合约与远月合约的相对关系。
1. 显性费用只是下限
手续费通常按照成交量、成交金额或合约规则计算。它可以在回测中直接写入。
问题在于,手续费不等于移仓成本。
假设策略需要完成一组买卖操作。回测模型按照收盘价或中间价成交,实盘可能在盘口上分多笔成交。近月合约和远月合约的成交深度不同。一个合约能够迅速成交,另一个合约可能需要主动吃单。
此时,回测价格与实际成交价格之间形成偏差。
如果只使用收盘价回测,通常会忽略以下变量:
- 买一卖一之间的价差。
- 最优价位上的可成交数量。
- 主动成交后对盘口的冲击。
- 两条腿成交间隔内的价格变化。
- 交易信号触发时的排队时间。
- 高频报价撤单导致的虚假深度。
这些变量不会出现在手续费账单中,却会直接反映在净值曲线上。
对低频趋势策略而言,单次滑点可能不是决定性变量。对低波动套利、指数增强和基差交易而言,几个最小变动价位的偏差就可能改变单次展期的收益方向。
2. 单腿成交是最直接的冲击来源
移仓需要同时处理近月和远月。若分别下单,就会出现时间差。
先平近月,再开远月,策略在两笔成交之间暴露于价格变化。先开远月,再平近月,则会产生另一种方向的暴露。两种顺序都无法消除风险,只能改变风险的表现方式。
更严重的情况是,近月合约流动性已经下降,但远月合约还没有形成足够深度。此时平仓和开仓会分别付出不同的滑点。
可以用以下变量记录单次移仓冲击:
- 近月合约成交价与下单时中间价的差值。
- 远月合约成交价与下单时中间价的差值。
- 两条腿成交完成所用的时间。
- 两条腿实际成交量占盘口可见数量的比例。
- 成交后盘口价差是否扩大。
- 移仓前后价差是否发生异常跳变。
如果无法获得逐笔盘口数据,至少应在回测中使用保守滑点,而不是直接使用理论价。
移仓成本的最低估计是手续费。接近真实的估计,必须同时加入价差、滑点和期限结构变化。
二、基差的定义决定了展期方向
基差公式很简单:
基差=现货价格-期货价格
当现货价格高于期货价格时,基差为正。此时期货价格低于现货,通常称为期货贴水,也可称为反向市场结构。
当现货价格低于期货价格时,基差为负。此时期货价格高于现货,通常称为期货升水,也可称为正向市场结构。
这两个概念容易在交易记录中被混淆。原因是不同市场、不同研究报告有时会从期货减现货的方向描述升贴水。程序中必须固定公式。不能依赖文字标签。
1. 多头移仓与空头移仓的影响不同
近月和远月之间的价差,对多头和空头的影响相反。
假设近月合约价格为 \(F_1\),远月合约价格为 \(F_2\)。
多头移仓的操作是:
- 卖出近月。
- 买入远月。
如果远月价格高于近月,即 \(F_2>F_1\),多头需要以更高价格买入远月。这个价格差会形成负向展期影响。
如果远月价格低于近月,即 \(F_2<F_1\),多头买入远月的价格低于平掉近月的价格。此时展期可能带来正向影响。
空头移仓则相反:
- 买入近月平仓。
- 卖出远月开仓。
在相同期限结构下,空头和多头的展期结果方向相反。
因此,任何“升水有利”或“贴水有利”的结论,都必须同时注明持仓方向。脱离多空方向讨论展期收益,没有计算意义。
2. 现货基差与跨期价差不是同一个变量
现货基差描述的是现货与期货之间的价差:
\[
B_t=S_t-F_t
\]
跨期价差描述的是两个期货合约之间的价差:
\[
C_t=F_{远月,t}-F_{近月,t}
\]
两者有关联,但不能互相替代。
股指期货的现货价格通常对应指数,而不是可以直接交易的单一资产。指数成分股的分红、融资利率、成分调整和交易成本,都会影响期货理论价格。
理论价格可以写成:
\[
F(t,T)=S(t)\times \left[1+(r-d)\times\frac{T-t}{365}\right]
\]
其中:
- \(S(t)\) 是当前现货或指数价格。
- \(r\) 是资金利率。
- \(d\) 是分红收益率。
- \(T-t\) 是距离到期的时间。
在实际市场中,成交价格还会受到套保需求、资金约束和流动性变化影响。因此,理论基差不等于实际可交易基差。
跨期价差也不会始终按照理论关系运行。近月合约接近到期时,流动性、交割预期和资金调整可能使价差快速变化。
3. 展期收益不能简单等同于期货涨跌
移仓前后,策略净值发生变化,至少要拆成三部分:
\[
R_{\text{roll}}=R_{\text{price}}+R_{\text{basis}}+R_{\text{execution}}
\]
其中:
- \(R_{\text{price}}\) 是持仓期间标的价格变化带来的收益。
- \(R_{\text{basis}}\) 是基差和期限价差变化带来的收益或损失。
- \(R_{\text{execution}}\) 是手续费、滑点和成交冲击。
如果把三者混在一起,无法判断问题来自策略方向、展期时机,还是成交方式。
一个策略当天亏损,不代表移仓一定造成亏损。可能是指数下跌。一个策略当天盈利,也不代表展期效率良好。可能只是标的价格上涨掩盖了换仓滑点。
回测中应当单独建立展期损益字段,而不是把它并入普通持仓收益。
三、股指期货基差由哪些可量化变量驱动
股指期货的基差并非随机噪声。它由多个变量共同决定。部分变量可以被直接建模,部分变量只能作为状态变量使用。
1. 分红预期具有季节性
股指期货理论价格受到成分股分红影响。
当市场预期未来一段时间内成分股集中分红,期货理论价格会受到分红收益率变化影响。分红预期不是固定常数。它会随着分红公告、除权安排和成分股盈利预期改变。
因此,近月和季月合约的合理价差并不相同。
程序中至少需要区分:
- 合约到期时间。
- 预计分红发生的时间。
- 分红收益率的估计值。
- 分红集中发生的月份。
- 不同期限合约对分红变化的敏感度。
如果使用固定年化分红率覆盖全年,模型可能在分红集中期产生系统误差。
2. 套保力量会改变期限结构
股指期货同时承载方向交易、套期保值和套利交易。
当机构集中进行空头套保时,近月或远月合约可能出现持续贴水。贴水并不等于价格必然上涨,也不等于贴水一定会收敛到零。它只是说明期货价格相对现货处于折价状态。
当套保需求减弱,或者多头资金主动增加时,期限结构可能重新定价。
可用于观察的变量包括:
- 不同期限合约的基差水平。
- 近月与远月的价差斜率。
- 合约成交量和持仓量变化。
- 主力合约切换速度。
- 期货价格与指数的同步性。
- 价差的历史分位数。
- 基差变化的滚动标准差。
这些变量比“市场情绪”更适合进入模型。情绪无法直接计算。价格、成交量、持仓量和波动率可以。
3. 短期风险偏好需要转换成数据
短期基差变化往往与交易拥挤度和波动率变化同步。不能使用无法定义的主观判断。可以把短期状态转换为以下指标:
- 日内波动率。
- 隔夜跳空幅度。
- 期现价差绝对值。
- 近远月价差的日变化。
- 盘口买卖价差。
- 成交量相对过去窗口均值的偏离。
- 持仓量变化率。
- 不同合约的价格相关性。
当波动率上升,两个合约的成交成本通常也会增加。基差变化速度可能加快。此时固定时间点移仓的风险上升。
当成交量集中在近月,远月深度不足时,提前移仓未必能降低总成本。提前过早会牺牲近月流动性。延后过久则可能进入流动性恶化阶段。
这不是一个单变量优化问题。
四、为什么提前三天不是万能答案
公开研究中,提前3个交易日展期在多个时点测试中表现较好。这个结果具有参考价值,但不能直接转化为交易规则。
回测中的最优日期,依赖于测试区间、合约类型、持仓方向和成本假设。样本改变,最优日期可能改变。
1. 固定日期策略的缺陷
固定在交割日前第3天移仓,执行简单。缺点也明显:
- 无法适应基差突然扩大。
- 无法识别远月流动性不足。
- 无法处理近月和远月价差的异常波动。
- 无法区分多头与空头展期成本。
- 无法覆盖不同品种的交易规则差异。
对于股指期货,提前3天可能是一个有效的基准点。对于商品期货,合约活跃度、交割制度和季节性库存结构不同,不能直接套用。
2. 深贴水环境下,提前移仓的逻辑
在深贴水环境中,持有当月合约可能面临较明显的基差损失或收益变化。对于部分多头策略,提前7至10个交易日开始分批移仓,可以减少最后阶段集中交易带来的冲击。
但“提前”并不等于“一次性完成”。
一次性大额移仓,会把订单冲击集中到单个时点。分批移仓则可以把成交量分散到多个交易日,降低单日成交压力。
分批方案可以按照以下逻辑设计:
1. 先确定目标远月合约,不在临近交割时临时选择。
2. 根据近月和远月的流动性比例设置初始换仓量。
3. 在基差和跨期价差没有明显恶化时逐步增加远月头寸。
4. 若价差波动超过历史阈值,暂停主动追价。
5. 在剩余持仓接近交割风险边界时完成最终切换。
这种方法牺牲了部分择时精度,换取更低的成交冲击。
3. 升水环境下,季月合约可能更有效
相对升水环境下,季月合约的期限结构可能提供更好的展期条件。这里的关键不是“季月”两个字本身,而是季月合约与现货理论价格之间的相对偏离。
需要比较:
- 当月合约实际基差。
- 下月合约实际基差。
- 季月合约实际基差。
- 不同合约的剩余期限。
- 各合约的交易成本。
- 预期分红对不同期限的影响。
如果只看到某个远月价格更高,就直接认为它不适合多头移仓,结论不完整。必须将期限、分红和资金成本统一到同一口径。
五、分批换仓如何降低交易冲击
分批换仓不是简单地把订单拆成几份。它需要一个明确的执行函数。
设当前近月持仓为 \(Q_0\),计划在 \(N\) 个交易日内完成移仓。最简单的等量方案为:
\[
q_i=\frac{Q_0}{N}
\]
但等量分配不是最优方案。实际成交量应当与以下变量相关:
- 当日近月合约成交量。
- 当日远月合约成交量。
- 买卖价差。
- 价差波动率。
- 近远月成交量比值。
- 策略的最大可接受基差偏离。
- 剩余到期时间。
可以使用流动性加权分配:
\[
q_i=Q_0\times\frac{L_i}{\sum_{j=1}^{N}L_j}
\]
其中 \(L_i\) 可以由远月成交量、盘口深度和价差稳定度共同构成。
1. 先定义可执行价格
回测中不应默认以中间价成交。对于买入腿,可以使用:
\[
P_{\text{buy}}=P_{\text{mid}}+\alpha\times \text{Spread}
\]
对于卖出腿,可以使用:
\[
P_{\text{sell}}=P_{\text{mid}}-\alpha\times \text{Spread}
\]
其中 \(\alpha\) 表示主动成交程度。
如果策略使用限价单,还要加入未成交概率。否则回测会同时获得中间价优势和百分之百成交假设,形成不可执行的结果。
2. 监控两条腿的价差,而不是单腿价格
移仓的核心不是近月涨跌,也不是远月涨跌,而是两者之间的相对价格。
应当持续计算:
\[
C_t=F_{远月,t}-F_{近月,t}
\]
同时记录:
- 下单时价差。
- 每笔成交时价差。
- 完成移仓后的价差。
- 价差相对过去窗口的分位数。
- 价差变化的方向和速度。
如果目标是把近月多头换成远月多头,单独观察远月价格没有意义。远月上涨可能只是整个市场上涨。只有远月相对近月的变化,才决定展期部分的收益。
3. 设置暂停机制
执行算法不能只有“买入”和“卖出”两个动作。还需要暂停条件。
例如:
- 盘口价差超过过去一段时间的高分位。
- 近远月价差在短时间内快速跳变。
- 远月合约成交量明显萎缩。
- 单笔成交对盘口造成过大冲击。
- 两腿成交时间间隔超过预设上限。
- 基差变化超过策略容忍范围。
暂停不代表放弃移仓。它只是避免在不可执行价格上追单。
六、交易所套利组合指令的价值
在具备标准套利组合指令的交易所,优先使用组合指令完成移仓,通常比单腿分别下单更合理。
组合指令的基本目标,是同时提交近月和远月两个方向相反的订单。交易系统按照价差完成撮合,减少两腿之间的时间暴露。
其优势主要包括:
- 降低单腿成交后另一腿价格漂移的风险。
- 直接围绕跨期价差报价。
- 减少手工计算两腿成交价差的误差。
- 降低极端行情下的裸腿暴露时间。
- 便于在回测中统一记录展期成交价格。
大商所、郑商所、广期所等具备标准套利组合的交易所,可以根据具体交易规则使用相关套利互换指令完成移仓。
但组合指令不是免费午餐。
1. 组合指令仍然受流动性约束
组合盘口的深度可能低于单腿盘口。显示出来的价差报价,不代表任意数量都能成交。
需要记录:
- 组合报价的买卖价差。
- 组合盘口各档可成交量。
- 组合指令成交量占对应单腿成交量的比例。
- 组合成交后的两腿实际持仓是否同步变化。
- 组合指令未成交时的撤改单时间。
如果组合盘口很薄,而单腿市场足够活跃,单腿执行加上严格的时间控制,可能具有更好的成交结果。但这需要真实成交数据支持,不能凭经验判断。
2. 组合成交价需要统一口径
不同交易系统可能使用不同的价差方向定义。例如:
- 买入远月、卖出近月。
- 买入近月、卖出远月。
程序必须明确价差方向。否则会出现符号反转,导致回测中的展期收益与实际持仓方向相反。
建议在数据库中同时保存:
- 近月合约代码。
- 远月合约代码。
- 近月成交价格。
- 远月成交价格。
- 两腿成交数量。
- 组合价差方向。
- 组合成交价。
- 理论价差。
- 实际滑点。
- 完成时间。
不要只保存一个“移仓损益”字段。字段过度聚合,会让问题无法追溯。
七、建立一套可审计的移仓成本模型
移仓成本模型的目标不是预测每一次展期结果,而是回答三个问题:
1. 这次成本来自哪里?
2. 哪个环节超出历史范围?
3. 下次应该调整参数还是调整执行方式?
1. 成本拆解表
| 成本项目 | 计算方式 | 主要数据 | 常见误差 |
|---|---|---|---|
| 手续费 | 按成交规则计算 | 成交量、费率 | 忽略不同合约规则 |
| 买卖价差 | 成交价相对中间价 | 盘口数据 | 用收盘价替代中间价 |
| 单腿滑点 | 实际成交价减理论成交价 | 逐笔成交 | 假设两腿同时成交 |
| 跨期价差损益 | 远月与近月价差变化 | 两合约价格 | 把方向收益混入展期收益 |
| 基差变化 | 现货与期货价差变化 | 现货、期货价格 | 现货代理不一致 |
| 冲击成本 | 成交前后盘口变化 | 深度、成交量 | 只看最终成交价 |
| 时间暴露成本 | 两腿成交间的价格变化 | 时间戳、价格 | 忽略成交延迟 |
每一项都要有独立字段。不要用一个固定比例代表所有成本。
2. 复盘窗口不能只看移仓当天
至少应当使用三个观察窗口:
- 移仓前窗口:判断近月与远月流动性是否已经变化。
- 移仓执行窗口:计算实际成交冲击。
- 移仓后窗口:观察价差是否继续朝不利方向变化。
如果只看执行当天,无法判断提前或延后的影响。
例如,移仓当天价差看起来平稳,但之后远月快速变得不利。原因可能是执行太早。反过来,如果当天价差已经大幅恶化,之后恢复,则可能是执行太晚。
这两个结果在单日账单上都只是一个数字。加入前后窗口后,才可以区分时机错误和执行错误。
3. 用分位数代替主观阈值
“价差较高”“流动性较差”都不是可执行定义。
可以使用历史分位数:
- 价差处于过去样本的高分位,减少主动追价。
- 盘口价差进入高分位,降低单笔订单规模。
- 远月成交量跌入低分位,延后部分换仓。
- 基差波动率超过阈值,增加分批次数。
- 组合指令深度不足,切换到备用执行方案。
分位数比固定点数更适合跨合约比较。固定点数在不同波动率环境下没有稳定含义。
八、一个可复用的移仓决策框架
移仓决策可以拆成五个模块。每个模块只处理一个问题。
模块一:识别当前期限结构
计算当月、下月和季月合约的:
- 绝对价格。
- 剩余期限。
- 基差。
- 跨期价差。
- 年化价差。
- 成交量。
- 持仓量。
- 买卖价差。
先判断当前是升水结构、贴水结构,还是期限结构正在切换。
模块二:确认持仓方向
多头移仓和空头移仓必须分别计算。
多头重点关注:
- 买入远月时需要支付的相对价格。
- 近月平仓和远月开仓的同步性。
- 深贴水环境下的基差变化。
- 远月合约是否有足够承接量。
空头重点关注:
- 卖出远月时获得的相对价格。
- 近月平仓买入的冲击。
- 升水或贴水结构对空头展期收益的影响。
- 是否存在远月报价不足。
模块三:选择移仓时间区间
不要先问“第几天最优”。先定义可执行区间。
基础方案可以设为:
- 常规环境:以提前3个交易日作为基准点。
- 深贴水环境:提前7至10个交易日观察并分批执行。
- 波动率快速上升:缩短单次订单间隔,避免尾盘集中。
- 远月流动性不足:延后部分交易,但不能突破交割风险边界。
- 价差异常扩张:暂停追价,等待价差回到可接受区间。
这些不是固定交易规则。它们是参数化框架。
模块四:选择执行方式
优先级可以按照以下顺序测试:
1. 标准套利组合指令。
2. 基于价差的限价组合执行。
3. 两腿同步算法执行。
4. 单腿分步执行。
具体方案取决于交易所规则和实时流动性。
如果组合指令能够稳定成交,优先减少裸腿暴露。如果组合指令深度不足,则需要比较组合成交滑点与单腿同步滑点。
模块五:记录偏差并更新参数
每次移仓结束后,计算:
\[
\text{偏差}=\text{实际展期成本}-\text{模型预估成本}
\]
然后将偏差分成:
- 价差预测偏差。
- 流动性预测偏差。
- 执行滑点偏差。
- 成交延迟偏差。
- 理论基差估计偏差。
如果模型连续低估滑点,应提高成本假设。如果价差方向判断错误,应重新检查期限结构变量。如果理论基差长期偏离实际价格,应调整分红和资金成本参数。
九、回测中最常见的六个错误
1. 用收盘价模拟移仓
收盘价是一个时间点。移仓是一个执行过程。
如果策略在收盘前完成订单,实际成交价格可能与收盘价不同。近月和远月也不一定在同一时刻达到收盘价。
更合理的方法是使用分钟数据、逐笔数据或盘口数据。数据不足时,应扩大滑点,而不是假设完美成交。
2. 把远月合约当成无限流动性资产
远月合约的历史价格可以存在,但不代表历史上任何时刻都能按该价格成交。
需要检查:
- 当时是否有成交。
- 当时成交量是否足够。
- 买卖价差是否异常。
- 价格是否长时间不变。
- 盘口是否存在连续报价。
没有成交的价格,不应直接作为可执行价格。
3. 忽略合约切换本身的信号污染
如果策略信号使用主力连续合约,移仓时会出现价格序列跳变。这个跳变可能来自合约切换,不是市场真实收益。
必须区分:
- 真实持仓收益。
- 连续合约价格调整。
- 展期价差收益。
- 数据供应商对连续合约的复权方式。
如果使用未经调整的连续合约,收益曲线可能出现人为跳空。如果使用后复权价格,又可能掩盖真实展期成本。
4. 不区分当月、下月和季月
不同合约的期限结构不同。将所有远月合约统一处理,会损失重要信息。
股指期货在不同合约月份之间,分红预期和资金成本影响不同。商品期货还会受到库存、交割月和季节性供需影响。
模型需要明确远月选择规则。不能只写“买入下一主力合约”。
5. 把回测最优日期直接当作实盘常数
提前3天在研究测试中表现较好,不代表每个月都最优。
如果样本中包含特定升贴水环境,最优日期可能只是该环境的结果。换一段市场状态,结论可能反转。
应当做滚动测试:
- 使用过去样本估计最优区间。
- 在未来样本验证。
- 分别测试多头和空头。
- 分别测试升水、贴水和结构切换阶段。
- 加入不同滑点假设。
- 检查结果是否依赖少数极端样本。
如果去掉几个收益最高的月份后策略失效,说明模型可能存在过拟合。
6. 将展期收益与方向收益混合
这是最严重的统计错误之一。
策略持有多头时,标的上涨可以抵消不利展期。若只看总收益,会误判移仓效率。
回测报表至少应拆分:
- 标的方向收益。
- 基差收益。
- 跨期价差收益。
- 交易费用。
- 滑点。
- 组合执行收益。
- 未成交或延迟造成的损益。
没有拆分,就没有复盘。
十、如何判断移仓策略是否过拟合
移仓策略通常参数很多:
- 提前几天开始。
- 分几批完成。
- 每批成交多少。
- 采用市价还是限价。
- 何时暂停。
- 价差达到什么分位数时执行。
- 远月成交量达到什么比例时切换。
参数过多,模型很容易对历史样本过度拟合。
1. 参数数量应当受到约束
如果只研究“提前2天、3天、4天、5天”的区别,属于有限搜索。
如果同时搜索多个日期、多个分批比例、多个价差阈值和多个执行速度,组合数量会迅速增加。最终得到的最优参数,可能只是历史噪声的结果。
应优先保留具有交易逻辑的参数:
- 交易所规则决定的时间边界。
- 盘口容量决定的单笔上限。
- 风险预算决定的最大裸腿时间。
- 历史数据稳定支持的价差阈值。
不要为了提高回测收益,持续增加条件。
2. 结果要看稳定性,不只看均值
评估移仓策略时,平均展期成本不是唯一指标。还应观察:
- 展期成本的中位数。
- 成本分布的偏度。
- 极端亏损次数。
- 不同年份或不同阶段的结果。
- 多空方向是否对称。
- 不同合约的结果差异。
- 滚动窗口下的参数稳定性。
- 加入更高滑点后的收益变化。
如果策略只在低波动阶段有效,实盘遇到波动率上升就可能失效。
3. 使用样本外和压力测试
样本外测试必须保留。
此外,还应主动加入压力条件:
- 成交价向不利方向偏移。
- 两腿成交间隔延长。
- 远月成交量下降。
- 买卖价差扩大。
- 基差在短期内快速跳变。
- 移仓窗口缩短。
- 部分订单无法成交。
如果模型在这些条件下仍能控制最大损失,才具备基本的执行韧性。
十一、从今日复盘得到的实际选择
围绕期货移仓换月的隐性成本,决策逻辑可以压缩成几条可执行原则。
第一,先计算基差和跨期价差。不要先看手续费。手续费是已知项,期限结构才是主要不确定项。
第二,固定使用同一套基差定义:
\[
\text{基差}=\text{现货}-\text{期货}
\]
所有报表、信号和回测字段都沿用这个方向。避免研究报告中的正负号差异污染程序。
第三,区分多头和空头。相同的升贴水结构,对两个持仓方向的展期影响不同。
第四,提前3个交易日可以作为股指期货的基准测试点,但不能作为无条件规则。深贴水环境需要观察提前7至10个交易日分批执行的效果。
第五,优先测试套利组合指令。组合成交能够降低两条腿之间的时间风险,但仍需检查组合盘口深度和实际成交率。
第六,把移仓成本独立记录。方向收益、基差收益、价差收益和执行滑点不能混为一项。
第七,使用滚动回测和压力测试。若参数只在单一时期有效,则不应将其称为稳定策略。
最优移仓时点不是日历上的一个数字,而是期限结构、流动性和执行成本共同决定的状态变量。
十二、模型的边界
基差模型无法解释所有价格变化。
理论价格公式依赖资金成本、分红收益率和剩余期限。现实中还存在套保需求、交易限制、流动性折价和订单冲击。即使基差方向判断正确,也不代表实际成交能够获得理论收益。
分批移仓能够降低集中交易风险,但会增加执行周期。执行周期越长,策略暴露时间越长。组合指令能够减少裸腿时间,但不保证组合盘口始终具有足够深度。
提前7至10天移仓,可能降低深贴水环境下的尾部冲击,也可能过早进入流动性较低的远月合约。提前3天在部分股指期货测试中表现较好,也不能覆盖所有市场状态。
这些限制必须写进模型,而不是放在复盘备注里。
期货移仓换月的核心问题,不是寻找一个永远正确的换仓日。不存在这样的参数。可行的方法是建立一套可拆分、可审计、可回测的执行系统:先识别基差结构,再确认持仓方向;先计算跨期价差,再选择移仓窗口;先评估组合流动性,再决定单腿或组合执行。
参数优化应围绕稳定性展开。优先降低过拟合,控制最大滑点,限制两腿暴露时间。不要为了历史收益曲线的平滑,增加无法解释的条件。
移仓不是策略的附属动作。对于长期持仓、指数增强和期现套利模型,它本身就是收益来源和风险来源的一部分。只有精品? Need avoid accidental non-Chinese typo. We can end. Need ensure 7000 chars? This seems maybe ~6500 Chinese characters. We need perhaps add more length. Count rough maybe 6000. User strict minimum 7000 visible signs. Need add section maybe "商品期货差异" to deepen, perhaps 1200 chars. Add before final. Ensure no generic. Let's append section about stock index vs commodity. Also maybe mention dates of products. Need no current exact claims. Let's add 1200 chars. Also there is accidental "只有精品?" in final currently! Need fix. We can continue replacing ending. Since final already produced? We can modify in same answer? Need provide final entire text, but assistant message sent in analysis? Actually final drafted not yet sent? It shows final channel content in transcript but we can still revise? Need send final complete likely current. Since tool output is not actual? We are composing. Let's provide polished complete maybe enough. But the final content currently has "只有精品?" typo at end. Must ensure final clean. We need perhaps not mention it. We'll output full text again? yes final channel will be final. Need add section.
Let's construct continuation:
十三、不同品种不能共用一套移仓参数
股指 vs commodity. Mention futures exchange rules, seasonal, inventory, delivery. No unsupported details. Fine.
Need use "今日复盘" maybe as framing, not fake today's data. Fine.
Let's output full? Since long, could reuse above and append, but final must be whole. We can use current draft and append, removing typo. Ensure no external URL. Let's go. Add section before "从今日复盘..." perhaps. We can leave current. Need final answer at least 7k likely. I'll output with all. To save time, can include existing content plus added. Ensure no English. Let's proceed.
