QTRADE · 回测报告
high_52w · 生成 2026-07-07 00:05 · 数据水位 bars≤2026-07-03 · 研究工具输出,不构成投资建议
策略原理
年高动量(52-week high):行为金融经典——投资者把年内高点当「锚」,临近年高的 股票信息消化慢、动量延续概率高。在站上 ma_20 的股票里按「距 250 日高点的距离」 取最接近年高的 10 只等权,周频轮动,跌破 ma_20 离场。与 ret 型动量的区别是锚定 价格位置而非区间收益,风格更偏右侧突破;高位追买在急跌市中回撤集中,靠止损与 熔断控制。用于验证引擎与 DSL,非投资建议。
绩效概览
| 区间 | 2016-01-04 → 2026-07-03 (2549 交易日) |
| 期末净值 | 0.7753 |
| 总收益 | -22.47% |
| 年化收益 | -2.49% |
| 年化波动 | +5.99% |
| 夏普(rf=0) | -0.42 |
| 最大回撤 | -28.52% |
| 回撤区间 | 2016-01-06 → 2018-08-22 |
| 卡玛比 | -0.09 |
| 平仓笔数 | 64 |
| 胜率 | +37.50% |
| 盈亏比(PF) | 0.27 |
| 总成交额 | 8,774,885 |
| 总费用 | 6,673 |
| 年化换手(单边) | 0.6 |
| 基准年化 | +2.25% |
| 超额年化 | -4.73% |
| 信息比率 | -0.32 |
净值与回撤
月度收益(%)
执行事件(涨跌停拒单/停牌/退市)
- 2016-01-12 002468.SZ 跌停无法卖出
- 2016-01-12 300459.SZ 开盘涨停无法买入
- 2016-01-26 002624.SZ 开盘涨停无法买入
交易明细
| dt |
symbol |
side |
shares |
price |
amount |
fees |
reason |
realized_pnl |
| 2016-01-05 |
002468.SZ |
buy |
2200 |
45.2678 |
99589.16 |
26.89 |
rebalance |
|
| 2016-01-05 |
600258.SH |
buy |
2800 |
32.4486 |
90856.08 |
24.53 |
rebalance |
|
| 2016-01-05 |
002109.SZ |
buy |
10100 |
8.8132 |
89013.32 |
24.03 |
rebalance |
|
| 2016-01-05 |
600734.SH |
buy |
4000 |
20.9914 |
83965.76 |
22.67 |
rebalance |
|
| 2016-01-05 |
002730.SZ |
buy |
2000 |
48.0720 |
96144.00 |
25.96 |
rebalance |
|
| 2016-01-05 |
000838.SZ |
buy |
2100 |
42.5637 |
89383.88 |
24.14 |
rebalance |
|
| 2016-01-05 |
002508.SZ |
buy |
2200 |
41.7425 |
91833.54 |
24.80 |
rebalance |
|
| 2016-01-05 |
600630.SH |
buy |
3300 |
27.1106 |
89465.00 |
24.16 |
rebalance |
|
| 2016-01-05 |
000779.SZ |
buy |
3500 |
26.5398 |
92889.12 |
25.08 |
rebalance |
|
| 2016-01-05 |
300323.SZ |
buy |
9800 |
8.8132 |
86369.36 |
23.32 |
rebalance |
|
| 2016-01-06 |
002109.SZ |
sell |
10100 |
8.2676 |
83502.56 |
106.05 |
rebalance |
-5640.84 |
| 2016-01-08 |
600258.SH |
sell |
2800 |
26.9495 |
75458.64 |
95.83 |
rebalance |
-15517.80 |
| 2016-01-08 |
600734.SH |
sell |
4000 |
20.9985 |
83993.82 |
106.67 |
rebalance |
-101.28 |
| 2016-01-08 |
002508.SZ |
sell |
2200 |
42.0668 |
92546.97 |
117.54 |
rebalance |
571.09 |
| 2016-01-08 |
000779.SZ |
sell |
3500 |
24.7628 |
86669.80 |
110.07 |
rebalance |
-6354.48 |
| 2016-01-08 |
300323.SZ |
sell |
9800 |
9.4957 |
93058.20 |
118.18 |
rebalance |
6547.34 |
| 2016-01-11 |
002730.SZ |
sell |
2000 |
44.2835 |
88566.95 |
112.48 |
rebalance |
-7715.49 |
| 2016-01-11 |
600630.SH |
sell |
3300 |
24.4832 |
80794.63 |
102.61 |
rebalance |
-8797.14 |
| 2016-01-12 |
000838.SZ |
sell |
200 |
48.1377 |
9627.54 |
14.82 |
rebalance |
1097.67 |
| 2016-01-12 |
600671.SH |
buy |
2400 |
35.5533 |
85327.80 |
23.04 |
rebalance |
|
| 2016-01-12 |
600816.SH |
buy |
4200 |
21.9629 |
92244.16 |
24.90 |
rebalance |
|
| 2016-01-12 |
300160.SZ |
buy |
2200 |
37.0855 |
81588.20 |
22.03 |
rebalance |
|
| 2016-01-12 |
603300.SH |
buy |
1900 |
47.2508 |
89776.46 |
24.24 |
rebalance |
|
| 2016-01-12 |
002395.SZ |
buy |
3200 |
27.5413 |
88132.00 |
23.79 |
rebalance |
|
| 2016-01-12 |
002575.SZ |
buy |
6200 |
13.5603 |
84073.92 |
22.70 |
rebalance |
|
| 2016-01-12 |
600116.SH |
buy |
4600 |
19.2188 |
88406.41 |
23.87 |
rebalance |
|
| 2016-01-12 |
002615.SZ |
buy |
3600 |
22.9243 |
82527.61 |
22.28 |
rebalance |
|
| 2016-01-13 |
300160.SZ |
sell |
2200 |
33.2900 |
73237.98 |
93.01 |
rebalance |
-8465.26 |
| 2016-01-13 |
603300.SH |
sell |
1900 |
46.7298 |
88786.62 |
112.77 |
rebalance |
-1126.85 |
| 2016-01-13 |
002395.SZ |
sell |
3200 |
24.9625 |
79880.00 |
101.45 |
rebalance |
-8377.24 |
| 2016-01-13 |
002575.SZ |
sell |
6200 |
13.6495 |
84626.87 |
107.48 |
rebalance |
422.77 |
| 2016-01-13 |
600116.SH |
sell |
4600 |
18.1827 |
83640.35 |
106.22 |
rebalance |
-4896.15 |
| 2016-01-13 |
002615.SZ |
sell |
3600 |
22.8557 |
82280.39 |
104.50 |
rebalance |
-373.99 |
| 2016-01-14 |
002468.SZ |
sell |
2200 |
39.9400 |
87868.00 |
111.60 |
rebalance |
-11859.65 |
| 2016-01-14 |
600816.SH |
sell |
4200 |
18.2027 |
76451.15 |
97.09 |
rebalance |
-15915.00 |
| 2016-01-15 |
600671.SH |
sell |
2400 |
31.9520 |
76684.80 |
97.38 |
rebalance |
-8763.42 |
| 2016-01-19 |
000838.SZ |
sell |
200 |
52.3414 |
10468.27 |
15.68 |
rebalance |
1937.54 |
| 2016-01-19 |
000586.SZ |
buy |
4100 |
21.6925 |
88939.21 |
24.01 |
rebalance |
|
| 2016-01-19 |
000813.SZ |
buy |
6600 |
12.7491 |
84144.03 |
22.72 |
rebalance |
|
| 2016-01-19 |
000518.SZ |
buy |
11400 |
7.5113 |
85628.25 |
23.12 |
rebalance |
|
| 2016-01-19 |
000779.SZ |
buy |
3100 |
27.7315 |
85967.76 |
23.21 |
rebalance |
|
| 2016-01-19 |
002346.SZ |
buy |
4700 |
18.8282 |
88492.54 |
23.89 |
rebalance |
|
| 2016-01-19 |
300100.SZ |
buy |
2800 |
30.0350 |
84097.96 |
22.70 |
rebalance |
|
| 2016-01-19 |
600383.SH |
buy |
5700 |
15.3830 |
87683.33 |
23.67 |
rebalance |
|
| 2016-01-19 |
300329.SZ |
buy |
3000 |
27.9418 |
83825.55 |
22.64 |
rebalance |
|
| 2016-01-19 |
002407.SZ |
buy |
1100 |
75.6133 |
83174.58 |
22.45 |
rebalance |
|
| 2016-01-22 |
000518.SZ |
sell |
11400 |
7.0095 |
79907.96 |
101.49 |
rebalance |
-5844.90 |
| 2016-01-22 |
000779.SZ |
sell |
3100 |
26.9595 |
83574.45 |
106.13 |
rebalance |
-2522.65 |
| 2016-01-22 |
300329.SZ |
sell |
3000 |
26.2705 |
78811.60 |
100.09 |
rebalance |
-5136.68 |
| 2016-01-22 |
002407.SZ |
sell |
1100 |
69.8650 |
76851.55 |
97.60 |
rebalance |
-6443.08 |
| 2016-01-25 |
000586.SZ |
sell |
4100 |
20.3794 |
83555.48 |
106.12 |
rebalance |
-5513.86 |
| 2016-01-25 |
000813.SZ |
sell |
6600 |
10.9835 |
72491.10 |
92.06 |
rebalance |
-11767.71 |
| 2016-01-26 |
000838.SZ |
sell |
200 |
58.1826 |
11636.52 |
16.87 |
rebalance |
3104.60 |
| 2016-01-26 |
002346.SZ |
sell |
400 |
20.4693 |
8187.70 |
13.35 |
rebalance |
641.04 |
| 2016-01-26 |
600383.SH |
sell |
5700 |
15.2571 |
86965.36 |
110.45 |
rebalance |
-852.09 |
| 2016-01-26 |
002355.SZ |
buy |
3700 |
22.2433 |
82300.27 |
22.23 |
rebalance |
|
| 2016-01-26 |
300160.SZ |
buy |
1800 |
44.5768 |
80238.18 |
21.66 |
rebalance |
|
| 2016-01-26 |
300294.SZ |
buy |
1900 |
43.2348 |
82146.03 |
22.18 |
rebalance |
|
| 2016-01-26 |
300061.SZ |
buy |
3300 |
24.5968 |
81169.57 |
21.91 |
rebalance |
|
| 2016-01-26 |
300456.SZ |
buy |
600 |
127.0503 |
76230.17 |
20.58 |
rebalance |
|
| 2016-01-26 |
300310.SZ |
buy |
1400 |
58.5877 |
82022.85 |
22.15 |
rebalance |
|
| 2016-01-27 |
300061.SZ |
sell |
3300 |
23.3449 |
77038.27 |
97.84 |
rebalance |
-4251.05 |
| 2016-01-28 |
000838.SZ |
sell |
1500 |
46.9395 |
70409.23 |
89.42 |
rebalance |
6456.94 |
| 2016-01-28 |
300100.SZ |
sell |
2800 |
25.3419 |
70957.40 |
90.12 |
rebalance |
-13253.37 |
| 2016-01-28 |
300160.SZ |
sell |
1800 |
37.7433 |
67937.94 |
86.28 |
rebalance |
-12408.18 |
| 2016-01-28 |
300310.SZ |
sell |
1400 |
47.9280 |
67099.20 |
85.21 |
rebalance |
-15031.01 |
| 2016-01-29 |
300456.SZ |
sell |
600 |
99.7302 |
59838.11 |
76.00 |
rebalance |
-16488.65 |
| 2016-02-02 |
002346.SZ |
sell |
500 |
20.7189 |
10359.44 |
15.57 |
rebalance |
927.23 |
| 2016-02-02 |
002355.SZ |
sell |
3700 |
17.9730 |
66500.10 |
84.46 |
rebalance |
-15906.86 |
| 2016-02-02 |
300294.SZ |
sell |
300 |
49.1262 |
14737.86 |
20.03 |
rebalance |
1743.90 |
| 2016-02-02 |
002624.SZ |
buy |
2100 |
36.1642 |
75944.75 |
20.51 |
rebalance |
|
| 2016-02-02 |
600383.SH |
buy |
4800 |
15.9038 |
76338.34 |
20.61 |
rebalance |
|
| 2016-02-02 |
002127.SZ |
buy |
4400 |
17.4261 |
76674.84 |
20.70 |
rebalance |
|
| 2016-02-02 |
300100.SZ |
buy |
2800 |
27.9318 |
78209.14 |
21.11 |
rebalance |
|
| 2016-02-02 |
600136.SH |
buy |
1200 |
60.4505 |
72540.65 |
19.59 |
rebalance |
|
| 2016-02-02 |
000048.SZ |
buy |
2000 |
37.8567 |
75713.40 |
20.44 |
rebalance |
|
| 2016-02-02 |
300466.SZ |
buy |
1000 |
68.9833 |
68983.32 |
18.63 |
rebalance |
|
| 2016-02-02 |
600276.SH |
buy |
1700 |
44.9473 |
76410.44 |
20.63 |
rebalance |
|
| 2016-02-15 |
600383.SH |
sell |
4800 |
13.9690 |
67051.27 |
85.15 |
rebalance |
-9392.82 |
| 2016-02-16 |
300294.SZ |
sell |
1600 |
45.7313 |
73170.08 |
92.92 |
rebalance |
3882.87 |
| 2016-02-16 |
002624.SZ |
sell |
100 |
40.1397 |
4013.97 |
9.09 |
rebalance |
387.49 |
| 2016-02-16 |
002127.SZ |
sell |
4400 |
18.0129 |
79256.94 |
100.66 |
rebalance |
2460.74 |
| 2016-02-16 |
300100.SZ |
sell |
300 |
32.2016 |
9660.49 |
14.85 |
rebalance |
1263.83 |
| 2016-02-16 |
600136.SH |
sell |
1200 |
63.3049 |
75965.88 |
96.48 |
rebalance |
3309.16 |
| 2016-02-16 |
000048.SZ |
sell |
2000 |
37.6235 |
75246.96 |
95.56 |
rebalance |
-582.44 |
| 2016-02-16 |
300466.SZ |
sell |
1000 |
68.5970 |
68596.95 |
87.12 |
rebalance |
-492.12 |
| 2016-02-16 |
600276.SH |
sell |
1700 |
45.5316 |
77403.72 |
98.30 |
rebalance |
874.35 |
| 2016-02-16 |
000838.SZ |
buy |
1300 |
58.3274 |
75825.57 |
20.48 |
rebalance |
|
| 2016-02-16 |
600610.SH |
buy |
4000 |
18.8482 |
75392.92 |
20.36 |
rebalance |
|
| 2016-02-16 |
002508.SZ |
buy |
1800 |
43.0545 |
77498.07 |
20.92 |
rebalance |
|
| 2016-02-16 |
603558.SH |
buy |
3400 |
22.8342 |
77636.28 |
20.96 |
rebalance |
|
| 2016-02-16 |
600365.SH |
buy |
5000 |
15.7235 |
78617.75 |
21.22 |
rebalance |
|
| 2016-02-16 |
600116.SH |
buy |
3500 |
22.8342 |
79919.70 |
21.58 |
rebalance |
|
| 2016-02-23 |
002346.SZ |
sell |
200 |
23.7144 |
4742.88 |
9.83 |
rebalance |
966.39 |
| 2016-02-23 |
002624.SZ |
sell |
2000 |
42.4363 |
84872.50 |
107.79 |
rebalance |
12416.85 |
| 2016-02-23 |
300100.SZ |
sell |
2500 |
34.8976 |
87243.94 |
110.79 |
rebalance |
17284.71 |
| 2016-02-23 |
600610.SH |
sell |
3900 |
20.1597 |
78622.89 |
99.85 |
rebalance |
4995.09 |
| 2016-02-23 |
002508.SZ |
sell |
1800 |
42.9055 |
77229.98 |
98.08 |
rebalance |
-387.09 |
| 2016-02-23 |
603558.SH |
sell |
3300 |
22.9755 |
75819.10 |
96.29 |
rebalance |
349.61 |
| 2016-02-23 |
600365.SH |
sell |
5000 |
15.3370 |
76684.80 |
97.38 |
rebalance |
-2051.55 |
| 2016-02-23 |
600116.SH |
sell |
200 |
26.3105 |
5262.10 |
10.37 |
rebalance |
683.65 |
| 2016-02-23 |
002628.SZ |
buy |
8400 |
10.0150 |
84126.00 |
22.71 |
rebalance |
|
| 2016-02-23 |
002654.SZ |
buy |
1600 |
53.2397 |
85183.58 |
23.00 |
rebalance |
|
| 2016-02-23 |
300294.SZ |
buy |
1600 |
50.4856 |
80776.98 |
21.81 |
rebalance |
|
| 2016-02-23 |
300459.SZ |
buy |
2900 |
30.9263 |
89686.33 |
24.21 |
rebalance |
|
| 2016-02-23 |
300450.SZ |
buy |
600 |
120.4003 |
72240.20 |
19.50 |
rebalance |
|
| 2016-02-23 |
002355.SZ |
buy |
3400 |
23.9859 |
81552.15 |
22.02 |
rebalance |
|
| 2016-02-23 |
002615.SZ |
buy |
2700 |
30.2453 |
81662.31 |
22.05 |
rebalance |
|
| 2016-02-26 |
002346.SZ |
sell |
3600 |
21.5776 |
77679.31 |
98.65 |
rebalance |
9780.84 |
| 2016-02-26 |
000838.SZ |
sell |
1300 |
52.4213 |
68147.62 |
86.55 |
rebalance |
-7784.97 |
| 2016-02-26 |
600116.SH |
sell |
3200 |
22.9655 |
73489.60 |
93.33 |
rebalance |
307.10 |
| 2016-02-26 |
002628.SZ |
sell |
8400 |
8.7469 |
73473.62 |
93.31 |
rebalance |
-10768.40 |
| 2016-02-26 |
002654.SZ |
sell |
1600 |
45.1122 |
72179.57 |
91.66 |
rebalance |
-13118.68 |
| 2016-02-26 |
300294.SZ |
sell |
1600 |
43.6345 |
69815.12 |
88.67 |
rebalance |
-11072.34 |
| 2016-02-26 |
300459.SZ |
sell |
2900 |
29.4558 |
85421.68 |
108.49 |
rebalance |
-4397.35 |
| 2016-02-26 |
300450.SZ |
sell |
600 |
103.4246 |
62054.78 |
78.80 |
rebalance |
-10283.72 |
| 2016-02-26 |
002355.SZ |
sell |
3400 |
19.9900 |
67965.90 |
86.32 |
rebalance |
-13694.59 |
| 2016-02-26 |
002615.SZ |
sell |
2700 |
29.7154 |
80231.47 |
101.89 |
rebalance |
-1554.78 |
回测假设与参数
| start | 2016-01-04 |
| end | 2026-07-03 |
| initial_cash | 1000000.0 |
| slippage_bps | 15.0 |
| volume_cap_pct | 2.0 |
| commission_rate | 0.00025 |
| commission_min | 5.0 |
| min_trade_value | 5000.0 |
| delist_haircut | 0.5 |
| strict_one_word_limit | False |
| benchmark | 000905.SH |
执行假设:T 收盘出信号 → T+1 开盘成交(滑点 15.0bp,
单笔 ≤ 当日成交量 2.0%);涨停不追买、跌停不杀卖、停牌顺延;
T+1 由结构保证;费用按生效日期查表(佣金/印花税/过户费);
除权以份额调整近似(现金分红视为按除权参考价再投资,未建红利税模型)。