DuckDB 回测引擎 因子/策略历史赚钱吗?
2025-08-22 ~ 2026-08-21
W底双底突破(形态反转)
242 交易日 · 前复权
01策略说明
用户定义规则 · 五要素齐全(买入/卖出时机+仓位)· 执行口径标注
买入时机W底形态确认:最近60日内双底(两低点接近±5%、颈线=两底间最高收盘),当日收盘突破颈线
买入仓位满仓(单标的 100%,初始资金 100 万)
卖出时机跌破右底止损;跌回颈线下方(假突破)离场;单日跌超 8% 或连亏累计 10% 止损;持有 20 天到期
卖出仓位清仓(100%)
选股条件全市场 A 股,成交额 ≥1 亿(无人问津的小票不参与)
候选选择当日满足买入信号的全部股票中,选取「当日成交额最大」的 1 只(热度代理 [ASSUMED]);当日无候选则继续空仓等待
💡 策略本质:经典双重底反转——跌出两个接近的低点(±5%)、两底间反弹构成颈线,收盘放量突破颈线才确认右侧买点。与抄底的本质区别:W底等突破确认才买,不接下跌中的刀(RSI 抄底/60日新低抄底全部亏损就是反证)。
02回测总览
模型输出 · [MODEL]
正收益 · 全场第二
近 1 年 21 笔:胜率 42.9%、盈亏比 3.34、总收益 +76.3%(跑赢沪深300 59.1pct)、回撤 -23.1%——11 个策略中唯二正收益,回撤全场最小。
结论—— W底双底突破近 1 年 +76.3%,21 笔中 9 盈 12 亏——"突破确认后买、破位即跑"的双底形态是 11 个策略里第二个正收益,且最大回撤仅 -23.1%(全场最优)。形态反转完胜抄底:同样是底部逻辑,RSI 超卖 -1.7%、60日新低 -54.3% 全灭,只有等突破确认的 W底活了下来。
数据含义—— 9 笔盈利平均 +13.9%(巨化股份 +41.5%、紫光股份 +21.9%、中国中免 +16.9%、东山精密 +13.3%、利欧股份 +10.5%),12 笔亏损平均仅 -3.9%;盈亏比 3.34 且胜率 42.9%——双底形态的信号质量远高于趋势策略(海龟胜率仅 28.6%)。
失败模式—— 10 笔跌回颈线(假突破,平均 -3.5%)、5 笔单日跌超 8% 止损、2 笔跌破右底、2 笔连亏——21 笔中 19 笔靠纪律离场;有趣的是 5 笔止损中有 3 笔是获利回吐(东山 +13.3%/紫光 +21.9%/蓝色光标 +6.1% 盈利后回撤触发止损),"让利润奔跑"与"落袋为安"的平衡点值得打磨。
横向对比—— 11 策略排名第 2(+76.3%),仅次于海龟 +79.0%;回撤 -23.1% 远优于海龟 -43.2%——同为突破买入,双底形态多了一层"左侧底部过滤",避免了 20 日新高式的高位追涨,净值曲线平滑得多。
优化方向—— ①突破需放量确认(量比≥1.5,10 笔跌回颈线的假突破多为缩量)②跌破颈线改 2 日确认(多笔被一根阴线震出后次日反弹)③突破后回踩颈线不破是经典加仓点(巨化主升前回踩过)④上证 60 日线下空仓过滤弱市(2026-02~04 五连亏集中在此段)。
投资指导—— W底突破是 A 股最有效的底部形态之一——"左侧不猜、右侧确认":不接下跌中的刀,等双底成形+突破颈线再买。实盘建议突破日收盘确认、次日开盘分批建仓,跌破颈线/右底坚决离场;胜率 42.9%+盈亏比 3.34 期望为正,适合作为底部反转的底仓策略。
03收益与回撤
策略净值 vs 沪深300 · 收盘口径
💡 净值 +76.3% 且全程平滑:2025-11 中免 +16.9% 开局,2026-06~07 巨化 +41.5% + 紫光 +21.9% 两波主升贡献主要利润;全程最大回撤仅 -23.1%——形态过滤让净值曲线远优于海龟(-43.2%)。
04交易明细
21 笔 · 卖出日=信号触发日次日开盘成交 · 候选=选股日满足买入信号的股票数(均选成交额最大者)
| # | 选股日 | 买入日 | 卖出日 | 触发日 | 股票 | 买价 | 卖价 | 收益 | 天数 | 候选 | 当前资金(¥) | 卖出原因 |
| 1 | 2025-11-21 | 2025-11-24 | 2025-12-23 | 2025-12-22 | 中国中免 601888.SH | 78.549 | 91.851 | +16.90% | 21 | 283 | ¥1,169,041 | 持有20天到期 |
| 2 | 2025-12-24 | 2025-12-25 | 2025-12-30 | 2025-12-29 | 深科技 000021.SZ | 24.847 | 24.261 | -2.39% | 3 | 126 | ¥1,141,090 | 跌回颈线下方·形态失败 |
| 3 | 2025-12-31 | 2026-01-05 | 2026-01-07 | 2026-01-06 | 利欧股份 002131.SZ | 5.97 | 6.596 | +10.47% | 2 | 59 | ¥1,260,562 | 跌破W底右底止损 |
| 4 | 2026-01-08 | 2026-01-09 | 2026-01-27 | 2026-01-26 | 三花智控 002050.SZ | 53.73 | 51.643 | -3.91% | 12 | 107 | ¥1,211,212 | 连续亏损累计超10% |
| 5 | 2026-01-28 | 2026-01-29 | 2026-02-03 | 2026-02-02 | 星宇股份 601799.SH | 132.0 | 130.845 | -0.90% | 3 | 21 | ¥1,200,255 | 跌回颈线下方·形态失败 |
| 6 | 2026-02-04 | 2026-02-05 | 2026-02-09 | 2026-02-06 | 水晶光电 002273.SZ | 27.442 | 26.905 | -1.99% | 2 | 51 | ¥1,176,403 | 跌回颈线下方·形态失败 |
| 7 | 2026-02-10 | 2026-02-11 | 2026-02-13 | 2026-02-12 | 奥飞娱乐 002292.SZ | 10.69 | 9.87 | -7.70% | 2 | 22 | ¥1,085,812 | 跌回颈线下方·形态失败 |
| 8 | 2026-02-24 | 2026-02-25 | 2026-02-27 | 2026-02-26 | 九安医疗 002432.SZ | 43.145 | 42.998 | -0.37% | 2 | 44 | ¥1,081,791 | 跌回颈线下方·形态失败 |
| 9 | 2026-03-02 | 2026-03-03 | 2026-03-24 | 2026-03-23 | 东山精密 002384.SZ | 95.57 | 108.3 | +13.29% | 15 | 33 | ¥1,225,562 | 单日跌超8%止损 |
| 10 | 2026-03-25 | 2026-03-26 | 2026-03-30 | 2026-03-27 | 紫光股份 000938.SZ | 26.033 | 24.487 | -5.97% | 2 | 22 | ¥1,152,412 | 跌破W底右底止损 |
| 11 | 2026-03-31 | 2026-04-01 | 2026-04-07 | 2026-04-03 | 神剑股份 002361.SZ | 17.0 | 15.85 | -6.79% | 3 | 10 | ¥1,074,109 | 单日跌超8%止损 |
| 12 | 2026-04-08 | 2026-04-09 | 2026-04-27 | 2026-04-24 | 蓝色光标 300058.SZ | 16.388 | 17.398 | +6.13% | 12 | 150 | ¥1,139,936 | 单日跌超8%止损 |
| 13 | 2026-04-28 | 2026-04-29 | 2026-05-14 | 2026-05-13 | XD海尔智 600690.SH | 20.504 | 20.418 | -0.45% | 8 | 29 | ¥1,134,795 | 跌回颈线下方·形态失败 |
| 14 | 2026-05-15 | 2026-05-18 | 2026-05-20 | 2026-05-19 | 迈为股份 300751.SZ | 261.049 | 268.145 | +2.69% | 2 | 12 | ¥1,165,303 | 跌回颈线下方·形态失败 |
| 15 | 2026-05-21 | 2026-05-22 | 2026-06-01 | 2026-05-29 | 云意电气 300304.SZ | 13.66 | 13.21 | -3.32% | 6 | 5 | ¥1,126,565 | 跌回颈线下方·形态失败 |
| 16 | 2026-06-02 | 2026-06-03 | 2026-07-03 | 2026-07-02 | 巨化股份 600160.SH | 37.801 | 53.51 | +41.53% | 21 | 10 | ¥1,594,396 | 持有20天到期 |
| 17 | 2026-07-06 | 2026-07-07 | 2026-07-20 | 2026-07-17 | 紫光股份 000938.SZ | 31.66 | 38.6 | +21.89% | 9 | 43 | ¥1,943,416 | 单日跌超8%止损 |
| 18 | 2026-07-21 | 2026-07-22 | 2026-07-27 | 2026-07-24 | 亚钾国际 000893.SZ | 46.02 | 46.13 | +0.21% | 3 | 7 | ¥1,947,478 | 单日跌超8%止损 |
| 19 | 2026-07-28 | 2026-07-29 | 2026-08-05 | 2026-08-04 | 工商银行 601398.SH | 8.03 | 7.63 | -5.01% | 5 | 23 | ¥1,849,883 | 跌回颈线下方·形态失败 |
| 20 | 2026-08-06 | 2026-08-07 | 2026-08-12 | 2026-08-11 | 利通电子 603629.SH | 122.3 | 126.28 | +3.22% | 3 | 18 | ¥1,909,529 | 跌回颈线下方·形态失败 |
| 21 | 2026-08-13 | 2026-08-14 | 2026-08-20 | 2026-08-19 | 华勤技术 603296.SH | 85.97 | 79.39 | -7.68% | 4 | 5 | ¥1,762,804 | 连续亏损累计超10% |
💡 21 笔中 12 笔小亏(-0.4%~-7.7%,平均 -3.9%)、9 笔盈利(平均 +13.9%);亏损集中在跌回颈线的假突破(10 笔)——双底形态约一半的突破会失败,但止损够紧,失败成本极低。
05卖出原因分布
全部平仓口径 · 共 21 笔
💡 卖出纪律高度一致:10 笔跌回颈线 + 5 笔单日 -8% + 2 笔跌破右底 + 2 笔连亏 = 19/21 靠止损离场;仅 2 笔持有 20 天到期却贡献了最大两笔利润(+41.5%/+16.9%)——"让利润跑、砍亏损快"的教科书演绎。
0610 策略横向对比
同一引擎同一区间 · 按总收益排序 · ★=当前策略
| 排名 | 策略 | 交易 | 胜率 | 盈亏比 | 总收益 | 最大回撤 | 年化 |
| 1 | 强势股缩量回踩 MA20 趋势回踩 | 35 | 42.9% | 3.84 | +161.2% | -31.9% | +171.7% |
| 2 | 海龟唐奇安通道突破 趋势跟随 | 14 | 28.6% | 5.55 | +79.0% | -43.2% | +83.8% |
| 3 | W底双底突破 ★ 形态反转 | 21 | 42.9% | 3.34 | +76.3% | -23.1% | +80.5% |
| 4 | KDJ 低位金叉 震荡指标 | 42 | 38.1% | 1.95 | +9.1% | -41.2% | +9.5% |
| 5 | RSI 超卖反转 超跌反转 | 24 | 58.3% | 0.76 | -1.7% | -37.1% | -1.8% |
| 6 | 涨停基因缩量回踩 打板低吸 | 36 | 33.3% | 2.20 | -3.1% | -44.7% | -3.2% |
| 7 | MACD 零轴下金叉 震荡指标 | 21 | 33.3% | 2.08 | -9.5% | -46.8% | -9.9% |
| 8 | 均线粘合向上突破 形态突破 | 32 | 31.2% | 1.69 | -18.1% | -48.2% | -18.7% |
| 9 | 二连板打板接力 打板接力 | 26 | 26.9% | 3.10 | -18.8% | -61.4% | -20.2% |
| 10 | 120日新高强势追涨 动量追涨 | 27 | 44.4% | 1.19 | -19.7% | -48.0% | -20.4% |
| 11 | 向上跳空缺口放量 缺口突破 | 50 | 34.0% | 2.00 | -24.1% | -55.1% | -25.0% |
| 12 | 布林带突破 波动突破 | 19 | 21.1% | 3.29 | -27.1% | -42.2% | -28.1% |
| 13 | 强势股首阴低吸 趋势回踩 | 46 | 30.4% | 2.13 | -31.4% | -61.4% | -32.5% |
| 14 | MA20 放量突破 趋势跟随 | 25 | 24.0% | 2.01 | -34.9% | -39.6% | -36.1% |
| 15 | 缩量回踩 MA5/MA10 趋势回踩 | 33 | 27.3% | 2.04 | -38.2% | -69.0% | -39.4% |
| 16 | 放量连续阳线接力 动量追涨 | 30 | 30.0% | 1.83 | -39.3% | -63.0% | -40.5% |
| 17 | 均线多头回踩 趋势回踩 | 38 | 34.2% | 1.06 | -51.5% | -72.2% | -52.9% |
| 18 | 60日新低超跌反弹 超跌反转 | 33 | 42.4% | 0.55 | -54.3% | -56.7% | -55.8% |
| 19 | 双均线金叉趋势跟随 趋势跟随 | 18 | 22.2% | 1.43 | -54.4% | -61.7% | -55.9% |
| 20 | 涨停次日低吸 打板低吸 | 46 | 37.0% | 1.02 | -66.3% | -75.0% | -67.8% |
💡 11 策略对比:W底 +76.3% 排第 2,仅次于海龟 +79.0%,但回撤 -23.1% 全场最优(海龟 -43.2%)——同为突破逻辑,双底形态多了左侧底部过滤,避免高位接盘;也是唯一跑赢的底部类策略(RSI -1.7%、60日新低 -54.3%、涨停低吸 -66.3% 全灭)。
07优化建议与风险
基于回测证据 · 模型输出
优化建议(按优先级)
突破需放量确认10 笔跌回颈线的假突破多为缩量突破——加量比≥1.5 过滤,预计可减少 30-50% 假信号
跌破颈线 2 日确认多笔被一根阴线震出后次日反弹(深科技 -2.4% 后反弹)——跌破颈线后 2 日未收回再卖,可少亏几笔
颈线回踩加仓突破后回踩颈线不破是经典加仓点(巨化 +41.5% 主升前曾回踩)——放大盈利段仓位
大盘趋势过滤上证 60 日线下空仓——2026-02~04 的五连亏集中在弱市段,过滤后可提升胜率
风险提示
样本期含 2026-06~07 消费/化工主升行情(巨化 +41.5%),趋势市是形态策略的蜜月期——震荡市胜率可能下降
满仓单标的+突破日次日开盘买入,若大幅高开追入成本偏高(突破买点的滑点风险)
双底识别依赖参数(60 日窗口/±5% 容差),实盘形态不标准(三重底/头肩底/圆弧底)可能漏信号或误判
数据来源:同花顺金融数据(hithink-finance v0.1.5,本地 DuckDB v_daily_qfq 前复权日K + index history 沪深300 + symbol list 名称映射);回测区间 2025-08-22~2026-08-21(242 交易日);策略:W底双底突破(形态反转),五要素定义见 strategies.json;口径:涨停=前复权相邻日收益率(主板 ≥+9.8%、创业板/科创板 ≥+19.8%);RSI14 为 SMA 均值口径 [ASSUMED];布林=MA20±2σ(stddev_samp);唐奇安=前 20 日最高/前 10 日最低(不含当日);交易按开盘价成交、满仓单标的、含单边 0.03% 费率(印花税未含);当前资金=初始 100 万按每笔清仓收益滚动累计;总收益含期末未平仓浮动;卖出日=信号触发日(跌超/死叉/破位等)的下一交易日,按开盘价成交;候选=选股日满足买入信号的全部股票数,均选当日成交额最大者(热度代理 [ASSUMED])。回测结果为历史数据模拟 [MODEL],不代表未来表现。仅供研究参考,不构成个人投资建议。