Expansion portfolio evaluation
Run command: rtk .venv/bin/python scripts/evaluate_expansion_portfolio.py
Output files:
reports/strategy-expansion/portfolio-totals.csv
reports/strategy-expansion/portfolio-correlations.csv
reports/strategy-expansion/portfolio-horizons.csv
reports/strategy-expansion/portfolio-monthly-returns.csv
reports/strategy-expansion/portfolio-rolling-worst.csv
reports/strategy-expansion/portfolio-report.md
Candidates: rotation-risk top ranked row from rotation-risk-top.csv; mean-reversion-regime eq_days30.
Portfolio construction: daily return blend on common dates, no extra fees beyond each strategy equity curve.
Verdict
不优于单独 rotation-risk. Best blend by Calmar is portfolio-70-30.
Totals
| name |
kind |
source_strategy |
start |
end |
years |
total_return |
annualized_return |
max_drawdown |
calmar |
| rotation-risk |
single |
trend_basket-1h-lb720-tr1440-bt2880-rb168-top2-mm0.000-bm0.000-vw336-vc0.0300-lev0.75-exp0.50-vt0.2000 |
2020-02-07 |
2026-05-03 |
6.23836 |
1.52024 |
0.159713 |
0.0700189 |
2.281 |
| mean-reversion-eq_days30 |
single |
eq_days30 |
2020-02-07 |
2026-05-03 |
6.23836 |
1.13957 |
0.129668 |
0.1374 |
0.943727 |
| portfolio-50-50 |
portfolio |
|
2020-02-07 |
2026-05-03 |
6.23836 |
1.37252 |
0.148539 |
0.097233 |
1.52766 |
| portfolio-70-30 |
portfolio |
|
2020-02-07 |
2026-05-03 |
6.23836 |
1.44299 |
0.15394 |
0.0822135 |
1.87244 |
Correlation
| leg_a |
leg_b |
common_start |
common_end |
daily_return_correlation |
equity_curve_correlation |
| rotation-risk |
mean-reversion-eq_days30 |
2020-02-07 |
2026-05-03 |
0.0282631 |
0.931181 |
Horizons
| name |
horizon |
start |
end |
total_return |
annualized_return |
max_drawdown |
calmar |
| rotation-risk |
3y |
2023-05-03 |
2026-05-03 |
0.538976 |
0.154393 |
0.0700189 |
2.20502 |
| rotation-risk |
1y |
2025-05-03 |
2026-05-03 |
0.161637 |
0.161637 |
0.0700189 |
2.30848 |
| rotation-risk |
6m |
2025-11-03 |
2026-05-03 |
-0.00276914 |
-0.00557632 |
0.0160789 |
-0.346809 |
| rotation-risk |
3m |
2026-02-03 |
2026-05-03 |
-0.00276914 |
-0.0113079 |
0.0160789 |
-0.703275 |
| mean-reversion-eq_days30 |
3y |
2023-05-03 |
2026-05-03 |
0.196181 |
0.0614721 |
0.1374 |
0.447395 |
| mean-reversion-eq_days30 |
1y |
2025-05-03 |
2026-05-03 |
0.0774257 |
0.0774257 |
0.022919 |
3.37823 |
| mean-reversion-eq_days30 |
6m |
2025-11-03 |
2026-05-03 |
0 |
0 |
0 |
0 |
| mean-reversion-eq_days30 |
3m |
2026-02-03 |
2026-05-03 |
0 |
0 |
0 |
0 |
| portfolio-50-50 |
3y |
2023-05-03 |
2026-05-03 |
0.368649 |
0.110169 |
0.0848367 |
1.2986 |
| portfolio-50-50 |
1y |
2025-05-03 |
2026-05-03 |
0.120938 |
0.120938 |
0.0333732 |
3.62382 |
| portfolio-50-50 |
6m |
2025-11-03 |
2026-05-03 |
-0.0013555 |
-0.00273158 |
0.00805963 |
-0.338921 |
| portfolio-50-50 |
3m |
2026-02-03 |
2026-05-03 |
-0.0013555 |
-0.00554739 |
0.00805963 |
-0.688293 |
| portfolio-70-30 |
3y |
2023-05-03 |
2026-05-03 |
0.437336 |
0.128422 |
0.0730506 |
1.75798 |
| portfolio-70-30 |
1y |
2025-05-03 |
2026-05-03 |
0.137582 |
0.137582 |
0.0480633 |
2.86251 |
| portfolio-70-30 |
6m |
2025-11-03 |
2026-05-03 |
-0.00191399 |
-0.00385595 |
0.0112722 |
-0.342077 |
| portfolio-70-30 |
3m |
2026-02-03 |
2026-05-03 |
-0.00191399 |
-0.00782625 |
0.0112722 |
-0.694297 |
Worst rolling windows
| name |
window_months |
start_month |
end_month |
return |
| rotation-risk |
6 |
2021-11 |
2022-04 |
-0.0326706 |
| rotation-risk |
12 |
2021-11 |
2022-10 |
-0.0326706 |
| mean-reversion-eq_days30 |
6 |
2021-04 |
2021-09 |
-0.1374 |
| mean-reversion-eq_days30 |
12 |
2025-01 |
2025-12 |
-0.0706126 |
| portfolio-50-50 |
6 |
2021-04 |
2021-09 |
-0.0554421 |
| portfolio-50-50 |
12 |
2021-05 |
2022-04 |
-0.00427585 |
| portfolio-70-30 |
6 |
2021-04 |
2021-09 |
-0.0225693 |
| portfolio-70-30 |
12 |
2021-05 |
2022-04 |
0.00806014 |
Monthly returns
| name |
month |
start_equity |
end_equity |
return |
| mean-reversion-eq_days30 |
2024-02 |
17886.7 |
17886.7 |
0 |
| mean-reversion-eq_days30 |
2024-03 |
17886.7 |
19025.3 |
0.0636581 |
| mean-reversion-eq_days30 |
2024-04 |
19025.3 |
19025.3 |
0 |
| mean-reversion-eq_days30 |
2024-05 |
19025.3 |
19025.3 |
0 |
| mean-reversion-eq_days30 |
2024-06 |
19025.3 |
19985.9 |
0.0504907 |
| mean-reversion-eq_days30 |
2024-07 |
19985.9 |
19985.9 |
0 |
| mean-reversion-eq_days30 |
2024-08 |
19985.9 |
19985.9 |
0 |
| mean-reversion-eq_days30 |
2024-09 |
19985.9 |
19985.9 |
0 |
| mean-reversion-eq_days30 |
2024-10 |
19985.9 |
21404 |
0.070957 |
| mean-reversion-eq_days30 |
2024-11 |
21404 |
22231.1 |
0.038638 |
| mean-reversion-eq_days30 |
2024-12 |
22231.1 |
23021.3 |
0.0355461 |
| mean-reversion-eq_days30 |
2025-01 |
23021.3 |
19858.2 |
-0.1374 |
| mean-reversion-eq_days30 |
2025-02 |
19858.2 |
19858.2 |
0 |
| mean-reversion-eq_days30 |
2025-03 |
19858.2 |
19858.2 |
0 |
| mean-reversion-eq_days30 |
2025-04 |
19858.2 |
19858.2 |
0 |
| mean-reversion-eq_days30 |
2025-05 |
19858.2 |
20109.8 |
0.012673 |
| mean-reversion-eq_days30 |
2025-06 |
20109.8 |
20109.8 |
0 |
| mean-reversion-eq_days30 |
2025-07 |
20109.8 |
21320.9 |
0.060223 |
| mean-reversion-eq_days30 |
2025-08 |
21320.9 |
21320.9 |
0 |
| mean-reversion-eq_days30 |
2025-09 |
21320.9 |
20832.2 |
-0.022919 |
| mean-reversion-eq_days30 |
2025-10 |
20832.2 |
21395.7 |
0.027047 |
| mean-reversion-eq_days30 |
2025-11 |
21395.7 |
21395.7 |
0 |
| mean-reversion-eq_days30 |
2025-12 |
21395.7 |
21395.7 |
0 |
| mean-reversion-eq_days30 |
2026-01 |
21395.7 |
21395.7 |
0 |
| mean-reversion-eq_days30 |
2026-02 |
21395.7 |
21395.7 |
0 |
| mean-reversion-eq_days30 |
2026-03 |
21395.7 |
21395.7 |
0 |
| mean-reversion-eq_days30 |
2026-04 |
21395.7 |
21395.7 |
0 |
| mean-reversion-eq_days30 |
2026-05 |
21395.7 |
21395.7 |
0 |
| portfolio-50-50 |
2020-02 |
10000 |
10000 |
0 |
| portfolio-50-50 |
2020-03 |
10000 |
10000 |
0 |
| portfolio-50-50 |
2020-04 |
10000 |
10216.7 |
0.0216673 |
| portfolio-50-50 |
2020-05 |
10216.7 |
11215.9 |
0.0978061 |
| portfolio-50-50 |
2020-06 |
11215.9 |
11166.1 |
-0.00443934 |
| portfolio-50-50 |
2020-07 |
11166.1 |
11304.3 |
0.0123765 |
| portfolio-50-50 |
2020-08 |
11304.3 |
11414.7 |
0.0097653 |
| portfolio-50-50 |
2020-09 |
11414.7 |
11175.5 |
-0.0209559 |
| portfolio-50-50 |
2020-10 |
11175.5 |
11881 |
0.0631302 |
| portfolio-50-50 |
2020-11 |
11881 |
12597.1 |
0.0602663 |
| portfolio-50-50 |
2020-12 |
12597.1 |
13641.4 |
0.0829006 |
| portfolio-50-50 |
2021-01 |
13641.4 |
14389.1 |
0.0548178 |
| portfolio-50-50 |
2021-02 |
14389.1 |
14566.7 |
0.0123394 |
| portfolio-50-50 |
2021-03 |
14566.7 |
14645.5 |
0.00541241 |
| portfolio-50-50 |
2021-04 |
14645.5 |
14850 |
0.0139618 |
| portfolio-50-50 |
2021-05 |
14850 |
14850 |
0 |
| portfolio-50-50 |
2021-06 |
14850 |
14850 |
0 |
| portfolio-50-50 |
2021-07 |
14850 |
14850 |
0 |
| portfolio-50-50 |
2021-08 |
14850 |
14972.7 |
0.00826194 |
| portfolio-50-50 |
2021-09 |
14972.7 |
13833.6 |
-0.0760816 |
| portfolio-50-50 |
2021-10 |
13833.6 |
14497.9 |
0.0480213 |
| portfolio-50-50 |
2021-11 |
14497.9 |
15018.4 |
0.0359061 |
| portfolio-50-50 |
2021-12 |
15018.4 |
15018.4 |
0 |
| portfolio-50-50 |
2022-01 |
15018.4 |
15018.4 |
0 |
| portfolio-50-50 |
2022-02 |
15018.4 |
15018.4 |
0 |
| portfolio-50-50 |
2022-03 |
15018.4 |
14920 |
-0.0065561 |
| portfolio-50-50 |
2022-04 |
14920 |
14786.5 |
-0.00894399 |
| portfolio-50-50 |
2022-05 |
14786.5 |
14786.5 |
0 |
| portfolio-50-50 |
2022-06 |
14786.5 |
14786.5 |
0 |
| portfolio-50-50 |
2022-07 |
14786.5 |
14786.5 |
0 |
| portfolio-50-50 |
2022-08 |
14786.5 |
15423.8 |
0.0430976 |
| portfolio-50-50 |
2022-09 |
15423.8 |
15827.4 |
0.0261675 |
| portfolio-50-50 |
2022-10 |
15827.4 |
16084 |
0.016213 |
| portfolio-50-50 |
2022-11 |
16084 |
16054.7 |
-0.00182176 |
| portfolio-50-50 |
2022-12 |
16054.7 |
16054.7 |
0 |
| portfolio-50-50 |
2023-01 |
16054.7 |
16569.6 |
0.0320702 |
| portfolio-50-50 |
2023-02 |
16569.6 |
16474.9 |
-0.0057163 |
| portfolio-50-50 |
2023-03 |
16474.9 |
16702.8 |
0.0138382 |
| portfolio-50-50 |
2023-04 |
16702.8 |
17321 |
0.0370102 |
| portfolio-50-50 |
2023-05 |
17321 |
17224.8 |
-0.00555237 |
| portfolio-50-50 |
2023-06 |
17224.8 |
17194.9 |
-0.00174114 |
| portfolio-50-50 |
2023-07 |
17194.9 |
17108.7 |
-0.00501206 |
| portfolio-50-50 |
2023-08 |
17108.7 |
17108.7 |
0 |
| portfolio-50-50 |
2023-09 |
17108.7 |
17108.7 |
0 |
| portfolio-50-50 |
2023-10 |
17108.7 |
17780.3 |
0.0392565 |
| portfolio-50-50 |
2023-11 |
17780.3 |
18114.4 |
0.0187891 |
| portfolio-50-50 |
2023-12 |
18114.4 |
18509.7 |
0.0218234 |
| portfolio-50-50 |
2024-01 |
18509.7 |
18607.6 |
0.00529151 |
| portfolio-50-50 |
2024-02 |
18607.6 |
19180.7 |
0.0307951 |
| portfolio-50-50 |
2024-03 |
19180.7 |
20121.6 |
0.0490579 |
| portfolio-50-50 |
2024-04 |
20121.6 |
19937 |
-0.00917285 |
| portfolio-50-50 |
2024-05 |
19937 |
20088.3 |
0.0075846 |
| portfolio-50-50 |
2024-06 |
20088.3 |
20423.6 |
0.0166944 |
| portfolio-50-50 |
2024-07 |
20423.6 |
20376.1 |
-0.00232541 |
| portfolio-50-50 |
2024-08 |
20376.1 |
20375.9 |
-1.06097e-05 |
| portfolio-50-50 |
2024-09 |
20375.9 |
20399.7 |
0.00116796 |
| portfolio-50-50 |
2024-10 |
20399.7 |
21028.9 |
0.0308412 |
| portfolio-50-50 |
2024-11 |
21028.9 |
22599.7 |
0.074697 |
| portfolio-50-50 |
2024-12 |
22599.7 |
22835.8 |
0.0104498 |
| portfolio-50-50 |
2025-01 |
22835.8 |
21278.9 |
-0.0681804 |
| portfolio-50-50 |
2025-02 |
21278.9 |
21061.7 |
-0.0102072 |
| portfolio-50-50 |
2025-03 |
21061.7 |
21061.7 |
0 |
| portfolio-50-50 |
2025-04 |
21061.7 |
21094 |
0.00153727 |
| portfolio-50-50 |
2025-05 |
21094 |
22185.2 |
0.0517276 |
| portfolio-50-50 |
2025-06 |
22185.2 |
22191 |
0.000261823 |
| portfolio-50-50 |
2025-07 |
22191 |
23681.4 |
0.0671628 |
| portfolio-50-50 |
2025-08 |
23681.4 |
24029.1 |
0.0146828 |
| portfolio-50-50 |
2025-09 |
24029.1 |
23753.8 |
-0.0114595 |
| portfolio-50-50 |
2025-10 |
23753.8 |
23757.4 |
0.000153162 |
| portfolio-50-50 |
2025-11 |
23757.4 |
23757.4 |
0 |
| portfolio-50-50 |
2025-12 |
23757.4 |
23757.4 |
0 |
| portfolio-50-50 |
2026-01 |
23757.4 |
23757.4 |
0 |
| portfolio-50-50 |
2026-02 |
23757.4 |
23757.4 |
0 |
| portfolio-50-50 |
2026-03 |
23757.4 |
23757.4 |
0 |
| portfolio-50-50 |
2026-04 |
23757.4 |
23589.5 |
-0.00706883 |
| portfolio-50-50 |
2026-05 |
23589.5 |
23725.2 |
0.00575401 |
| portfolio-70-30 |
2020-02 |
10000 |
10000 |
0 |
| portfolio-70-30 |
2020-03 |
10000 |
10000 |
0 |
| portfolio-70-30 |
2020-04 |
10000 |
10079.7 |
0.00797138 |
| portfolio-70-30 |
2020-05 |
10079.7 |
10786.7 |
0.0701355 |
| portfolio-70-30 |
2020-06 |
10786.7 |
10718.7 |
-0.00629687 |
| portfolio-70-30 |
2020-07 |
10718.7 |
10904.8 |
0.0173544 |
| portfolio-70-30 |
2020-08 |
10904.8 |
11138.4 |
0.0214216 |
| portfolio-70-30 |
2020-09 |
11138.4 |
10811 |
-0.0293886 |
| portfolio-70-30 |
2020-10 |
10811 |
11398.9 |
0.0543765 |
| portfolio-70-30 |
2020-11 |
11398.9 |
12298.4 |
0.0789164 |
| portfolio-70-30 |
2020-12 |
12298.4 |
13258.3 |
0.0780446 |
| portfolio-70-30 |
2021-01 |
13258.3 |
14057 |
0.0602422 |
| portfolio-70-30 |
2021-02 |
14057 |
14298.8 |
0.0172055 |
| portfolio-70-30 |
2021-03 |
14298.8 |
14406.3 |
0.00751732 |
| portfolio-70-30 |
2021-04 |
14406.3 |
14686.2 |
0.0194305 |
| portfolio-70-30 |
2021-05 |
14686.2 |
14686.2 |
0 |
| portfolio-70-30 |
2021-06 |
14686.2 |
14686.2 |
0 |
| portfolio-70-30 |
2021-07 |
14686.2 |
14686.2 |
0 |
| portfolio-70-30 |
2021-08 |
14686.2 |
14853.8 |
0.0114103 |
| portfolio-70-30 |
2021-09 |
14853.8 |
14081.2 |
-0.0520161 |
| portfolio-70-30 |
2021-10 |
14081.2 |
14823.7 |
0.0527352 |
| portfolio-70-30 |
2021-11 |
14823.7 |
15131.8 |
0.0207813 |
| portfolio-70-30 |
2021-12 |
15131.8 |
15131.8 |
0 |
| portfolio-70-30 |
2022-01 |
15131.8 |
15131.8 |
0 |
| portfolio-70-30 |
2022-02 |
15131.8 |
15131.8 |
0 |
| portfolio-70-30 |
2022-03 |
15131.8 |
14992.9 |
-0.00917854 |
| portfolio-70-30 |
2022-04 |
14992.9 |
14804.6 |
-0.0125597 |
| portfolio-70-30 |
2022-05 |
14804.6 |
14804.6 |
0 |
| portfolio-70-30 |
2022-06 |
14804.6 |
14804.6 |
0 |
| portfolio-70-30 |
2022-07 |
14804.6 |
14804.6 |
0 |
| portfolio-70-30 |
2022-08 |
14804.6 |
15187.3 |
0.0258473 |
| portfolio-70-30 |
2022-09 |
15187.3 |
15425.7 |
0.0157005 |
| portfolio-70-30 |
2022-10 |
15425.7 |
15575.8 |
0.0097278 |
| portfolio-70-30 |
2022-11 |
15575.8 |
15558.8 |
-0.00109035 |
| portfolio-70-30 |
2022-12 |
15558.8 |
15558.8 |
0 |
| portfolio-70-30 |
2023-01 |
15558.8 |
16259.8 |
0.0450529 |
| portfolio-70-30 |
2023-02 |
16259.8 |
16232.8 |
-0.00165966 |
| portfolio-70-30 |
2023-03 |
16232.8 |
16545.4 |
0.0192574 |
| portfolio-70-30 |
2023-04 |
16545.4 |
16977.9 |
0.0261432 |
| portfolio-70-30 |
2023-05 |
16977.9 |
16845.7 |
-0.00779072 |
| portfolio-70-30 |
2023-06 |
16845.7 |
16804.3 |
-0.00245638 |
| portfolio-70-30 |
2023-07 |
16804.3 |
16685.4 |
-0.00707435 |
| portfolio-70-30 |
2023-08 |
16685.4 |
16685.4 |
0 |
| portfolio-70-30 |
2023-09 |
16685.4 |
16685.4 |
0 |
| portfolio-70-30 |
2023-10 |
16685.4 |
17607.4 |
0.0552594 |
| portfolio-70-30 |
2023-11 |
17607.4 |
18069.4 |
0.0262368 |
| portfolio-70-30 |
2023-12 |
18069.4 |
18621.2 |
0.0305412 |
| portfolio-70-30 |
2024-01 |
18621.2 |
18757.4 |
0.00731341 |
| portfolio-70-30 |
2024-02 |
18757.4 |
19569.5 |
0.0432936 |
| portfolio-70-30 |
2024-03 |
19569.5 |
20409.6 |
0.042927 |
| portfolio-70-30 |
2024-04 |
20409.6 |
20147.6 |
-0.0128371 |
| portfolio-70-30 |
2024-05 |
20147.6 |
20360.2 |
0.0105536 |
| portfolio-70-30 |
2024-06 |
20360.2 |
20428.6 |
0.00336211 |
| portfolio-70-30 |
2024-07 |
20428.6 |
20361.7 |
-0.00327501 |
| portfolio-70-30 |
2024-08 |
20361.7 |
20361.4 |
-1.48535e-05 |
| portfolio-70-30 |
2024-09 |
20361.4 |
20394.2 |
0.00161073 |
| portfolio-70-30 |
2024-10 |
20394.2 |
20696.5 |
0.0148192 |
| portfolio-70-30 |
2024-11 |
20696.5 |
22541.4 |
0.0891441 |
| portfolio-70-30 |
2024-12 |
22541.4 |
22550.4 |
0.000396082 |
| portfolio-70-30 |
2025-01 |
22550.4 |
21637.3 |
-0.040488 |
| portfolio-70-30 |
2025-02 |
21637.3 |
21328.2 |
-0.0142864 |
| portfolio-70-30 |
2025-03 |
21328.2 |
21328.2 |
0 |
| portfolio-70-30 |
2025-04 |
21328.2 |
21374.1 |
0.00214874 |
| portfolio-70-30 |
2025-05 |
21374.1 |
22816.2 |
0.0674722 |
| portfolio-70-30 |
2025-06 |
22816.2 |
22822.6 |
0.000282424 |
| portfolio-70-30 |
2025-07 |
22822.6 |
24411.5 |
0.0696172 |
| portfolio-70-30 |
2025-08 |
24411.5 |
24911.3 |
0.0204756 |
| portfolio-70-30 |
2025-09 |
24911.3 |
24740.1 |
-0.0068757 |
| portfolio-70-30 |
2025-10 |
24740.1 |
24476.7 |
-0.0106431 |
| portfolio-70-30 |
2025-11 |
24476.7 |
24476.7 |
0 |
| portfolio-70-30 |
2025-12 |
24476.7 |
24476.7 |
0 |
| portfolio-70-30 |
2026-01 |
24476.7 |
24476.7 |
0 |
| portfolio-70-30 |
2026-02 |
24476.7 |
24476.7 |
0 |
| portfolio-70-30 |
2026-03 |
24476.7 |
24476.7 |
0 |
| portfolio-70-30 |
2026-04 |
24476.7 |
24234.6 |
-0.00989427 |
| portfolio-70-30 |
2026-05 |
24234.6 |
24429.9 |
0.00806003 |