feat: 研究Tab支持10年回测区间(v_mr 10y成绩可见)

- server.py: /api/research/backtest days映射补 5y(1825)/10y(3650),修复5y静默回退185天bug
- static/index.html: 时间区间下拉加近10年选项 + ptMap加10y
- 附带: mr_scanner v_mr实盘扫描器 + market_watch接入(2af2e934已含)
This commit is contained in:
xxm
2026-08-02 22:52:55 +08:00
parent 2af2e93408
commit 95ad45c096
2 changed files with 3 additions and 3 deletions
+1 -1
View File
@@ -556,7 +556,7 @@ def api_research_backtest():
market = request.args.get('market', 'all') # all | a | hk
capital = float(request.args.get('capital', 1000000))
end_date = '2026-07-24' # 数据完整截止日
days = {'1m': 30, '6m': 185, '1y': 365, '2y': 730}.get(period, 185)
days = {'1m': 30, '6m': 185, '1y': 365, '2y': 730, '5y': 1825, '10y': 3650}.get(period, 185)
start_date = (datetime.strptime(end_date, '%Y-%m-%d') - timedelta(days=days)).strftime('%Y-%m-%d')
try:
from strategy_lab import run_backtest, analyze_trade_list, save_analysis
+2 -2
View File
@@ -1934,7 +1934,7 @@ function renderResearch() {
'<h2 class="text-lg font-bold">📋 策略研究 — 版本迭代对比</h2>' +
'<select id="btPeriod" onchange="saveBtPeriod()" class="bg-slate-800 text-sm rounded-lg px-2 py-1 border border-slate-700">' +
'<option value="1m">近 1 个月</option><option value="6m">近 6 个月</option>' +
'<option value="1y">近 1 年</option><option value="2y">近 2 年</option><option value="5y">近 5 年</option></select>' +
'<option value="1y">近 1 年</option><option value="2y">近 2 年</option><option value="5y">近 5 年</option><option value="10y">近 10 年</option></select>' +
'<select id="btMarket" class="bg-slate-800 text-sm rounded-lg px-2 py-1 border border-slate-700" onchange="loadStrategyList()">' +
'<option value="all">全部市场</option><option value="a">A股</option><option value="hk">港股</option></select>' +
'<span class="text-xs text-slate-500">每版策略基于上一版归因分析迭代 · 点击行展开明细</span></div>' +
@@ -1956,7 +1956,7 @@ function saveBtPeriod() {
async function loadStrategyList() {
const listEl = document.getElementById('strategyList');
try {
const ptMap = {'1m':'1m','6m':'6m','1y':'1y','2y':'2y','5y':'5y'};
const ptMap = {'1m':'1m','6m':'6m','1y':'1y','2y':'2y','5y':'5y','10y':'10y'};
const pt = ptMap[window._btPeriodVal || document.getElementById('btPeriod')?.value || '2y'] || '2y';
const resp = await fetch('/api/research/strategies?period_tag=' + pt);
const data = await resp.json();