事件驱动研究 · 2026-10-03 · 数据截至2026-09-30 · 原策略未改动

配债等池:下一步该优化什么?

最值得继续试的是给排队标的设置“保鲜期”;最值得先补齐的是公告与股权登记的执行记录。现在还没有足够证据,支持把现有FIFO换掉。

研究基准年化
28.95%
10槽位 · 先入先出 · 正股收益
60日排队上限年化
31.94%
历史增益,不是未来收益承诺
首轮单因素版本
31
另做时点、费用、冷启动与参数复核

一、先说结论:保留主策略,另开观察版本

这次不是寻找一条最好看的曲线,而是比较每项改动单独起什么作用。样本为2017-09-06至2026-09-30、2195个交易日、978条事件,包括935条已发行、30条终止/失效类和13条仍在途事件。事件是现有缓存整理结果,并不代表全市场历史事件已完整收录。

规则年化最大回撤夏普判断
基准FIFO28.95%-37.17%1.12保留主策略
同日释放槽位29.22%-37.62%1.12收益差异小;以实际可成交性为先
排队上限60交易日31.94%-35.63%1.20最值得做独立观察版本
持仓8只31.26%-38.84%1.16分散程度下降,回撤更深
入队反追高10%30.42%-37.24%1.17增益不大,不急于替换15%
持有上限90交易日29.35%-33.34%1.13改善回撤,但近期收益明显落后
止盈20%25.04%-34.27%1.09收益低于基准
止损-10%18.68%-35.17%0.84明显损伤收益
创业板MA120允许新买22.71%-24.07%1.09偏防守,不是收益增强
建议:原FIFO继续作为主版本。将“排队年龄超过60个交易日、尚未买入就不再补位”作为独立观察规则;不更换现有持仓,不把它直接升级为实盘主规则。止盈、止损、强制快轮动,本轮都没有给出充分的收益增强证据。

本表是独立研究口径:公告后首个交易日收盘成交、固定入场槽位、真实现金账、缺行情/疑似封板延期。不是官网现有净值的直接复刻,也不能把这次28.95%与旧版不同口径的高年化混在一起比较。夏普未减无风险收益。

FIFO、60日排队上限及MA120防守规则的历史净值和回撤
图1:日频净值与回撤,不做平滑。净值使用对数坐标;原始日收益可以下载复核。

二、最有希望的改动:让队列里的旧标的过期

FIFO只回答“谁先排到”,没有回答“这个标的还值得等多久”。队列很拥挤时,一只股票可能早已过会,却迟迟没有买入。它终于轮到时,后续发行等待风险与价格状态都可能已经变了。给队列设置最长年龄,是对这类陈旧候选的管理假设;目前还不能证明增益一定来自这一机制。

规则很简单:从过会信号对应交易日起计龄,超过60个市场交易日仍在排队,就移出候选池;已经买入的股票不受这条规则影响,仍按原来的发行/终止公告及时间上限退出。它不是“持有60天就卖”。

指标基准FIFO排队上限60日
年化收益28.95%31.94%
最大回撤-37.17%-35.63%
平均入场等待(已平仓样本)51.5交易日38.4交易日
平均实际持仓(已平仓样本)44.7交易日44.8交易日
入场笔数471467
平均资金使用率92.83%91.56%

它减少的是入场前等待,并没有把持仓变成高频轮动。全样本因队龄出队128条;入场笔数反而少了4笔。当前两个影子组合的10只股票及买入日期完全相同,2026年以来的收益也几乎相同,不能把过去的累计领先当成当下马上能多赚的收益。

排队期限相邻参数的年化结果,以及只延迟买入或卖出的压力测试
图2:左侧是看过首轮结果后的探索性相邻参数;右侧只计算正股、不参与配债。两图都不是独立样本外证据。

55—75日附近的全期年化普遍高于基准,表面上不是只有60这一个点有效;但45—50日反而明显落后,说明不能任意缩短。70日的事后全期年化更高,也不是据此就应该改用70日。

