DuckDB 回测引擎 因子/策略历史赚钱吗?
2025-08-22 ~ 2026-08-21 双均线金叉趋势跟随(趋势跟随) 242 交易日 · 前复权
18 笔
交易次数
22.2%
胜率
1.43
盈亏比
-54.4%
总收益

01策略说明

用户定义规则 · 五要素齐全(买入/卖出时机+仓位)· 执行口径标注
买入时机MA5 上穿 MA20(金叉)当日收盘确认,次日开盘买入
买入仓位满仓(单标的 100%,初始资金 100 万)
卖出时机持仓中 MA5 下穿 MA20(死叉)次日开盘卖出;或单日跌超 7% 止损
卖出仓位清仓(100%)
选股条件全市场 A 股,成交额 ≥1 亿(无人问津的小票不参与)
候选选择当日满足买入信号的全部股票中,选取「当日成交额最大」的 1 只(热度代理 [ASSUMED]);当日无候选则继续空仓等待
💡 策略本质:经典双均线趋势跟随——金叉进死叉出。问题在于 A 股 70% 时间是震荡市,均线交叉频繁假信号,趋势段利润被磨损段吃掉。

02回测总览

模型输出 · [MODEL]
胜率偏低 · 大幅跑输 近 1 年 18 笔:胜率 22.2%、盈亏比 1.43、总收益 -54.4%(跑输沪深300 71.6pct)、回撤 -61.7%——金叉追涨在震荡市反复打脸。
结论—— 双均线金叉(MA5/MA20)近 1 年 -54.4%,18 笔中 14 笔亏损——经典均线策略在 A 股震荡市被来回摩擦,死叉卖出 8 次+止损 5 次+连亏 5 次,趋势段没吃到多少、磨损段全吃到。
数据含义—— 仅 4 笔盈利(阳光电源 +35%、农业银行 +11%、万华化学 +2%),平均盈 +12.5% vs 平均亏 -8.7%;盈亏比 1.43 但胜率 22.2%,期望为负。同一只阳光电源 +35% 后隔月又 -15%——金叉买入、死叉卖出被高频震出。
失败模式—— 8 笔 MA5 死叉卖出(金叉后 1-3 天即死叉=假金叉)、5 笔单日 -7% 止损、5 笔连亏 -10%——18 笔里 14 笔亏损,说明用 5/20 双线在震荡市捕捉趋势的成功率极低。
横向对比—— 10 策略中排名第 9(-54.4%):比海龟(+79%)差 133pct;同属趋势跟随,海龟用 20 日突破+10 日离场让利润奔跑,双均线却死在频繁换手上——均线交叉天然滞后于突破。
优化方向—— ①只做 MA20 向上时的金叉(过滤下跌趋势中的假金叉)②金叉需量比>1.2 确认 ③死叉改 2 日确认(死叉后 2 天未收回再卖)④加 60 日线做趋势过滤,弱市空仓。
投资指导—— 裸双均线金叉不适合 A 股震荡市——实盘需叠加趋势过滤与量能确认;若坚持均线系统,20 日突破(海龟)远优于 5/20 交叉;先用模拟盘验证过滤条件后再实盘。

03收益与回撤

策略净值 vs 沪深300 · 收盘口径
初始净值 1.0策略净值(前复权·满仓单标的)沪深300(归一化)0.46 (-54.4%)1.06 (+17.1%)
💡 净值曲线一路阴跌至 -61.7%:2025-09 首波金叉即亏损,唯一亮点是 2026-02~03 阳光电源 +35% 的小高潮,此后连续 5 笔亏损——金叉策略在弱市是纯磨损。

04交易明细

18 笔 · 卖出日=信号触发日次日开盘成交 · 候选=选股日满足买入信号的股票数(均选成交额最大者)
#选股日买入日卖出日触发日股票买价卖价收益天数候选当前资金(¥)卖出原因
12025-08-222025-08-252025-09-242025-09-23江淮汽车 600418.SH52.1550.1-3.96%22268¥960,390连续亏损累计超10%
22025-09-252025-09-262025-10-142025-10-13杭钢股份 600126.SH10.3119.342-9.43%6115¥869,833MA5死叉MA20
32025-10-152025-10-162025-11-242025-11-21农业银行 601288.SH7.0017.764+10.87%27224¥964,354MA5死叉MA20
42025-11-252025-11-262025-12-042025-12-03凯美特气 002549.SZ23.66120.57-13.09%651¥838,085单日跌超7%止损
52025-12-052025-12-082025-12-192025-12-18三花智控 002050.SZ44.7542.966-4.02%9192¥804,421MA5死叉MA20
62025-12-222025-12-232026-01-212026-01-20中芯国际 688981.SH120.5120.93+0.33%19173¥807,051MA5死叉MA20
72026-01-222026-01-232026-02-022026-01-30中京电子 002579.SZ13.0711.58-11.43%6121¥714,804连续亏损累计超10%
82026-02-032026-02-042026-03-042026-03-03贵州茅台 600519.SH1450.6661382.285-4.74%1440¥680,895MA5死叉MA20
92026-03-052026-03-062026-03-192026-03-18云铝股份 000807.SZ33.57729.929-10.89%940¥606,724连续亏损累计超10%
102026-03-202026-03-232026-04-012026-03-31卓胜微 300782.SZ90.0181.66-9.31%735¥550,257连续亏损累计超10%
112026-04-022026-04-032026-04-242026-04-23恒瑞医药 600276.SH56.74856.27-0.87%14201¥545,457MA5死叉MA20
122026-04-272026-04-282026-06-042026-06-03阳光电源 300274.SZ125.068168.79+34.93%24103¥735,977连续亏损累计超10%
132026-06-052026-06-082026-06-112026-06-10永鼎股份 600105.SH51.97751.477-0.99%394¥728,678单日跌超7%止损
142026-06-122026-06-152026-06-292026-06-26天华新能 300390.SZ96.184.08-12.54%989¥637,318单日跌超7%止损
152026-06-302026-07-012026-07-032026-07-02阳光电源 300274.SZ151.07127.8-15.43%263¥538,958MA5死叉MA20
162026-07-062026-07-072026-07-092026-07-08三花智控 002050.SZ45.86241.422-9.71%2296¥486,616单日跌超7%止损
172026-07-102026-07-132026-07-202026-07-17中兴通讯 000063.SZ40.50535.565-12.23%563¥427,127单日跌超7%止损
182026-07-212026-07-222026-08-182026-08-17万华化学 600309.SH71.0172.75+2.42%19123¥437,465MA5死叉MA20
💡 18 笔中 14 笔亏损:盈利笔平均 +12.5%(阳光电源 +35% 是唯一亮点),亏损笔集中在 -8%~-15%——金叉买入点滞后、死叉卖出点也滞后,两头挨打。

