自动刷新改用 tail update 与 scrollToPosition 恢复视窗,避免 setData 后跳到最右;拆分 chart_tv 模块并扩展 analyze/recent API。同步威科夫分析、pipeline 增量构建及相关策略与配置。 Co-authored-by: Cursor <cursoragent@cursor.com>
460 lines
13 KiB
JSON
460 lines
13 KiB
JSON
{
|
|
"branches": {
|
|
"Spring_V1": {
|
|
"wfo": {
|
|
"train": {
|
|
"timerange": "20230101-20250101",
|
|
"profit_pct": 1.6587295176,
|
|
"trades": 12,
|
|
"dd_pct": 3.644907735100005,
|
|
"pf": 1.1700179329477578,
|
|
"winrate": 25.0,
|
|
"final": 10165.87295176,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "trend"
|
|
},
|
|
"validate": {
|
|
"timerange": "20250101-20260101",
|
|
"profit_pct": 9.990534148400002,
|
|
"trades": 6,
|
|
"dd_pct": 1.797834787912851,
|
|
"pf": 6.201791679101682,
|
|
"winrate": 66.66666666666666,
|
|
"final": 10999.05341484,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "trend"
|
|
},
|
|
"test": {
|
|
"timerange": "20260101-",
|
|
"profit_pct": 0.8458820224000001,
|
|
"trades": 2,
|
|
"dd_pct": 0.7197049309999966,
|
|
"pf": 2.175317808681236,
|
|
"winrate": 50.0,
|
|
"final": 10084.58820224,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "trend"
|
|
},
|
|
"full": {
|
|
"timerange": "20230101-",
|
|
"profit_pct": 12.7374753063,
|
|
"trades": 20,
|
|
"dd_pct": 3.644907735100005,
|
|
"pf": 2.0183507402435503,
|
|
"winrate": 40.0,
|
|
"final": 11273.74753063,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "trend"
|
|
}
|
|
},
|
|
"regimes": {
|
|
"trend": {
|
|
"profit_pct": 12.7374753063,
|
|
"trades": 20,
|
|
"dd_pct": 3.644907735100005,
|
|
"pf": 2.0183507402435503,
|
|
"winrate": 40.0,
|
|
"final": 11273.74753063,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "trend"
|
|
},
|
|
"bull": {
|
|
"profit_pct": 8.166882314399999,
|
|
"trades": 12,
|
|
"dd_pct": 3.4837023928902555,
|
|
"pf": 1.9398544482027922,
|
|
"winrate": 33.33333333333333,
|
|
"final": 10816.688231439999,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "bull"
|
|
},
|
|
"bear": {
|
|
"profit_pct": 4.2503064875000005,
|
|
"trades": 8,
|
|
"dd_pct": 3.173714645599994,
|
|
"pf": 2.084295240772406,
|
|
"winrate": 50.0,
|
|
"final": 10425.03064875,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "bear"
|
|
},
|
|
"range": {
|
|
"profit_pct": -4.3352539371,
|
|
"trades": 6,
|
|
"dd_pct": 4.404162180500007,
|
|
"pf": 0.15746188404490422,
|
|
"winrate": 16.666666666666664,
|
|
"final": 9566.47460629,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "range"
|
|
},
|
|
"all": {
|
|
"profit_pct": 7.831216539699999,
|
|
"trades": 26,
|
|
"dd_pct": 7.883451762900004,
|
|
"pf": 1.454582067425369,
|
|
"winrate": 34.61538461538461,
|
|
"final": 10783.12165397,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "all"
|
|
}
|
|
},
|
|
"cost_stress": {
|
|
"fee_5bps": {
|
|
"profit_pct": 12.7374753063,
|
|
"trades": 20,
|
|
"dd_pct": 3.644907735100005,
|
|
"pf": 2.0183507402435503,
|
|
"winrate": 40.0,
|
|
"final": 11273.74753063,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "trend"
|
|
},
|
|
"fee_5bps+slip_5bps": {
|
|
"profit_pct": 6.782772099999998,
|
|
"trades": 20,
|
|
"dd_pct": 7.851805397900007,
|
|
"pf": 1.4511324473780693,
|
|
"winrate": 35.0,
|
|
"final": 10678.27721,
|
|
"fee_used": 0.001,
|
|
"regime_loaded": "trend"
|
|
},
|
|
"fee_10bps+slip_10bps": {
|
|
"profit_pct": 3.182909279400001,
|
|
"trades": 20,
|
|
"dd_pct": 9.126146157700004,
|
|
"pf": 1.1834520309921508,
|
|
"winrate": 35.0,
|
|
"final": 10318.29092794,
|
|
"fee_used": 0.002,
|
|
"regime_loaded": "trend"
|
|
}
|
|
},
|
|
"target": {
|
|
"pf": 1.3,
|
|
"dd": 10.0,
|
|
"note": "Spring: PF>1.3 DD<10%"
|
|
},
|
|
"verdict": {
|
|
"full_pf": 2.0183507402435503,
|
|
"full_dd": 3.644907735100005,
|
|
"trades_per_year": 5.555555555555555,
|
|
"net_mid_pf": 1.4511324473780693,
|
|
"target_pf_ok": true,
|
|
"target_dd_ok": true
|
|
}
|
|
},
|
|
"LPS_V1": {
|
|
"wfo": {
|
|
"train": {
|
|
"timerange": "20230101-20250101",
|
|
"profit_pct": -1.2518571096,
|
|
"trades": 1,
|
|
"dd_pct": 1.251857109600005,
|
|
"pf": 0.0,
|
|
"winrate": 0.0,
|
|
"final": 9874.81428904,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "trend"
|
|
},
|
|
"validate": {
|
|
"timerange": "20250101-20260101",
|
|
"profit_pct": -0.24613064569999998,
|
|
"trades": 1,
|
|
"dd_pct": 0.24613064569999552,
|
|
"pf": 0.0,
|
|
"winrate": 0.0,
|
|
"final": 9975.38693543,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "trend"
|
|
},
|
|
"test": {
|
|
"timerange": "20260101-",
|
|
"profit_pct": 0.0,
|
|
"trades": 0,
|
|
"dd_pct": 0.0,
|
|
"pf": 0.0,
|
|
"winrate": 0.0,
|
|
"final": 10000.0,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "trend"
|
|
},
|
|
"full": {
|
|
"timerange": "20230101-",
|
|
"profit_pct": -1.4952529704,
|
|
"trades": 2,
|
|
"dd_pct": 1.4952529703999973,
|
|
"pf": 0.0,
|
|
"winrate": 0.0,
|
|
"final": 9850.47470296,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "trend"
|
|
}
|
|
},
|
|
"regimes": {
|
|
"trend": {
|
|
"profit_pct": -1.4952529704,
|
|
"trades": 2,
|
|
"dd_pct": 1.4952529703999973,
|
|
"pf": 0.0,
|
|
"winrate": 0.0,
|
|
"final": 9850.47470296,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "trend"
|
|
},
|
|
"bull": {
|
|
"profit_pct": -1.4952529704,
|
|
"trades": 2,
|
|
"dd_pct": 1.4952529703999973,
|
|
"pf": 0.0,
|
|
"winrate": 0.0,
|
|
"final": 9850.47470296,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "bull"
|
|
},
|
|
"bear": {
|
|
"profit_pct": 0.0,
|
|
"trades": 0,
|
|
"dd_pct": 0.0,
|
|
"pf": 0.0,
|
|
"winrate": 0.0,
|
|
"final": 10000.0,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "bear"
|
|
},
|
|
"range": {
|
|
"profit_pct": 0.0,
|
|
"trades": 0,
|
|
"dd_pct": 0.0,
|
|
"pf": 0.0,
|
|
"winrate": 0.0,
|
|
"final": 10000.0,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "range"
|
|
},
|
|
"all": {
|
|
"profit_pct": -1.4952529704,
|
|
"trades": 2,
|
|
"dd_pct": 1.4952529703999973,
|
|
"pf": 0.0,
|
|
"winrate": 0.0,
|
|
"final": 9850.47470296,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "all"
|
|
}
|
|
},
|
|
"cost_stress": {
|
|
"fee_5bps": {
|
|
"profit_pct": -1.4952529704,
|
|
"trades": 2,
|
|
"dd_pct": 1.4952529703999973,
|
|
"pf": 0.0,
|
|
"winrate": 0.0,
|
|
"final": 9850.47470296,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "trend"
|
|
},
|
|
"fee_5bps+slip_5bps": {
|
|
"profit_pct": -1.6902037039,
|
|
"trades": 2,
|
|
"dd_pct": 1.6902037039000062,
|
|
"pf": 0.0,
|
|
"winrate": 0.0,
|
|
"final": 9830.97962961,
|
|
"fee_used": 0.001,
|
|
"regime_loaded": "trend"
|
|
},
|
|
"fee_10bps+slip_10bps": {
|
|
"profit_pct": -2.0801051709,
|
|
"trades": 2,
|
|
"dd_pct": 2.080105170900006,
|
|
"pf": 0.0,
|
|
"winrate": 0.0,
|
|
"final": 9791.98948291,
|
|
"fee_used": 0.002,
|
|
"regime_loaded": "trend"
|
|
}
|
|
},
|
|
"target": {
|
|
"pf": 1.2,
|
|
"dd": 15.0,
|
|
"note": "LPS: PF>1.2, 次数增加"
|
|
},
|
|
"version": "LPS_V1.1",
|
|
"verdict": {
|
|
"full_pf": 0.0,
|
|
"full_dd": 1.4952529703999973,
|
|
"trades_per_year": 0.5555555555555556,
|
|
"net_mid_pf": 0.0,
|
|
"target_pf_ok": false,
|
|
"target_dd_ok": true
|
|
}
|
|
},
|
|
"LPS_V2": {
|
|
"version": "LPS_V2",
|
|
"wfo": {
|
|
"train": {
|
|
"timerange": "20230101-20250101",
|
|
"profit_pct": -3.5049591933000004,
|
|
"trades": 3,
|
|
"dd_pct": 3.504959193300001,
|
|
"pf": 0.0,
|
|
"winrate": 0.0,
|
|
"final": 9649.50408067,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "trend"
|
|
},
|
|
"validate": {
|
|
"timerange": "20250101-20260101",
|
|
"profit_pct": -1.6143743830000001,
|
|
"trades": 2,
|
|
"dd_pct": 1.614374382999995,
|
|
"pf": 0.0,
|
|
"winrate": 0.0,
|
|
"final": 9838.5625617,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "trend"
|
|
},
|
|
"test": {
|
|
"timerange": "20260101-",
|
|
"profit_pct": 1.2174468187999996,
|
|
"trades": 2,
|
|
"dd_pct": 1.4924489317000007,
|
|
"pf": 1.81573767312309,
|
|
"winrate": 50.0,
|
|
"final": 10121.74468188,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "trend"
|
|
},
|
|
"full": {
|
|
"timerange": "20230101-",
|
|
"profit_pct": -3.9055710949000004,
|
|
"trades": 7,
|
|
"dd_pct": 6.479119889400008,
|
|
"pf": 0.39720654015221873,
|
|
"winrate": 14.285714285714285,
|
|
"final": 9609.44289051,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "trend"
|
|
}
|
|
},
|
|
"regimes": {
|
|
"trend": {
|
|
"profit_pct": -3.9055710949000004,
|
|
"trades": 7,
|
|
"dd_pct": 6.479119889400008,
|
|
"pf": 0.39720654015221873,
|
|
"winrate": 14.285714285714285,
|
|
"final": 9609.44289051,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "trend"
|
|
},
|
|
"bull": {
|
|
"profit_pct": -5.0599199851,
|
|
"trades": 5,
|
|
"dd_pct": 5.059919985100005,
|
|
"pf": 0.0,
|
|
"winrate": 0.0,
|
|
"final": 9494.00800149,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "bull"
|
|
},
|
|
"bear": {
|
|
"profit_pct": 1.2174468187999996,
|
|
"trades": 2,
|
|
"dd_pct": 1.4924489317000007,
|
|
"pf": 1.81573767312309,
|
|
"winrate": 50.0,
|
|
"final": 10121.74468188,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "bear"
|
|
},
|
|
"range": {
|
|
"profit_pct": 0.0,
|
|
"trades": 0,
|
|
"dd_pct": 0.0,
|
|
"pf": 0.0,
|
|
"winrate": 0.0,
|
|
"final": 10000.0,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "range"
|
|
},
|
|
"all": {
|
|
"profit_pct": -3.9055710949000004,
|
|
"trades": 7,
|
|
"dd_pct": 6.479119889400008,
|
|
"pf": 0.39720654015221873,
|
|
"winrate": 14.285714285714285,
|
|
"final": 9609.44289051,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "all"
|
|
}
|
|
},
|
|
"cost_stress": {
|
|
"fee_5bps": {
|
|
"profit_pct": -3.9055710949000004,
|
|
"trades": 7,
|
|
"dd_pct": 6.479119889400008,
|
|
"pf": 0.39720654015221873,
|
|
"winrate": 14.285714285714285,
|
|
"final": 9609.44289051,
|
|
"fee_used": 0.0005,
|
|
"regime_loaded": "trend"
|
|
},
|
|
"fee_5bps+slip_5bps": {
|
|
"profit_pct": -4.5549168852,
|
|
"trades": 7,
|
|
"dd_pct": 7.020877735199993,
|
|
"pf": 0.3512325585213674,
|
|
"winrate": 14.285714285714285,
|
|
"final": 9544.50831148,
|
|
"fee_used": 0.001,
|
|
"regime_loaded": "trend"
|
|
},
|
|
"fee_10bps+slip_10bps": {
|
|
"profit_pct": -5.371762636800001,
|
|
"trades": 7,
|
|
"dd_pct": 8.1297357765,
|
|
"pf": 0.33924511392759654,
|
|
"winrate": 14.285714285714285,
|
|
"final": 9462.82373632,
|
|
"fee_used": 0.002,
|
|
"regime_loaded": "trend"
|
|
}
|
|
},
|
|
"target": {
|
|
"pf": 1.2,
|
|
"dd": 15.0,
|
|
"note": "LPS V2: 4h SOS→1h LPS; PF>1.2; ~5-15/yr"
|
|
},
|
|
"verdict": {
|
|
"full_pf": 0.39720654015221873,
|
|
"full_dd": 6.479119889400008,
|
|
"trades_per_year": 1.9444444444444444,
|
|
"net_mid_pf": 0.3512325585213674,
|
|
"target_pf_ok": false,
|
|
"target_dd_ok": true,
|
|
"freq_ok": false,
|
|
"regime_logic_ok": true,
|
|
"status": "FAIL",
|
|
"hypothesis": "4h native SOS → 1h LPS"
|
|
}
|
|
}
|
|
},
|
|
"portfolio_note": {
|
|
"spring_tpy": 5.555555555555555,
|
|
"lps_tpy": 0.5555555555555556,
|
|
"sum_tpy_approx": 6.111111111111111,
|
|
"combined_target_tpy": "15-25",
|
|
"lps_status": "FAIL",
|
|
"spring_status": "PASS"
|
|
},
|
|
"system_status": {
|
|
"spring": "BASELINE FROZEN / PASS + Limited Evidence",
|
|
"lps": "FAIL",
|
|
"spring_tpy": 5.555555555555555,
|
|
"lps_tpy": 1.9444444444444444,
|
|
"next": "若 LPS PASS → 组合层;否则 Spring-only"
|
|
}
|
|
} |