DuckDB 回测引擎 因子/策略历史赚钱吗?
2025-08-22 ~ 2026-08-21
布林带突破(波动突破)
242 交易日 · 前复权
01策略说明
用户定义规则 · 五要素齐全(买入/卖出时机+仓位)· 执行口径标注
买入时机收盘突破布林上轨(MA20+2σ),次日开盘买入
买入仓位满仓(单标的 100%,初始资金 100 万)
卖出时机收盘跌破布林中轨(MA20)次日开盘卖出;或单日跌超 7% 止损
卖出仓位清仓(100%)
选股条件全市场 A 股,成交额 ≥1 亿(无人问津的小票不参与)
候选选择当日满足买入信号的全部股票中,选取「当日成交额最大」的 1 只(热度代理 [ASSUMED]);当日无候选则继续空仓等待
💡 策略本质:波动突破——突破 MA20+2σ 上轨视为波动率扩张启动。问题是 A 股情绪冲高也常击穿上轨,'突破'与'冲顶'难以区分。
02回测总览
模型输出 · [MODEL]
胜率偏低 · 负超额
近 1 年 19 笔:胜率 21.1%、盈亏比 3.29、总收益 -27.1%(跑输沪深300 44.3pct)、回撤 -42.2%——布林上轨突破多数是情绪冲高。
结论—— 布林上轨突破近 1 年 -27.1%,19 笔中 15 笔亏损——'突破上轨'多为短线情绪冲高,跌破中轨离场又砍掉了尚未走完的趋势。
数据含义—— 兆易创新 +57% 是唯一大肉(AI 芯片),平均盈 +18.1% vs 平均亏 -7.5%,盈亏比 3.29 不低——但 21.1% 的胜率让正期望无法成立。
失败模式—— 10 笔跌破布林中轨卖出(突破后回落至 20 日线=假突破)、5 笔单日 -7% 止损、4 笔连亏——银之杰/华虹宏力 -16%、新易盛 -15% 三笔大亏集中在高位突破回落。
横向对比—— 10 策略排名第 6(-27.1%):比海龟(+79%)差 106pct——布林上轨 = MA20+2σ,阈值低于海龟的 20 日最高价,且跌破中轨(=MA20)离场比海龟的 10 日最低紧得多。
优化方向—— ①只做布林收窄后的突破(波动率压缩后扩张才是真突破)②离场改布林下轨或突破价 -5% ③突破叠加 60 日新高共振 ④上轨突破当日涨幅 >4% 才确认强势。
投资指导—— 布林突破需'收窄→放量→扩张'三条件共振才有效——实盘建议等待布林带宽压缩至 20 日低点后突破上轨,离场放宽至中轨以下 3%,避免情绪冲高接盘。
03收益与回撤
策略净值 vs 沪深300 · 收盘口径
💡 净值在 -27% 附近反复磨底:兆易创新 +57%(2026-01)短暂冲高后回落,其余时段连续小亏——布林策略在结构性行情中收益依赖单笔大肉。
04交易明细
19 笔 · 卖出日=信号触发日次日开盘成交 · 候选=选股日满足买入信号的股票数(均选成交额最大者)
| # | 选股日 | 买入日 | 卖出日 | 触发日 | 股票 | 买价 | 卖价 | 收益 | 天数 | 候选 | 当前资金(¥) | 卖出原因 |
| 1 | 2025-08-22 | 2025-08-25 | 2025-09-10 | 2025-09-09 | 中芯国际 688981.SH | 106.0 | 103.0 | -2.86% | 6 | 403 | ¥971,398 | 单日跌超7%止损 |
| 2 | 2025-09-11 | 2025-09-12 | 2025-09-25 | 2025-09-24 | 胜宏科技 300476.SZ | 317.951 | 300.275 | -5.59% | 9 | 152 | ¥917,105 | 连续亏损累计超10% |
| 3 | 2025-09-26 | 2025-09-29 | 2025-11-03 | 2025-10-31 | 赛力斯 601127.SH | 156.163 | 154.478 | -1.11% | 19 | 103 | ¥906,936 | 跌破布林中轨 |
| 4 | 2025-11-04 | 2025-11-05 | 2025-12-10 | 2025-12-09 | 招商银行 600036.SH | 40.889 | 40.87 | -0.08% | 25 | 157 | ¥906,243 | 跌破布林中轨 |
| 5 | 2025-12-11 | 2025-12-12 | 2025-12-24 | 2025-12-23 | 蓝思科技 300433.SZ | 30.0 | 28.186 | -6.08% | 8 | 78 | ¥851,165 | 跌破布林中轨 |
| 6 | 2025-12-25 | 2025-12-26 | 2026-01-23 | 2026-01-22 | 卧龙电驱 600580.SH | 45.49 | 46.665 | +2.55% | 18 | 294 | ¥872,882 | 跌破布林中轨 |
| 7 | 2026-01-26 | 2026-01-27 | 2026-02-03 | 2026-02-02 | 中国中铁 601390.SH | 5.576 | 5.37 | -3.73% | 5 | 275 | ¥840,348 | 跌破布林中轨 |
| 8 | 2026-02-04 | 2026-02-05 | 2026-03-03 | 2026-03-02 | 晶科能源 688223.SH | 7.8 | 7.39 | -5.29% | 12 | 162 | ¥795,924 | 跌破布林中轨 |
| 9 | 2026-03-04 | 2026-03-05 | 2026-03-12 | 2026-03-11 | 平潭发展 000592.SZ | 12.53 | 11.42 | -8.89% | 5 | 78 | ¥725,177 | 跌破布林中轨 |
| 10 | 2026-03-13 | 2026-03-16 | 2026-03-20 | 2026-03-19 | 德明利 001309.SZ | 317.665 | 349.132 | +9.88% | 4 | 90 | ¥796,793 | 单日跌超7%止损 |
| 11 | 2026-03-23 | 2026-03-24 | 2026-03-30 | 2026-03-27 | 银之杰 300085.SZ | 46.55 | 39.0 | -16.25% | 4 | 23 | ¥667,321 | 连续亏损累计超10% |
| 12 | 2026-03-31 | 2026-04-01 | 2026-04-20 | 2026-04-17 | 药明康德 603259.SH | 98.492 | 97.833 | -0.70% | 12 | 40 | ¥662,652 | 跌破布林中轨 |
| 13 | 2026-04-21 | 2026-04-22 | 2026-06-01 | 2026-05-29 | 兆易创新 603986.SH | 303.059 | 476.0 | +57.04% | 25 | 207 | ¥1,040,598 | 连续亏损累计超10% |
| 14 | 2026-06-02 | 2026-06-03 | 2026-06-09 | 2026-06-08 | 工业富联 601138.SH | 79.033 | 71.165 | -9.99% | 4 | 90 | ¥936,682 | 连续亏损累计超10% |
| 15 | 2026-06-10 | 2026-06-11 | 2026-06-24 | 2026-06-23 | 东材科技 601208.SH | 61.479 | 71.657 | +16.53% | 8 | 58 | ¥1,091,475 | 单日跌超7%止损 |
| 16 | 2026-06-25 | 2026-06-26 | 2026-07-03 | 2026-07-02 | 新易盛 300502.SZ | 598.0 | 510.0 | -14.75% | 5 | 119 | ¥930,529 | 单日跌超7%止损 |
| 17 | 2026-07-06 | 2026-07-07 | 2026-07-20 | 2026-07-17 | 恒瑞医药 600276.SH | 56.4 | 52.97 | -6.11% | 9 | 116 | ¥873,659 | 跌破布林中轨 |
| 18 | 2026-07-21 | 2026-07-22 | 2026-07-24 | 2026-07-23 | 华虹宏力 688347.SH | 388.51 | 327.11 | -15.83% | 2 | 49 | ¥735,324 | 单日跌超7%止损 |
| 19 | 2026-07-27 | 2026-07-28 | 2026-08-20 | 2026-08-19 | 宁德时代 300750.SZ | 394.819 | 391.51 | -0.87% | 17 | 58 | ¥728,940 | 跌破布林中轨 |
💡 19 笔中 15 笔亏损,兆易创新 +57% 一笔贡献全部正收益;平均亏 -7.5% 控制尚可,但假突破频率(79%)太高。
05卖出原因分布
全部平仓口径 · 共 19 笔
💡 10 笔跌破中轨离场(53%)——突破后 1-2 周内回落至 20 日线是常态,中轨离场逻辑本身没错,错在'突破上轨'这个入场信号质量差。
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% |
💡 全策略对比:海龟 +79% vs 布林 -27.1%——布林上轨(2σ)比 20 日最高价更容易被情绪冲高触发,且中轨离场比 10 日最低紧 2 倍,两者叠加造成'多进多出、两头挨打'。
07优化建议与风险
基于回测证据 · 模型输出
优化建议(按优先级)
收窄后突破布林带宽(上轨-下轨)/MA20 < 8% 后首次突破上轨才有效(波动压缩后扩张)
离场放宽跌破中轨改跌破下轨或突破价 -5%,容忍正常回踩
新高共振突破上轨同时处于 60 日新高附近(强势共振),否则放弃
强势确认突破当日涨幅 ≥4%(放量强突破),弱突破直接放弃
风险提示
布林突破与情绪冲顶难以区分,高位突破回落风险大(-16% 大亏均来自此)
19 笔样本小,兆易创新 +57% 单笔影响权重过高
未计印花税与滑点,实际表现更差
数据来源:同花顺金融数据(hithink-finance v0.1.5,本地 DuckDB v_daily_qfq 前复权日K + index history 沪深300 + symbol list 名称映射);回测区间 2025-08-22~2026-08-21(242 交易日);策略:布林带突破(波动突破),五要素定义见 strategies.json;口径:涨停=前复权相邻日收益率(主板 ≥+9.8%、创业板/科创板 ≥+19.8%);RSI14 为 SMA 均值口径 [ASSUMED];布林=MA20±2σ(stddev_samp);唐奇安=前 20 日最高/前 10 日最低(不含当日);交易按开盘价成交、满仓单标的、含单边 0.03% 费率(印花税未含);当前资金=初始 100 万按每笔清仓收益滚动累计;总收益含期末未平仓浮动;卖出日=信号触发日(跌超/死叉/破位等)的下一交易日,按开盘价成交;候选=选股日满足买入信号的全部股票数,均选当日成交额最大者(热度代理 [ASSUMED])。回测结果为历史数据模拟 [MODEL],不代表未来表现。仅供研究参考,不构成个人投资建议。