05卖出原因分布

全部平仓口径 · 共 18 笔
MA5死叉MA20(8 次)44%
连续亏损累计超10%(5 次)28%
单日跌超7%止损(5 次)28%
💡 卖出高度分散(死叉 8/止损 5/连亏 5)说明策略没有形成一致的退出机制:死叉卖出太晚(趋势已走坏)、止损太早(洗盘被震出)——退出逻辑是双均线最大的短板。

0610 策略横向对比

同一引擎同一区间 · 按总收益排序 · ★=当前策略
排名策略交易胜率盈亏比总收益最大回撤年化
1强势股缩量回踩 MA20 趋势回踩3542.9%3.84+161.2%-31.9%+171.7%
2海龟唐奇安通道突破 趋势跟随1428.6%5.55+79.0%-43.2%+83.8%
3W底双底突破 形态反转2142.9%3.34+76.3%-23.1%+80.5%
4KDJ 低位金叉 震荡指标4238.1%1.95+9.1%-41.2%+9.5%
5RSI 超卖反转 超跌反转2458.3%0.76-1.7%-37.1%-1.8%
6涨停基因缩量回踩 打板低吸3633.3%2.20-3.1%-44.7%-3.2%
7MACD 零轴下金叉 震荡指标2133.3%2.08-9.5%-46.8%-9.9%
8均线粘合向上突破 形态突破3231.2%1.69-18.1%-48.2%-18.7%
9二连板打板接力 打板接力2626.9%3.10-18.8%-61.4%-20.2%
10120日新高强势追涨 动量追涨2744.4%1.19-19.7%-48.0%-20.4%
11向上跳空缺口放量 缺口突破5034.0%2.00-24.1%-55.1%-25.0%
12布林带突破 波动突破1921.1%3.29-27.1%-42.2%-28.1%
13强势股首阴低吸 趋势回踩4630.4%2.13-31.4%-61.4%-32.5%
14MA20 放量突破 趋势跟随2524.0%2.01-34.9%-39.6%-36.1%
15缩量回踩 MA5/MA10 趋势回踩3327.3%2.04-38.2%-69.0%-39.4%
16放量连续阳线接力 动量追涨3030.0%1.83-39.3%-63.0%-40.5%
17均线多头回踩 趋势回踩3834.2%1.06-51.5%-72.2%-52.9%
1860日新低超跌反弹 超跌反转3342.4%0.55-54.3%-56.7%-55.8%
19双均线金叉趋势跟随 ★ 趋势跟随1822.2%1.43-54.4%-61.7%-55.9%
20涨停次日低吸 打板低吸4637.0%1.02-66.3%-75.0%-67.8%
💡 全策略对比:海龟 +79% 是唯一正收益——同样是趋势策略,20 日突破+10 日离场(让利润奔跑)完胜 5/20 金叉(频繁换手);均线交叉的滞后性是致命伤。

07优化建议与风险

基于回测证据 · 模型输出

优化建议(按优先级)

只做趋势中的金叉MA20 斜率向上(20 日 MA 高于 40 日 MA)时的金叉才有效,下跌趋势中的金叉全是假信号
量能确认金叉当日量比 ≥1.5(放量金叉),缩量金叉多为弱反弹
退出优化死叉改 2 日确认 + MA20 兜底止损(跌破 MA20 且死叉才卖),避免单日震出
周期过滤全市场涨停家数 <15 时(情绪冰点)不做金叉——2026-03 后连亏期可规避
降仓位满仓→单笔 50%,金叉策略频率低(18 笔/年),仓位是唯一能扛住磨损的变量

风险提示

均线交叉滞后于价格——金叉买入价已高于突破价,震荡市假信号占比高
18 笔样本小,结论受单笔大亏/大赚影响;近 1 年 A 股为震荡+结构市,趋势策略整体不利
未计印花税与冲击成本,实际收益更低
数据来源:同花顺金融数据(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],不代表未来表现。仅供研究参考,不构成个人投资建议。