feat(hub): add symbol archive with permanent 5m klines
Add /archive page, hub_symbol_archive.db, trade overlay, 4h background sync, and instance /api/hub/trades/archive. Document in hub-symbol-archive-kline.md with cross-links. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Orbitron:wght@500;600;700&display=swap" rel="stylesheet" media="print" onload="this.media='all'" />
|
||||
<noscript><link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Orbitron:wght@500;600;700&display=swap" rel="stylesheet" /></noscript>
|
||||
<link rel="stylesheet" href="/assets/app.css?v=20260607-hub-board-v1" />
|
||||
<link rel="stylesheet" href="/assets/app.css?v=20260607-hub-archive-v1" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="app-bg" aria-hidden="true"></div>
|
||||
@@ -46,6 +46,7 @@
|
||||
<nav class="top-nav">
|
||||
<a href="/monitor" id="nav-monitor">监控区</a>
|
||||
<a href="/market" id="nav-market">行情区</a>
|
||||
<a href="/archive" id="nav-archive">币种档案</a>
|
||||
<a href="/ai" id="nav-ai">AI 教练</a>
|
||||
<a href="/settings" id="nav-settings">系统设置</a>
|
||||
</nav>
|
||||
@@ -185,6 +186,60 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="page-archive" class="page hidden">
|
||||
<div class="page-head">
|
||||
<h1><span class="head-tag">ARC</span> 币种档案</h1>
|
||||
<p class="page-desc">一所一币一行 · 交易时间线 · 永久 5m K 线(15m/1h/4h 聚合)</p>
|
||||
</div>
|
||||
<div class="archive-toolbar toolbar">
|
||||
<label class="archive-field">
|
||||
<span>交易所</span>
|
||||
<select id="archive-exchange"><option value="">全部</option></select>
|
||||
</label>
|
||||
<label class="chk-label"><input type="checkbox" id="archive-filter-profit" /> 有盈利单</label>
|
||||
<label class="chk-label"><input type="checkbox" id="archive-filter-loss" /> 有亏损单</label>
|
||||
<label class="chk-label"><input type="checkbox" id="archive-filter-sick" /> 犯病</label>
|
||||
<label class="chk-label"><input type="checkbox" id="archive-filter-emotion" /> 情绪</label>
|
||||
<button type="button" id="archive-btn-refresh" class="primary">刷新列表</button>
|
||||
<button type="button" id="archive-btn-sync" class="ghost">同步交易与 K 线</button>
|
||||
<span id="archive-status" class="toolbar-meta"></span>
|
||||
</div>
|
||||
<div class="archive-layout">
|
||||
<section class="archive-list-panel">
|
||||
<div id="archive-list" class="archive-list" role="list"></div>
|
||||
</section>
|
||||
<section class="archive-detail-panel hidden" id="archive-detail-panel">
|
||||
<div class="archive-detail-head">
|
||||
<h2 id="archive-detail-title">—</h2>
|
||||
<span id="archive-detail-stats" class="archive-detail-stats"></span>
|
||||
</div>
|
||||
<div class="archive-chart-toolbar toolbar">
|
||||
<div class="archive-tf-tabs" id="archive-tf-tabs" role="tablist">
|
||||
<button type="button" class="archive-tf-btn" data-tf="5m">5m</button>
|
||||
<button type="button" class="archive-tf-btn is-active" data-tf="15m">15m</button>
|
||||
<button type="button" class="archive-tf-btn" data-tf="1h">1h</button>
|
||||
<button type="button" class="archive-tf-btn" data-tf="4h">4h</button>
|
||||
</div>
|
||||
<label class="archive-field">
|
||||
<span>视窗</span>
|
||||
<select id="archive-view-mode">
|
||||
<option value="hold">持仓过程(锚平仓)</option>
|
||||
<option value="entry">进场决策(锚开仓)</option>
|
||||
</select>
|
||||
</label>
|
||||
<label class="archive-field">
|
||||
<span>跳转时间</span>
|
||||
<input id="archive-jump-at" type="text" placeholder="2026-06-07 14:30" autocomplete="off" />
|
||||
</label>
|
||||
<button type="button" id="archive-btn-jump" class="ghost">跳转</button>
|
||||
<button type="button" id="archive-btn-reload-chart" class="primary">重载图表</button>
|
||||
</div>
|
||||
<div id="archive-chart" class="archive-chart-host"></div>
|
||||
<div id="archive-trades" class="archive-trades"></div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="instance-frame-shell" class="instance-frame-shell hidden" aria-hidden="true">
|
||||
<div class="instance-frame-toolbar">
|
||||
<button type="button" id="instance-frame-back" class="ghost">← 返回监控</button>
|
||||
@@ -294,7 +349,8 @@
|
||||
<div id="toast"></div>
|
||||
<script src="https://unpkg.com/lightweight-charts@4.2.0/dist/lightweight-charts.standalone.production.js"></script>
|
||||
<script src="/assets/chart.js?v=20260604-upnl-contracts"></script>
|
||||
<script src="/assets/archive.js?v=20260607-hub-archive-v1"></script>
|
||||
<script src="/assets/ai_review_render.js?v=2"></script>
|
||||
<script src="/assets/app.js?v=20260607-hub-board-v1"></script>
|
||||
<script src="/assets/app.js?v=20260607-hub-archive-v1"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user