feat: API+UI近5年区间切换(补)
This commit is contained in:
@@ -535,10 +535,11 @@ def get_tracking():
|
|||||||
|
|
||||||
@app.route("/api/research/strategies")
|
@app.route("/api/research/strategies")
|
||||||
def api_research_strategies():
|
def api_research_strategies():
|
||||||
"""策略版本列表(含回测结果摘要)"""
|
"""策略版本列表(含回测结果摘要,支持 period_tag 区间过滤)"""
|
||||||
try:
|
try:
|
||||||
from strategy_lab import list_strategies
|
from strategy_lab import list_strategies
|
||||||
return jsonify({'strategies': list_strategies()})
|
pt = request.args.get('period_tag')
|
||||||
|
return jsonify({'strategies': list_strategies(period_tag=pt)})
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return jsonify({'error': str(e)}), 500
|
return jsonify({'error': str(e)}), 500
|
||||||
|
|
||||||
|
|||||||
+5
-3
@@ -1931,9 +1931,9 @@ function renderResearch() {
|
|||||||
if (!el) return;
|
if (!el) return;
|
||||||
el.innerHTML = '<div class="flex gap-2 items-center mb-3 flex-wrap">' +
|
el.innerHTML = '<div class="flex gap-2 items-center mb-3 flex-wrap">' +
|
||||||
'<h2 class="text-lg font-bold">📋 策略研究 — 版本迭代对比</h2>' +
|
'<h2 class="text-lg font-bold">📋 策略研究 — 版本迭代对比</h2>' +
|
||||||
'<select id="btPeriod" class="bg-slate-800 text-sm rounded-lg px-2 py-1 border border-slate-700">' +
|
'<select id="btPeriod" onchange="loadStrategyList()" 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="1m">近 1 个月</option><option value="6m">近 6 个月</option>' +
|
||||||
'<option value="1y">近 1 年</option><option value="2y" selected>近 2 年</option></select>' +
|
'<option value="1y">近 1 年</option><option value="2y" selected>近 2 年</option><option value="5y">近 5 年</option></select>' +
|
||||||
'<select id="btMarket" class="bg-slate-800 text-sm rounded-lg px-2 py-1 border border-slate-700" onchange="loadStrategyList()">' +
|
'<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>' +
|
'<option value="all">全部市场</option><option value="a">A股</option><option value="hk">港股</option></select>' +
|
||||||
'<span class="text-xs text-slate-500">每版策略基于上一版归因分析迭代 · 点击行展开明细</span></div>' +
|
'<span class="text-xs text-slate-500">每版策略基于上一版归因分析迭代 · 点击行展开明细</span></div>' +
|
||||||
@@ -1945,7 +1945,9 @@ function renderResearch() {
|
|||||||
async function loadStrategyList() {
|
async function loadStrategyList() {
|
||||||
const listEl = document.getElementById('strategyList');
|
const listEl = document.getElementById('strategyList');
|
||||||
try {
|
try {
|
||||||
const resp = await fetch('/api/research/strategies');
|
const ptMap = {'1m':'1m','6m':'6m','1y':'1y','2y':'2y','5y':'5y'};
|
||||||
|
const pt = ptMap[document.getElementById('btPeriod')?.value || '2y'] || '2y';
|
||||||
|
const resp = await fetch('/api/research/strategies?period_tag=' + pt);
|
||||||
const data = await resp.json();
|
const data = await resp.json();
|
||||||
if (data.error) { listEl.innerHTML = '<div class="text-red-400">' + data.error + '</div>'; return; }
|
if (data.error) { listEl.innerHTML = '<div class="text-red-400">' + data.error + '</div>'; return; }
|
||||||
const mkt = document.getElementById('btMarket')?.value || 'all';
|
const mkt = document.getElementById('btMarket')?.value || 'all';
|
||||||
|
|||||||
Reference in New Issue
Block a user