Files
gate_scout_order/onchain_scout_gate/templates/dashboard.html
T
2026-05-18 11:05:32 +08:00

236 lines
14 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>MATRIX · FUNNEL</title>
<link rel="stylesheet" href="/static/style.css?v={{ asset_version }}" />
</head>
<body class="matrix-theme">
<canvas id="matrixRain" class="matrix-rain-canvas" aria-hidden="true"></canvas>
<div class="matrix-vignette" aria-hidden="true"></div>
<div class="matrix-aurora" aria-hidden="true"></div>
<div class="matrix-scanlines" aria-hidden="true"></div>
<div class="matrix-noise" aria-hidden="true"></div>
<div class="matrix-chrome">
<div class="matrix-hud" id="matrixHud">
<div class="matrix-hud-block matrix-hud-live">
<span class="matrix-hud-dot" aria-hidden="true"></span>
<div class="matrix-hud-stack">
<span class="matrix-hud-label">LINK</span>
<span class="matrix-hud-val" id="hudLink">SYNC…</span>
</div>
</div>
<div class="matrix-hud-block">
<span class="matrix-hud-label">CYCLE</span>
<span class="matrix-hud-val" id="hudCycle"></span>
</div>
<div class="matrix-hud-block" title="BTC:近8h×15m 环境(横盘时多空均可推送;否则涨→LONG、跌→SHORT);BTC·辅=日线 regime(仅参考)">
<span class="matrix-hud-label">BTC·辅</span>
<span class="matrix-hud-val" id="hudBtc"></span>
</div>
<div class="matrix-hud-block">
<span class="matrix-hud-label">POOL</span>
<span class="matrix-hud-val" id="hudPool"></span>
</div>
<div class="matrix-hud-block">
<span class="matrix-hud-label">PUSH</span>
<span class="matrix-hud-val" id="hudPush"></span>
</div>
<div class="matrix-hud-block matrix-hud-wide">
<span class="matrix-hud-label">GEMMA</span>
<span class="matrix-hud-val mono" id="hudGemma"></span>
</div>
<div class="matrix-hud-block matrix-hud-wide">
<span class="matrix-hud-label">LAST</span>
<span class="matrix-hud-val mono" id="hudLast"></span>
</div>
</div>
<header class="matrix-header matrix-header-crt">
<div class="matrix-brand">
<div class="matrix-title-wrap">
<div class="matrix-glitch matrix-glitch-xl" data-text="MATRIX // FUNNEL">
<span class="matrix-glitch-layer matrix-glitch-c">MATRIX // FUNNEL</span>
<span class="matrix-glitch-layer matrix-glitch-m">MATRIX // FUNNEL</span>
<span class="matrix-glitch-base">MATRIX // FUNNEL</span>
</div>
<div class="matrix-subdeck">
<span class="matrix-deco">[</span>
<span id="matrixTagline" class="matrix-tagline matrix-tagline-glow">Gate USDT 永续 · 5m 结构 → 日线漏斗 · Gemma 优先链</span>
<span class="matrix-deco">]</span>
</div>
</div>
</div>
<div class="matrix-radar-header" aria-hidden="true" title="战术雷达 · 装饰">
<div class="matrix-radar-hud">
<div class="matrix-radar-h-graticule"></div>
<div class="matrix-radar-h-cross"></div>
<div class="matrix-radar-h-rings"></div>
<div class="matrix-radar-h-sweep"></div>
<div class="matrix-radar-h-sweep matrix-radar-h-sweep-ghost"></div>
<div class="matrix-radar-h-blip"></div>
</div>
<span class="matrix-radar-h-caption">SCAN</span>
</div>
<div class="matrix-header-actions">
<span class="matrix-pill matrix-pill-clock" id="liveClock">--:--:--</span>
<span class="matrix-pill dim">OP ▸ <span id="opUser">{{ username }}</span></span>
<a class="matrix-btn ghost" href="/logout">断开链路</a>
</div>
</header>
<main class="matrix-main matrix-crt-inner">
<section class="matrix-panel matrix-panel-hero matrix-panel-chrome">
<div class="matrix-hero-radar" aria-hidden="true">
<div class="matrix-hero-radar-grid"></div>
<div class="matrix-hero-radar-sweep"></div>
<div class="matrix-hero-radar-sweep matrix-hero-radar-sweep-trail"></div>
<div class="matrix-hero-radar-ring"></div>
</div>
<div class="matrix-panel-head matrix-panel-head-row">
<h2>// GEMMA 漏斗 · 优先矩阵</h2>
<span class="matrix-chip matrix-chip-magenta">LIVE FEED</span>
</div>
<p class="matrix-hint">合成评分 · 成交量 · 日线结构 · 上方空间 · 中间阻力 → 达标企业微信推送</p>
<div class="matrix-form-row matrix-form-row-tight">
<label for="funnelWindowHoursInput">展示窗口(h)</label>
<input id="funnelWindowHoursInput" type="number" step="1" min="1" max="168" value="24" title="仅显示该小时内写入的 gemma_funnel,保存在本浏览器" />
<button type="button" id="applyFunnelWindowBtn" class="matrix-btn">应用</button>
<span id="funnelWindowMsg" class="matrix-msg"></span>
</div>
<p id="funnelMeta" class="matrix-hint matrix-dim">// 数据同步中…</p>
<div id="funnelMatrix" class="matrix-grid"></div>
</section>
<section class="matrix-panel matrix-panel-chrome">
<div class="matrix-panel-head matrix-panel-head-row">
<h2>// 每日晨报 · 昨日复盘</h2>
<button type="button" id="runDailyReportBtn" class="matrix-btn ghost">立即生成</button>
</div>
<div class="matrix-form-row">
<label>晨报开关</label>
<input id="dailyReportEnabledInput" type="checkbox" />
<label>北京时间执行</label>
<input id="dailyReportTimeInput" type="time" />
<label>推送企业微信</label>
<input id="dailyReportPushInput" type="checkbox" />
<label>启动即生成</label>
<input id="dailyReportStartupInput" type="checkbox" />
<button type="button" id="saveDailyReportBtn" class="matrix-btn matrix-btn-pulse">保存晨报配置</button>
</div>
<p id="dailyReportSaveMsg" class="matrix-msg"></p>
<p id="dailyReportMeta" class="matrix-hint matrix-dim">// 等待晨报数据…</p>
<div id="dailyReportBox" class="matrix-list"></div>
</section>
<section class="matrix-panel matrix-panel-chrome">
<div class="matrix-panel-head matrix-panel-head-row">
<h2>// 监控黑名单 · base</h2>
<span class="matrix-chip matrix-dim" id="symbolBlocklistCountChip">0 条规则</span>
</div>
<p class="matrix-hint">
Gate USDT 永续左侧 base(每行一个或逗号分隔),如 <code>XAU</code> <code>XAUT</code> <code>XAG</code><code>all_swaps</code>
<code>watchlist</code> 均会在入池后剔除。保存后下一轮扫描生效。
</p>
<textarea
id="symbolBlocklistInput"
class="matrix-input matrix-textarea"
rows="5"
spellcheck="false"
autocomplete="off"
placeholder="XAU&#10;XAUT&#10;XAG"
></textarea>
<div class="matrix-form-row matrix-form-row-tight">
<button type="button" id="saveSymbolBlocklistBtn" class="matrix-btn matrix-btn-pulse">保存黑名单</button>
</div>
<p id="symbolBlocklistSaveMsg" class="matrix-msg"></p>
</section>
<section class="matrix-panel matrix-panel-chrome" id="orderExecutorsPanel">
<div class="matrix-panel-head matrix-panel-head-row">
<h2>// 下单执行器 · 转发链</h2>
<span class="matrix-chip matrix-dim">仅扫描端维护 · 同一信号广播</span>
</div>
<p class="matrix-hint">
企微突破推送成功后,向列表中<strong>已启用</strong>的执行器 POST <code>/v1/signal</code>(方案 A 止盈止损)。
各执行器自行配置 Gate API、盈亏比、移动保本等;<strong>不支持执行器反向注册</strong>
修改 webhook 密钥后请同步到各执行器 <code>security.webhook_secret</code>
</p>
<div class="matrix-form-row matrix-form-row-wrap">
<label>总开关</label>
<input id="oeGlobalEnabled" type="checkbox" />
<label>Webhook 密钥</label>
<input id="oeWebhookSecret" class="matrix-input" type="password" style="min-width:14rem" autocomplete="new-password" />
<label>超时(s)</label>
<input id="oeTimeout" class="matrix-input" type="number" min="3" max="120" step="1" style="width:5rem" />
<button type="button" id="oeSaveGlobalBtn" class="matrix-btn matrix-btn-pulse">保存全局</button>
</div>
<p id="oeGlobalMsg" class="matrix-msg"></p>
<div class="matrix-form-row matrix-form-row-wrap" style="margin-top:12px">
<label>名称</label>
<input id="oeNewName" class="matrix-input" type="text" placeholder="如 account_a" style="width:8rem" />
<label>Base URL</label>
<input id="oeNewUrl" class="matrix-input" type="text" placeholder="http://127.0.0.1:8090" style="min-width:16rem" />
<label>启用</label>
<input id="oeNewEnabled" type="checkbox" checked />
<button type="button" id="oeAddBtn" class="matrix-btn ghost">添加执行器</button>
</div>
<p id="oeAddMsg" class="matrix-msg"></p>
<div id="oeList" class="matrix-list" style="margin-top:12px"></div>
</section>
<section class="matrix-panel matrix-panel-chrome">
<div class="matrix-panel-head"><h2>// 策略寄存器 · 5m</h2></div>
<p class="matrix-hint">横盘 + 5m 收盘上破 + 放量 · 保存后下一轮生效 · 止损缓冲为企微区间A/B共用</p>
<div class="matrix-form-row">
<label>横盘时长(h)</label>
<input id="rangeHoursInput" type="number" step="0.5" min="1" />
<label>横盘振幅上限(%)</label>
<input id="rangeMaxPctInput" type="number" step="0.1" min="0.1" />
<label>放量倍数</label>
<input id="volumeSpikeMultInput" type="number" step="0.1" min="1" />
<label>放量回看根数</label>
<input id="volumeLookbackInput" type="number" step="1" min="5" />
<label>突破缓冲(%)</label>
<input id="breakoutBufferInput" type="number" step="0.01" min="0" />
<label>止损缓冲(%)</label>
<input id="stopBufferPctInput" type="number" step="0.05" min="0" max="10" title="企微文案区间A/B共用:突破K极值与箱体边沿外侧缓冲" />
<label>启用推送时间窗(09:00-23:00)</label>
<input id="pushTimeWindowEnabledInput" type="checkbox" />
<button type="button" id="saveIntradayBtn" class="matrix-btn matrix-btn-pulse">写入寄存器</button>
</div>
<p id="intradaySaveMsg" class="matrix-msg"></p>
</section>
<div class="matrix-two-col">
<section class="matrix-panel matrix-panel-chrome">
<div class="matrix-panel-head"><h2>// 观察层 · WATCH</h2></div>
<div id="watchAlerts" class="matrix-list"></div>
</section>
<section class="matrix-panel matrix-panel-chrome">
<div class="matrix-panel-head"><h2>// 触发层 · TRIGGER</h2></div>
<div id="triggerAlerts" class="matrix-list"></div>
</section>
</div>
<section class="matrix-panel matrix-panel-wide matrix-panel-chrome">
<div class="matrix-panel-head"><h2>// 系统遥测</h2></div>
<div class="matrix-split">
<pre id="status" class="matrix-pre matrix-pre-glow"></pre>
<pre id="config" class="matrix-pre matrix-pre-glow"></pre>
</div>
</section>
<section class="matrix-panel matrix-panel-wide matrix-panel-chrome">
<div class="matrix-panel-head"><h2>// 运行日志</h2></div>
<div id="logs" class="matrix-list matrix-list-logs"></div>
</section>
</main>
</div>
<script src="/static/app.js?v={{ asset_version }}"></script>
</body>
</html>