查看相邻参数及年度收益
排队上限(交易日)全期年化最大回撤2017—22年化2023—24年化
4524.05%-40.03%11.00%28.08%
5024.95%-32.13%12.64%29.66%
5531.52%-33.44%17.78%45.31%
6031.94%-35.63%20.24%38.87%
6531.54%-36.85%17.98%44.43%
7033.90%-33.89%21.42%44.97%
7533.37%-36.68%19.68%48.00%
8030.25%-35.60%18.27%37.00%
9030.20%-37.17%18.71%35.00%
10030.24%-37.17%19.33%33.91%
12029.66%-37.17%18.84%32.04%
年份基准收益60日规则收益差值
2017-7.30%-7.30%+0.00个百分点
2018-29.01%-18.73%+10.29个百分点
201952.62%28.47%-24.14个百分点
202090.92%104.13%+13.20个百分点
202136.56%42.37%+5.80个百分点
2022-4.43%-5.32%-0.89个百分点
202353.78%57.36%+3.58个百分点
20249.96%22.29%+12.33个百分点
202539.44%41.77%+2.33个百分点
202669.80%69.81%+0.00个百分点

2017仅包含9月6日以后,2026仅包含截至9月30日;年度表是区间累计收益,不把不完整年份年化。2019年60日规则比基准落后约24个百分点,这个反例不能忽略。

三、更大的风险:退出时点,以及跨登记日后的收益归属

仅把买入再晚一个交易日,结果变化很小;仅把卖出再晚一个交易日,正股组合收益却明显下降。买卖两端分开测后,差异主要出在卖出端。

执行口径年化最大回撤夏普
买卖均按日期当日(偏乐观参照)30.11%-37.27%1.16
买卖均日期后首个交易日(研究基准)28.95%-37.17%1.12
只把买入再推迟1个交易日28.81%-37.17%1.12
只把卖出再推迟1个交易日13.84%-37.81%0.63
买卖均再推迟1个交易日13.94%-37.12%0.64

为避免把队列连锁换仓效应误认成纯粹的卖出效应,还匹配了相同事件、相同买入日、不同卖出日的交易:共50对,延迟期间正股收益均值为-2.74%、中位数-3.08%,其中78.00%为负。这仍然只是条件样本描述,不是可直接投资的独立组合。

重要限定:这不是完整“抢权+配债”回测。如果晚卖跨过股权登记日,投资者可能已取得老股东配售资格。本研究没有缴款认购转债,也没有计入配售权、转债上市收益或额外资金占用。因此13.84%只表示“晚一天卖正股且不参与配债”的模拟;不能说完整配债交易因此必然损失15个百分点年化。

当前发行信息缓存中,可将公告日与登记日精确匹配到本次基准交易的有37条,其中37条基准在登记日卖出,14条同入场的延迟版本跨过登记日。覆盖只是局部,不能外推全历史比例。

数据供应商把发行公告日、老股东配售股权登记日、配售日分别定义为不同字段。日历日期也不能代替真实的盘前/盘后发布时间。来源:Tushare可转债发行字段说明。

可落地的启发:把“公告原文与发布时间 → 首次发现时间 → 最早可执行交易时段 → 实际成交 → 是否跨登记日”存成可审计记录。优先保障退出信号不漏报,而不是据这张表鼓励猜公告、抢先交易或保证在某个价格卖掉。

发行公告前后:现有已发行样本的等权日收益
事件相对日样本数平均日收益中位数负收益比例
-19350.47%0.22%43.21%
09351.60%1.34%29.73%
19350.10%-0.05%50.48%
2935-2.17%-2.05%76.15%
3935-0.24%-0.32%54.97%
4933-0.01%-0.13%52.41%
59310.03%-0.08%50.81%

+1为严格晚于发行公告日期的首个市场交易日;0为它前一个交易日,未必就是公告当天。各日有行情才纳入,样本数会不同。未扣费,未做市场/行业调整,未计配售权;不是异常收益检验,更不是另一个新策略。

四、为什么还不能说“找到了更优策略”

1. 统计区间跨过零,多参数搜索也没有通过

对60日规则相对FIFO的日对数收益差,做配对20日循环区块自助抽样(1500次),年化对数超额点估计为2.39%,95%区间为[-2.35%,6.99%]。这是对数超额,不是两条CAGR相减的置信区间;区间包含零,不能声称增益已被证实。

对首轮30个非基准版本,再做中心化区块最大统计量检验(1000次),60日规则对应的探索性多重比较p值约0.963,也未能排除“多试几个刚好挑中”的解释。这不是对后来所有相邻参数和组合搜索的完整校正,所以结论只能更保守,不能反过来宣布有优势。

2. 换一个合理设置,领先会消失

压力条件基准年化60日规则年化年化差值
单边费用0.4%(翻倍)26.41%29.39%+2.98个百分点
买卖均再延迟一天13.94%18.87%+4.92个百分点
当日卖出当日补位29.22%32.44%+3.21个百分点
8个槽位31.26%33.24%+1.98个百分点
12个槽位28.51%27.18%-1.33个百分点
入队反追高阈值10%30.42%32.16%+1.74个百分点
过会后总时间上限270自然日33.36%32.46%-0.90个百分点
过会后总时间上限450自然日28.07%29.80%+1.73个百分点
剔除11只日期来源冲突股票27.43%30.82%+3.39个百分点
剔除两版本各自前5大赢家的并集20.11%22.45%+2.35个百分点

费用翻倍、剔除日期冲突样本后仍领先,这是支持证据;但改成12槽位、或把过会后的总体时间上限改成270日后落后,这是反证。剔除大赢家是事后稳健性检查,不是当时能够执行的规则;费用翻倍也不能替代容量与盘口冲击模型。

3. 真正的时间分段选择,并没有选出“稳赢版本”

首轮规则确定后,仅用2017—2022段挑选:要求开发段回撤不差于基准、年化最多低2个百分点,再取夏普最高者。被选中的是创业板MA120允许新买,不是60日排队上限。

规则年化最大回撤夏普2017—22年化2023—24年化2025至今年化
基准FIFO28.95%-37.17%1.1218.84%30.16%64.05%
创业板MA120允许新买22.71%-24.07%1.0920.06%9.58%49.59%
排队上限60交易日31.94%-35.63%1.2020.24%38.87%65.62%

MA120规则在2023—2024段的年化仅9.58%,低于基准30.16%。它可以被解释为降低风险敞口的防守版本,但没有证明收益增强。60日版本在三段都好看,是看过首轮结果后关注到的候选;后续复核不能把它重新包装成未见过历史的独立验证。2023年后数据在过去研究中也已被研究者看过。

4. 从不同年份重新开始:近期没有新增领先

从该年空仓启动基准年化60日规则年化差值
201829.86%31.58%+1.72个百分点
201938.52%42.00%+3.49个百分点
202039.02%42.75%+3.73个百分点
202133.17%36.62%+3.45个百分点
202231.99%36.12%+4.14个百分点
202345.82%49.48%+3.66个百分点
202459.77%59.77%+0.00个百分点
202558.69%58.69%+0.00个百分点

冷启动只接纳启动后新出现的过会事件,不预填历史队列。2024、2025重新启动时两版本结果相同,提示历史领先主要依赖更早的队列路径。以上区间彼此重叠,不能当作8次独立成功验证。

五、怎么计算:先把现金账和信息时点分清

研究只使用已有本地数据;SQLite只读。原版生成器没有被导入执行,网站持仓、交易提醒和策略参数没有被本次研究改写。

入队、买入、退出

  1. 事件按过会信号日排序,同日按股票代码稳定排序。过会信号对应前收盘的10交易日涨幅不超过15%才入队;不是事后挑发行成功最快者。
  2. 研究基准至少等信号对应交易日之后一个市场交易日,才允许收盘买入。遇到没有行情或日线涨停代理条件,等待后续可成交日。同一正股不得重复占槽。
  3. 发行/终止日期之后首个市场交易日收盘退出;无可执行报价则顺延。未退出事件采用过会后365个自然日的策略时间上限,它不是法定批文失效日。
  4. 基准先尝试原有空槽买入,再处理当天卖出,因此当天释放的槽位下一交易日使用;同日补位实验单独改变这个顺序。日线收盘撮合只是一种模拟,实盘资金与订单执行要另验。
  5. 止盈止损、补位涨幅、市况均线只看前一收盘;新增仓位不领取买入当天的涨幅。期末在途仓位正常估值,不人为清仓。

资金与队龄公式

Ai,t=min(Vt−K,Ct−),Hi,t=Ai,t(1−c)

V⁻为当日交易前、存量仓位已按收盘价估值的总权益;C⁻为可用现金;K=10;A为本次投入金额;H为扣除买入成本后的持仓价值;c=0.2%为单边费用。存量仓位不每天重新等权,空槽留现金、现金不计息、不加杠杆。股价变化后单股实际权重可以偏离10%。

qi,t=t−si;qi,t>L∧尚未买入⇒出队

t与s为市场交易日序号,s是过会信号对应日;L=60是候选规则。股票停牌不会暂停市场交易日计数。上述是排队年龄,和买入后的实际持仓天数是两个变量。

尚未消除的偏差

本轮主研究串行运行,固定1个BLAS线程,记录的峰值内存约152 MiB;未开启多Agent并行回测。合成测试覆盖入场日收益归属、现金/成本、同日补位、缺行情顺延、信号滞后、买卖独立时钟、期末不假卖出及未来收益不改写历史前缀。

六、下一步落地顺序

优先级工作验收标准
1公告—登记日—可执行时段审计先补齐日期冲突、来源链接和首次发现时间;区分不配债与实际认购
2独立跟踪FIFO与60日队龄规则参数冻结,不动主策略;记录不同候选、不同交易和不成交原因
3完整失败/撤回/长期搁置样本按当时信息入池;验证历史收益不依赖事后成功名单
4有需要再做防守版将降低回撤单独设目标,明确接受较低收益,不伪称全面增强

观察版本不能只比较净值数字。应先看它是否真的产生不同决策、每次差异发生在什么队列状态、执行成本能否解释收益差,再逐步积累向前样本。若未来数月两版本仍是同一批持仓,不能把“净值都上涨”算成新规则获验证。

暂不建议:为了提高回测数字同时改槽位、队龄、止盈、择时等多个参数;把70日等事后最优点直接上线;把正股退出测试当成完整配债交易总收益。

下载仓库复现入口 backtest.py(需要仓库代码及已有行情缓存,不会切换线上策略)

附录:完整结果与复现

展开首轮31个版本(含失败版本,不只展示赢家)
规则年化最大回撤夏普2017—22年化2023—24年化2025至今年化
基准FIFO28.95%-37.17%1.1218.84%30.16%64.05%
同日释放槽位29.22%-37.62%1.1218.79%32.02%63.42%
持仓5只27.96%-42.92%0.999.93%33.83%93.72%
持仓8只31.26%-38.84%1.1618.32%36.75%72.34%
持仓12只28.51%-34.95%1.1318.28%32.78%59.81%
持仓15只25.01%-34.08%1.0417.95%28.02%45.58%
入队反追高5%26.38%-38.11%1.0816.82%22.77%66.47%
入队反追高10%30.42%-37.24%1.1719.73%32.55%66.66%
入队反追高20%28.14%-37.11%1.0917.57%29.38%65.24%
取消入队反追高29.21%-37.19%1.1118.86%29.29%67.01%
排队上限20交易日21.62%-38.78%0.907.42%31.82%62.29%
排队上限40交易日22.81%-37.28%0.9415.19%12.05%66.16%
排队上限60交易日31.94%-35.63%1.2020.24%38.87%65.62%
排队上限120交易日29.66%-37.17%1.1418.84%32.04%66.05%
持有上限20交易日9.05%-37.75%0.5310.02%10.95%4.15%
持有上限40交易日18.88%-36.42%0.8316.27%13.54%34.29%
持有上限60交易日25.24%-34.27%1.0217.36%31.80%44.34%
持有上限90交易日29.35%-33.34%1.1320.73%40.33%45.77%
补位涨幅上限10%27.00%-36.16%1.0715.63%32.25%61.76%
补位涨幅上限20%26.95%-36.93%1.0616.01%29.17%64.18%
补位涨幅上限30%26.30%-37.33%1.0516.36%23.98%66.06%
止盈20%25.04%-34.27%1.0920.88%25.42%38.44%
止盈30%26.75%-33.76%1.1222.31%25.13%43.77%
止盈50%27.45%-35.77%1.1222.27%24.19%49.33%
止损-10%18.68%-35.17%0.8411.87%14.96%47.70%
止损-15%26.88%-37.78%1.0417.35%32.08%54.11%
创业板MA60允许新买23.99%-26.94%1.1318.21%23.77%44.04%
创业板MA120允许新买22.71%-24.07%1.0920.06%9.58%49.59%
创业板MA200允许新买21.99%-24.16%1.1118.00%5.94%58.96%
个股波动预算25%19.02%-35.71%1.0513.01%20.72%37.42%
个股波动预算35%23.10%-36.83%1.0715.58%23.73%48.66%
源文件哈希及事件日期冲突
{
  "end": "20260930",
  "events": 978,
  "kinds": {
    "issued": 935,
    "lapsed": 30,
    "open": 13
  },
  "diagnostics": {
    "large_return_observations_retained": 2
  },
  "source_conflicts": [
    [
      "000630.SZ",
      "20230629",
      "20230907",
      "20231025"
    ],
    [
      "002307.SZ",
      "20200423",
      "20200804",
      "20210619"
    ],
    [
      "002413.SZ",
      "20191011",
      "20200318",
      "20200527"
    ],
    [
      "002556.SZ",
      "20191205",
      "20200415",
      "20200423"
    ],
    [
      "002579.SZ",
      "20190920",
      "20200122",
      "20200224"
    ],
    [
      "300462.SZ",
      "20190726",
      "20191226",
      "20200721"
    ],
    [
      "300629.SZ",
      "20190712",
      "20191204",
      "20200605"
    ],
    [
      "300667.SZ",
      "20191101",
      "20200110",
      "20200508"
    ],
    [
      "600075.SH",
      "20200116",
      "20200515",
      "20201231"
    ],
    [
      "603977.SH",
      "20191101",
      "20200304",
      "20200903"
    ],
    [
      "605090.SH",
      "20221027",
      "20221231",
      "20230315"
    ]
  ],
  "hashes": {
    "data/cb_pass_dates.json": "2df411722726cff80d49f07849b4e5b5fb5e34046c27c612ddf571c083e94834",
    "data/cb_ann_dates.json": "27e65d821068a2fdad94ae52343dff6111192d206821659a8c40b6cfe481d4df",
    "data/cb_lapsed_plans.json": "485c80d1c3b0c5001ee495bd537b6f1669ea5ac5e39bcf4bf5eb91945f31ff0c",
    "my-app/app/lib/milestones.ts": "801670c0ce20413b654b8478688b8207a2d350d706f27a83b976735455aa4b80",
    "my-app/app/lib/cb_auto.json": "5078672df1ef35da242f0ee62b84ba6e1a28db1f1a03800657976ecc1cc23a86"
  }
}

首轮结果JSON · 稳健性JSON · 退出时点核验JSON · 31版本日收益CSV · 基准及开发段选中版本交易JSON

OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 python3 research/cb_queue_optimization_study.py
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 python3 research/cb_queue_exit_audit.py
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 python3 research/cb_queue_optimization_report.py
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 python3 -m unittest discover -s research -p test_cb_queue_optimization.py -v

按顺序执行;仅在research/cb_queue_optimization_20261003写入结果。需要仓库中现有行情与事件缓存。本报告不是自动上线指令。年度影子版本选择也保存在JSON,但未计跨版本切换成本,不将其拼接成可投资策略净值。