1889 lines
133 KiB
HTML
1889 lines
133 KiB
HTML
<!doctype html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<meta name="color-scheme" content="light dark">
|
||
<title>小白复盘</title>
|
||
<script>
|
||
(() => {
|
||
let theme = "light";
|
||
try {
|
||
theme = localStorage.getItem("xiaobaiTheme") === "dark" ? "dark" : "light";
|
||
} catch (_error) {
|
||
theme = "light";
|
||
}
|
||
document.documentElement.dataset.theme = theme;
|
||
document.documentElement.style.colorScheme = theme;
|
||
})();
|
||
</script>
|
||
<link rel="stylesheet" href="/styles.css">
|
||
<link rel="stylesheet" href="/renovation.css?v=20260725-5">
|
||
<link rel="stylesheet" href="/redesign-v2.css?v=20260728-1">
|
||
<link rel="stylesheet" href="/design-system.css?v=20260728-4">
|
||
<link rel="stylesheet" href="/theme.css?v=20260728-2">
|
||
<link rel="stylesheet" href="/wentian-v2.css?v=20260728-7">
|
||
</head>
|
||
<body>
|
||
<section id="authGate" class="auth-gate" aria-label="账号登录">
|
||
<div class="auth-shell">
|
||
<div class="auth-brand">
|
||
<div class="brand-mark" aria-hidden="true"><span class="brand-glyph">复</span></div>
|
||
<div><h1>小白复盘</h1><span>登录后进入你的复盘空间</span></div>
|
||
</div>
|
||
<div class="auth-tabs" role="tablist">
|
||
<button id="authLoginTab" class="auth-tab active" type="button" data-auth-mode="login">登录</button>
|
||
<button id="authRegisterTab" class="auth-tab" type="button" data-auth-mode="register">注册</button>
|
||
</div>
|
||
<form id="authForm" class="auth-form">
|
||
<label class="form-field"><span>账号名</span><input id="authUsername" type="text" minlength="3" maxlength="30" autocomplete="username" required></label>
|
||
<label class="form-field"><span>密码</span><input id="authPassword" type="password" minlength="8" maxlength="128" autocomplete="current-password" required></label>
|
||
<label id="authConfirmField" class="form-field" hidden><span>确认密码</span><input id="authPasswordConfirm" type="password" minlength="8" maxlength="128" autocomplete="new-password"></label>
|
||
<p id="authError" class="auth-error" hidden></p>
|
||
<button id="authSubmitButton" class="button primary" type="submit">登录</button>
|
||
</form>
|
||
</div>
|
||
</section>
|
||
|
||
<div class="main">
|
||
<header class="app-header topbar">
|
||
<div class="market-tape mkt" aria-label="市场概况">
|
||
<span class="market-item up">上涨 <strong id="tapeUp">--</strong></span>
|
||
<span class="market-item down">下跌 <strong id="tapeDown">--</strong></span>
|
||
<span class="market-item">涨停 <strong id="tapeLimit">--</strong></span>
|
||
<span class="market-item">成交额 <strong id="tapeAmount">--</strong></span>
|
||
</div>
|
||
|
||
<div class="header-actions">
|
||
<div class="header-date-group">
|
||
<button id="prevDate" class="icon-button" type="button" title="前一个交易日" aria-label="前一个交易日"><i data-lucide="chevron-left"></i></button>
|
||
<input id="tradeDate" class="date-input" type="date" aria-label="交易日期">
|
||
<button id="nextDate" class="icon-button" type="button" title="后一个交易日" aria-label="后一个交易日"><i data-lucide="chevron-right"></i></button>
|
||
</div>
|
||
<button id="globalSearchButton" class="icon-button global-search-button" type="button" title="全局搜索(Ctrl+K)" aria-label="全局搜索"><i data-lucide="search"></i></button>
|
||
<button id="themeToggle" class="icon-button theme-toggle" type="button" title="切换到夜间模式" aria-label="切换到夜间模式" aria-pressed="false"><i data-lucide="moon"></i></button>
|
||
<button id="alertButton" class="icon-button alert-button" type="button" title="提醒中心" aria-label="提醒中心"><i data-lucide="bell"></i><span id="alertBadge" class="alert-badge" hidden>0</span></button>
|
||
<button id="assistantButton" class="icon-button assistant-button" type="button" title="复盘助手" aria-label="复盘助手"><i data-lucide="message-circle-more"></i></button>
|
||
<button id="headerMenuButton" class="icon-button header-menu-button" type="button" title="打开命令菜单" aria-label="打开命令菜单" aria-expanded="false" aria-controls="headerCommandGroup"><i data-lucide="ellipsis"></i></button>
|
||
<div id="headerCommandGroup" class="header-command-group">
|
||
<button id="refreshButton" class="button command-button" type="button"><i data-lucide="refresh-cw"></i><span>刷新</span></button>
|
||
<button id="syncButton" class="button primary command-button" type="button" hidden><i data-lucide="cloud-download"></i><span>后台刷新</span></button>
|
||
<button id="settingsButton" class="button command-button" type="button" hidden><i data-lucide="settings-2"></i><span>系统管理</span></button>
|
||
<div class="account-menu-shell">
|
||
<div id="accountRoleBadges" class="account-role-badges" aria-label="账号身份">
|
||
<span id="accountAdminBadge" class="account-role-badge admin-role-badge" hidden><i data-lucide="shield-check"></i><span>管理员</span></span>
|
||
<button id="accountVipBadge" class="account-role-badge vip-role-badge" type="button" title="查看会员状态" hidden><b aria-hidden="true">V</b><span id="accountVipLabel">非会员</span></button>
|
||
</div>
|
||
<button id="accountButton" class="button account-button command-button" type="button" title="账号菜单" aria-haspopup="menu" aria-expanded="false" aria-controls="accountDropdown"><i data-lucide="circle-user-round"></i><span id="accountName">--</span><i class="account-menu-chevron" data-lucide="chevron-down"></i></button>
|
||
<div id="accountDropdown" class="account-dropdown" role="menu" hidden>
|
||
<div class="account-dropdown-head"><strong id="accountMenuName">--</strong><span id="accountMenuRole">普通用户</span></div>
|
||
<button type="button" role="menuitem" data-account-panel="profile"><i data-lucide="user-round"></i><span>个人资料</span><i data-lucide="chevron-right"></i></button>
|
||
<button type="button" role="menuitem" data-account-panel="membership"><i data-lucide="badge-check"></i><span>会员状态</span><i data-lucide="chevron-right"></i></button>
|
||
<button type="button" role="menuitem" data-account-panel="password"><i data-lucide="key-round"></i><span>修改密码</span><i data-lucide="chevron-right"></i></button>
|
||
<div class="account-dropdown-separator"></div>
|
||
<button id="switchAccountMenuButton" type="button" role="menuitem"><i data-lucide="repeat-2"></i><span>切换账号</span></button>
|
||
<button id="logoutMenuButton" class="account-menu-danger" type="button" role="menuitem"><i data-lucide="log-out"></i><span>退出</span></button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</header>
|
||
|
||
<nav class="module-nav sidebar" aria-label="复盘模块">
|
||
<div class="sidebar-brand brand">
|
||
<div class="sidebar-brand-mark logo" aria-hidden="true">复</div>
|
||
<strong>小白复盘</strong>
|
||
</div>
|
||
<div class="nav-group market-nav-group">
|
||
<div class="nav-group-label">市场复盘</div>
|
||
<button class="module-tab market-sub-tab" type="button" data-view="sentimentCycleView" title="情绪周期"><i data-lucide="activity"></i><span>情绪周期</span></button>
|
||
<button class="module-tab active mobile-primary-tab" type="button" data-view="limitPool" title="涨停池"><i data-lucide="flame"></i><span class="nav-label-desktop">涨停池</span><span class="nav-label-mobile">行情</span></button>
|
||
<button class="module-tab market-sub-tab" type="button" data-view="brokenView" title="炸板池"><i data-lucide="bomb"></i><span>炸板池</span></button>
|
||
<button class="module-tab market-sub-tab" type="button" data-view="downView" title="跌停板"><i data-lucide="trending-down"></i><span>跌停板</span></button>
|
||
<button class="module-tab market-sub-tab" type="button" data-view="yesterdayView" title="昨日涨停"><i data-lucide="history"></i><span>昨日涨停</span></button>
|
||
<button class="module-tab market-sub-tab" type="button" data-view="performanceView" title="涨停表现"><i data-lucide="chart-no-axes-combined"></i><span>涨停表现</span></button>
|
||
<button class="module-tab market-sub-tab" type="button" data-view="ladderView" title="市场天梯"><i data-lucide="layers-3"></i><span>市场天梯</span></button>
|
||
<button class="module-tab market-sub-tab" type="button" data-view="rotationView" title="板块轮动"><i data-lucide="refresh-cw"></i><span>板块轮动</span></button>
|
||
<button class="module-tab market-sub-tab" type="button" data-view="auctionView" title="集合竞价"><i data-lucide="timer-reset"></i><span>集合竞价</span></button>
|
||
<button class="module-tab market-sub-tab" type="button" data-view="themeLibraryView" title="题材库"><i data-lucide="library-big"></i><span>题材库</span></button>
|
||
<button class="module-tab market-sub-tab" type="button" data-view="popularityView" title="人气热榜"><i data-lucide="chart-no-axes-column-increasing"></i><span>人气热榜</span></button>
|
||
<button class="module-tab market-sub-tab" type="button" data-view="dragonView" title="龙虎榜"><i data-lucide="list-tree"></i><span>龙虎榜</span></button>
|
||
</div>
|
||
<div class="nav-group tool-nav-group">
|
||
<div class="nav-group-label">智能工具</div>
|
||
<button class="module-tab mobile-primary-tab" type="button" data-view="screenerView" title="智能选股"><i data-lucide="search-check"></i><span>智能选股</span></button>
|
||
<button class="module-tab mobile-primary-tab" type="button" data-view="mentorView" title="问师"><i data-lucide="messages-square"></i><span>问师</span></button>
|
||
<button class="module-tab mobile-primary-tab" type="button" data-view="heavenView" title="问天"><i data-lucide="sparkles"></i><span>问天</span></button>
|
||
</div>
|
||
<div class="nav-group personal-nav-group">
|
||
<div class="nav-group-label">个人</div>
|
||
<button class="module-tab mobile-primary-tab" type="button" data-view="reviewWorkspaceView" title="我的复盘"><i data-lucide="notebook-pen"></i><span class="nav-label-desktop">我的复盘</span><span class="nav-label-mobile">复盘</span></button>
|
||
</div>
|
||
<button id="sidebarCollapseButton" class="sidebar-collapse-button" type="button" title="收起侧栏" aria-label="收起侧栏" aria-expanded="true"><i data-lucide="panel-left-close"></i><span>收起侧栏</span></button>
|
||
</nav>
|
||
|
||
<main class="app-main">
|
||
<label id="mobileMarketSelector" class="mobile-market-selector" hidden>
|
||
<span><i data-lucide="layout-dashboard"></i><b>行情视图</b></span>
|
||
<select id="mobileMarketViewSelect" aria-label="选择行情视图">
|
||
<option value="sentimentCycleView">情绪周期</option>
|
||
<option value="limitPool">涨停池</option>
|
||
<option value="brokenView">炸板池</option>
|
||
<option value="downView">跌停板</option>
|
||
<option value="yesterdayView">昨日涨停</option>
|
||
<option value="performanceView">涨停表现</option>
|
||
<option value="ladderView">市场天梯</option>
|
||
<option value="rotationView">板块轮动</option>
|
||
<option value="auctionView">集合竞价</option>
|
||
<option value="themeLibraryView">题材库</option>
|
||
<option value="popularityView">人气热榜</option>
|
||
<option value="dragonView">龙虎榜</option>
|
||
</select>
|
||
<i data-lucide="chevron-down" aria-hidden="true"></i>
|
||
</label>
|
||
<section class="overview-strip mktstrip" aria-label="当日复盘指标" data-overview-expanded="false">
|
||
<div class="row">
|
||
<div class="sentiment-block">
|
||
<div class="sentiment-gauge" id="sentimentGauge">
|
||
<span id="sentimentScore">--</span>
|
||
</div>
|
||
<div>
|
||
<span class="metric-label">市场情绪</span>
|
||
<strong id="sentimentText" class="sentiment-text">等待数据</strong>
|
||
</div>
|
||
</div>
|
||
<div class="metric">
|
||
<span class="metric-label">涨停</span>
|
||
<strong id="limitUpMetric" class="metric-value up">--</strong>
|
||
</div>
|
||
<div class="metric">
|
||
<span class="metric-label">跌停</span>
|
||
<strong id="limitDownMetric" class="metric-value down">--</strong>
|
||
</div>
|
||
<div class="metric">
|
||
<span class="metric-label">炸板</span>
|
||
<strong id="brokenMetric" class="metric-value warning">--</strong>
|
||
</div>
|
||
<div class="metric">
|
||
<span class="metric-label">封板率</span>
|
||
<strong id="sealRateMetric" class="metric-value">--</strong>
|
||
</div>
|
||
<div class="metric">
|
||
<span class="metric-label">两市成交</span>
|
||
<strong id="amountMetric" class="metric-value">--</strong>
|
||
</div>
|
||
<div class="metric metric-wide">
|
||
<span class="metric-label">数据日期</span>
|
||
<strong id="dataDateMetric" class="metric-value small">--</strong>
|
||
</div>
|
||
<button id="overviewToggle" class="overview-toggle" type="button" aria-expanded="false" title="展开市场详情">
|
||
<span>展开详情</span><i data-lucide="chevron-down" aria-hidden="true"></i>
|
||
</button>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="limitPool" class="workspace-view page active-view redesigned-pool-view">
|
||
<div class="section-toolbar lad-head redesigned-page-head pool-page-head">
|
||
<div class="section-title-group">
|
||
<h2>涨停池</h2>
|
||
<span id="limitPoolSubtitle" class="section-subtitle">0 只 · 数据日期 --</span>
|
||
<span id="resultCount" class="visually-hidden">0 只</span>
|
||
</div>
|
||
<div class="toolbar-controls">
|
||
<div class="segmented seg pool-filter-segments" role="group" aria-label="连板筛选">
|
||
<button type="button" class="segment active" data-filter="all">全部 <span id="limitAllCount">0</span></button>
|
||
<button type="button" class="segment" data-filter="1">首板 <span id="limitFirstCount">0</span></button>
|
||
<button type="button" class="segment" data-filter="2">2板 <span id="limitSecondCount">0</span></button>
|
||
<button type="button" class="segment" data-filter="3">3板+ <span id="limitThreePlusCount">0</span></button>
|
||
</div>
|
||
<label class="search search-field pool-search-field">
|
||
<span class="visually-hidden">搜索股票</span>
|
||
<i data-lucide="search" aria-hidden="true"></i>
|
||
<input id="stockSearch" type="search" placeholder="搜索代码 / 名称 / 板块">
|
||
</label>
|
||
<button id="exportButton" class="button btn" type="button">导出 CSV</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="main-grid redesigned-pool-grid">
|
||
<div class="table-frame card tbl-wrap redesigned-card pool-table-card">
|
||
<table class="data-table tbl" id="limitTable">
|
||
<thead>
|
||
<tr>
|
||
<th class="row-number num" aria-label="序号">序号</th>
|
||
<th data-sort="name">股票</th>
|
||
<th class="number num sortable" data-sort="streak">连板<span class="arr">↕</span></th>
|
||
<th class="number num sortable" data-sort="change">涨幅(%)<span class="arr">↕</span></th>
|
||
<th class="number num sortable" data-sort="price">价格(元)<span class="arr">↕</span></th>
|
||
<th data-sort="sector">所属板块</th>
|
||
<th class="number num sortable" data-sort="first_time">首封<span class="arr">↕</span></th>
|
||
<th class="number num sortable" data-sort="last_time">最后封板<span class="arr">↕</span></th>
|
||
<th class="number num sortable" data-sort="open_times">开板(次)<span class="arr">↕</span></th>
|
||
<th class="number num sortable" data-sort="turnover_rate">换手率(%)<span class="arr">↕</span></th>
|
||
<th class="number num sortable" data-sort="amount_billion">成交额(亿)<span class="arr">↕</span></th>
|
||
<th class="number num sortable" data-sort="seal_amount_million">封单额(万)<span class="arr">↕</span></th>
|
||
<th class="reason-column">涨停原因</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody id="limitTableBody"></tbody>
|
||
</table>
|
||
<div id="emptyState" class="empty-state" hidden>没有符合条件的股票</div>
|
||
</div>
|
||
|
||
<aside class="insight-rail pool-insight-rail" aria-label="连板与板块概况">
|
||
<section class="rail-section card redesigned-card">
|
||
<div class="rail-heading card-h redesigned-card-head">
|
||
<h3>连板高度</h3>
|
||
<span id="maxHeight">--</span>
|
||
</div>
|
||
<div id="ladderMini" class="ladder-mini pool-side-list"></div>
|
||
</section>
|
||
<section class="rail-section card redesigned-card">
|
||
<div class="rail-heading card-h redesigned-card-head">
|
||
<h3>热点板块</h3>
|
||
<button class="text-button" type="button" data-open-view="rotationView">查看轮动</button>
|
||
</div>
|
||
<div id="sectorMini" class="sector-mini pool-hot-list"></div>
|
||
</section>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="brokenView" class="workspace-view page redesigned-broken-view">
|
||
<div class="section-toolbar lad-head redesigned-page-head broken-page-head">
|
||
<div class="section-title-group">
|
||
<h2>炸板池</h2>
|
||
<span class="section-subtitle"><b id="brokenCount">0 只</b><span id="brokenMeta"> · 触及涨停后未能封住 · 数据日期 --</span></span>
|
||
</div>
|
||
<div class="toolbar-controls">
|
||
<label class="pool-search-field broken-search-field">
|
||
<i data-lucide="search" aria-hidden="true"></i>
|
||
<span class="visually-hidden">搜索炸板股票</span>
|
||
<input id="brokenSearch" type="search" placeholder="搜索代码/名称/板块" autocomplete="off">
|
||
</label>
|
||
<button id="brokenExportButton" class="button broken-export-button" type="button">导出 CSV</button>
|
||
</div>
|
||
</div>
|
||
<div class="table-frame card tbl-wrap phase-table-frame broken-table-card">
|
||
<table id="brokenTable" class="data-table tbl">
|
||
<thead>
|
||
<tr>
|
||
<th class="row-number num">序号</th>
|
||
<th>股票</th>
|
||
<th class="number num sortable" data-broken-sort="change">现价涨幅(%)<span class="arr">↕</span></th>
|
||
<th class="number num sortable" data-auto-sort="true">距涨停(%)<span class="arr">↕</span></th>
|
||
<th class="number num sortable" data-auto-sort="true">价格(元)<span class="arr">↕</span></th>
|
||
<th>所属板块</th>
|
||
<th class="number num sortable" data-auto-sort="true">首次触板<span class="arr">↕</span></th>
|
||
<th class="number num sortable" data-broken-sort="open_times">开板(次)<span class="arr">↕</span></th>
|
||
<th class="number num sortable" data-broken-sort="turnover_rate">换手率(%)<span class="arr">↕</span></th>
|
||
<th class="number num sortable" data-broken-sort="amount_billion">成交额(亿)<span class="arr">↕</span></th>
|
||
<th class="reason-column">炸板原因</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody id="brokenTableBody"></tbody>
|
||
</table>
|
||
<div id="brokenEmptyState" class="empty-state" hidden>无匹配标的</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="downView" class="workspace-view page redesigned-down-view">
|
||
<div class="section-toolbar lad-head redesigned-page-head down-page-head">
|
||
<div class="section-title-group">
|
||
<h2>跌停板</h2>
|
||
<span class="section-subtitle"><b id="downCount">0 只</b><span id="downMeta"> · 观察退潮、高位风险与亏钱效应 · 数据日期 --</span></span>
|
||
</div>
|
||
<div class="toolbar-controls">
|
||
<span id="downSectorCluster" class="down-sector-cluster" hidden></span>
|
||
<label class="pool-search-field down-search-field">
|
||
<i data-lucide="search" aria-hidden="true"></i>
|
||
<span class="visually-hidden">搜索跌停股票</span>
|
||
<input id="downSearch" type="search" placeholder="搜索代码/名称/板块" autocomplete="off">
|
||
</label>
|
||
<button id="downExportButton" class="button down-export-button" type="button">导出 CSV</button>
|
||
</div>
|
||
</div>
|
||
<div class="table-frame card tbl-wrap down-table-card">
|
||
<table id="downTable" class="data-table tbl">
|
||
<thead>
|
||
<tr>
|
||
<th class="row-number num">序号</th>
|
||
<th>股票</th>
|
||
<th class="number num sortable" data-down-sort="change">跌幅(%)<span class="arr">↕</span></th>
|
||
<th class="number num sortable" data-auto-sort="true">价格(元)<span class="arr">↕</span></th>
|
||
<th>所属板块</th>
|
||
<th class="number num sortable" data-down-sort="turnover_rate">换手率(%)<span class="arr">↕</span></th>
|
||
<th class="number num sortable" data-down-sort="amount_billion">成交额(亿)<span class="arr">↕</span></th>
|
||
<th class="number num sortable" data-auto-sort="true">连续跌停(天)<span class="arr">↕</span></th>
|
||
<th class="reason-column">风险线索</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody id="downTableBody"></tbody>
|
||
</table>
|
||
<div id="downEmptyState" class="empty-state" hidden>无匹配标的</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="yesterdayView" class="workspace-view page redesigned-yesterday-view">
|
||
<div class="section-toolbar lad-head redesigned-page-head yesterday-page-head">
|
||
<div class="section-title-group">
|
||
<h2>昨日涨停表现</h2>
|
||
<span class="section-subtitle"><b id="yesterdayCount">0 只</b><span id="yesterdayMeta"> · 昨日 -- → 今日 --</span></span>
|
||
</div>
|
||
<div class="toolbar-controls">
|
||
<label class="pool-search-field yesterday-search-field">
|
||
<i data-lucide="search" aria-hidden="true"></i>
|
||
<span class="visually-hidden">搜索昨日涨停股票</span>
|
||
<input id="yesterdaySearch" type="search" placeholder="搜索代码/名称/板块" autocomplete="off">
|
||
</label>
|
||
<button id="yesterdayExportButton" class="button yesterday-export-button" type="button">导出 CSV</button>
|
||
</div>
|
||
</div>
|
||
<section class="yesterday-table-card">
|
||
<div id="yesterdayResultSummary" class="yesterday-result-summary" role="group" aria-label="昨日涨停结果筛选">
|
||
<button class="yesterday-summary-cell active" type="button" data-yesterday-filter="all" aria-pressed="true">
|
||
<span class="summary-label">全部</span><strong><b id="yesterdayAllCount">0</b> <small>只</small></strong><em>点击各格可筛选</em>
|
||
</button>
|
||
<button class="yesterday-summary-cell" type="button" data-yesterday-filter="advance" aria-pressed="false">
|
||
<span class="summary-label"><i class="yesterday-outcome-tag advance">晋级</i></span><strong class="up"><b id="yesterdayAdvanceCount">0</b> <small>只</small></strong><em id="yesterdayAdvanceRate">晋级率 0.0%</em>
|
||
</button>
|
||
<button class="yesterday-summary-cell" type="button" data-yesterday-filter="positive" aria-pressed="false">
|
||
<span class="summary-label"><i class="yesterday-outcome-tag positive">红盘</i></span><strong class="up"><b id="yesterdayPositiveCount">0</b> <small>只</small></strong><em id="yesterdayPositiveRate">兑现率 0.0%</em>
|
||
</button>
|
||
<button class="yesterday-summary-cell" type="button" data-yesterday-filter="fail" aria-pressed="false">
|
||
<span class="summary-label"><i class="yesterday-outcome-tag fail">断板</i></span><strong><b id="yesterdayFailCount">0</b> <small>只</small></strong><em id="yesterdayFailRate">占 0.0%</em>
|
||
</button>
|
||
<button class="yesterday-summary-cell" type="button" data-yesterday-filter="risk" aria-pressed="false">
|
||
<span class="summary-label"><i class="yesterday-outcome-tag broken">炸板</i><span>+</span><i class="yesterday-outcome-tag down">跌停</i></span><strong class="down"><b id="yesterdayRiskCount">0</b> <small>只</small></strong><em id="yesterdayRiskRate">亏钱效应 0.0%</em>
|
||
</button>
|
||
</div>
|
||
<div class="table-frame card tbl-wrap yesterday-table-scroll">
|
||
<table id="yesterdayTable" class="data-table tbl">
|
||
<thead>
|
||
<tr>
|
||
<th class="row-number num">序号</th>
|
||
<th>股票</th>
|
||
<th class="number num sortable" data-yesterday-sort="prior_streak">昨日高度(板)<span class="arr">↕</span></th>
|
||
<th class="number num sortable" data-yesterday-sort="current_change">今日涨幅(%)<span class="arr">↕</span></th>
|
||
<th>今日结果</th>
|
||
<th class="number num sortable" data-auto-sort="true">当前高度(板)<span class="arr">↕</span></th>
|
||
<th>所属板块</th>
|
||
<th class="reason-column">涨停逻辑</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody id="yesterdayTableBody"></tbody>
|
||
</table>
|
||
<div id="yesterdayEmptyState" class="empty-state" hidden>当前筛选下无标的</div>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
|
||
<section id="performanceView" class="workspace-view page redesigned-performance-view">
|
||
<div class="section-toolbar lad-head redesigned-page-head performance-page-head">
|
||
<div class="section-title-group">
|
||
<h2>涨停表现</h2>
|
||
<span class="section-subtitle">昨日梯队今日晋级率 + 市场宽度 · <b id="performanceDateRange">--</b></span>
|
||
</div>
|
||
</div>
|
||
<div id="performanceCards" class="performance-cards perf-cards"></div>
|
||
<div class="performance-insight-grid">
|
||
<section class="performance-panel-card market-breadth-panel card" aria-labelledby="marketBreadthTitle">
|
||
<div class="performance-panel-head">
|
||
<h3 id="marketBreadthTitle">市场宽度</h3>
|
||
<span id="breadthDataTime" class="performance-date-tag">--</span>
|
||
</div>
|
||
<div class="performance-width-box">
|
||
<div class="performance-width-summary">
|
||
<span>上涨 <b id="breadthUpCount" class="up">--</b> 家</span>
|
||
<span>红盘 <b id="breadthRatio" class="up">--</b></span>
|
||
<span>下跌 <b id="breadthDownCount" class="down">--</b> 家</span>
|
||
</div>
|
||
<div class="performance-width-bar" aria-label="上涨、平盘与下跌家数分布">
|
||
<i id="breadthUpBar" class="breadth-up"></i><i id="breadthFlatBar" class="breadth-flat"></i><i id="breadthDownBar" class="breadth-down"></i>
|
||
</div>
|
||
<div class="performance-width-legend">
|
||
<span><i class="up-swatch"></i>上涨 <b id="breadthUpLegend">--</b></span>
|
||
<span id="breadthFlatLegendItem"><i class="flat-swatch"></i>平盘 <b id="breadthFlatLegend">--</b></span>
|
||
<span><i class="down-swatch"></i>下跌 <b id="breadthDownLegend">--</b></span>
|
||
<span id="breadthWarning" class="performance-width-warning">--</span>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section class="performance-panel-card performance-conclusion-card card" aria-labelledby="performanceConclusionTitle">
|
||
<div class="performance-panel-head">
|
||
<h3 id="performanceConclusionTitle">今日结论</h3>
|
||
<span class="performance-date-tag">自动生成</span>
|
||
</div>
|
||
<div id="performanceConclusion" class="performance-conclusion"><div class="empty-state">暂无可用结论</div></div>
|
||
</section>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="sentimentCycleView" class="workspace-view page redesigned-sentiment-view">
|
||
<div class="section-toolbar lad-head sentiment-cycle-toolbar redesigned-page-head">
|
||
<div class="section-title-group">
|
||
<h2>情绪周期</h2>
|
||
<span class="section-subtitle">用温度与阶段读懂市场情绪 · <b id="sentimentHistoryDateRange">--</b></span>
|
||
</div>
|
||
<div class="toolbar-controls">
|
||
<div class="segmented sentiment-range-selector" role="group" aria-label="统计交易日范围">
|
||
<button class="segment sentiment-range-button" type="button" data-sentiment-range="10">10日</button>
|
||
<button class="segment sentiment-range-button active" type="button" data-sentiment-range="20">20日</button>
|
||
<button class="segment sentiment-range-button" type="button" data-sentiment-range="60">60日</button>
|
||
</div>
|
||
<button id="sentimentExportButton" class="button" type="button">导出 CSV</button>
|
||
</div>
|
||
</div>
|
||
<div id="sentimentHistoryNotice" class="inline-notice" hidden></div>
|
||
<div class="sentiment-cycle-analysis emo-grid redesigned-emotion-grid">
|
||
<div class="sentiment-analysis-main">
|
||
<section class="sentiment-trend-panel card redesigned-card">
|
||
<div class="workspace-heading card-h redesigned-card-head"><h3>温度走势</h3><span id="sentimentPeriodNote">连续交易日情绪温度与阶段转折</span><span id="sentimentCurrentTag" class="sentiment-current-tag">--</span></div>
|
||
<div class="sentiment-chart-legend" aria-hidden="true"><span class="temperature-line">情绪温度</span><span class="retreat-point">退潮 / 冰点</span><span class="repair-point">修复转折</span><span class="temperature-average">五日均线</span></div>
|
||
<div class="sentiment-chart-shell">
|
||
<canvas id="sentimentTrendChart" aria-label="市场情绪温度走势图"></canvas>
|
||
<div id="sentimentChartTooltip" class="sentiment-chart-tooltip" hidden></div>
|
||
</div>
|
||
</section>
|
||
<section class="sentiment-stage-guide card redesigned-card" aria-labelledby="sentimentStageGuideTitle">
|
||
<div class="workspace-heading card-h redesigned-card-head"><h3 id="sentimentStageGuideTitle">判定口径</h3><span>温度 + 结构共同判定</span></div>
|
||
<div class="sentiment-stage-guide-head" aria-hidden="true"><span>阶段</span><span>典型特征</span><span>温度区间</span><span>策略取向</span></div>
|
||
<div class="sentiment-stage-guide-grid">
|
||
<article data-sentiment-stage="冰点"><strong>冰点</strong><span>涨停稀少、跌停成堆、高度显著压缩</span><span class="stage-range">低于 25</span><small>抗跌先手,允许无结果</small></article>
|
||
<article data-sentiment-stage="修复"><strong>修复</strong><span>风险收敛、温度从低位有效回升</span><span class="stage-range">25+ 且回升</span><small>修复先锋,小仓试错</small></article>
|
||
<article data-sentiment-stage="发酵"><strong>发酵</strong><span>主线清晰、梯队成型、连续转强</span><span class="stage-range">45+ 且连续确认</span><small>主线跟随</small></article>
|
||
<article data-sentiment-stage="高潮"><strong>高潮</strong><span>温度、赚钱效应与涨停生态共振</span><span class="stage-range">80+ 且生态达标</span><small>核心去后排</small></article>
|
||
<article data-sentiment-stage="分化"><strong>分化</strong><span>高低切换、炸板增多、主线内部分歧</span><span class="stage-range">45+ 且结构转弱</span><small>承接回流</small></article>
|
||
<article data-sentiment-stage="退潮"><strong>退潮</strong><span>温度或系统健康度继续走弱</span><span class="stage-range">低于 45 且走弱</span><small>防守观察</small></article>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
<aside class="sentiment-analysis-rail">
|
||
<section class="sentiment-cycle-summary card redesigned-card" aria-label="最新情绪状态">
|
||
<div class="workspace-heading card-h redesigned-card-head"><h3>当前阶段</h3><span class="sentiment-auto-tag">自动识别</span></div>
|
||
<div class="sentiment-phase-block">
|
||
<div id="sentimentCycleScoreMarker" class="sentiment-current-phase-badge">
|
||
<strong id="sentimentCyclePhase">--</strong>
|
||
<span id="sentimentPhaseConfidence">置信度 --</span>
|
||
</div>
|
||
<div class="sentiment-phase-info">
|
||
<p>温度 <b id="sentimentCycleScore">--</b>,较前日 <b id="sentimentDayChange">--</b> · <span id="sentimentCycleDirection">--</span> · 封板率 <b id="sentimentSealRate">--</b> · 涨停 <b id="sentimentLimitUp">--</b> / 炸板 <b id="sentimentBroken">--</b></p>
|
||
<div id="sentimentPhaseAdvice" class="sentiment-phase-advice">等待市场结构完成判定。</div>
|
||
</div>
|
||
</div>
|
||
<div class="sentiment-feedback-strip">
|
||
<span>昨日涨停反馈 <strong id="sentimentPreviousPositive">--</strong><small id="sentimentPreviousAverage">--</small></span>
|
||
<span>统计样本 <strong id="sentimentHistoryDays">--</strong><small id="sentimentNormalization">--</small></span>
|
||
</div>
|
||
<span id="sentimentCycleLabel" hidden>--</span><span id="sentimentCycleDate" hidden>--</span>
|
||
</section>
|
||
<section class="sentiment-components-panel card redesigned-card">
|
||
<div class="workspace-heading card-h redesigned-card-head"><h3>评分构成</h3><span id="sentimentComponentSummary">五维加权</span></div>
|
||
<div id="sentimentComponentList" class="sentiment-component-list"></div>
|
||
</section>
|
||
</aside>
|
||
</div>
|
||
<div class="section-toolbar sentiment-detail-toolbar">
|
||
<div class="section-title-group"><h2>交易日明细</h2><span class="section-subtitle">涨停梯队与昨日反馈</span></div>
|
||
</div>
|
||
<div class="table-frame card tbl-wrap sentiment-history-frame">
|
||
<table class="data-table tbl sentiment-history-table">
|
||
<colgroup>
|
||
<col class="sentiment-col-date"><col class="sentiment-col-score"><col class="sentiment-col-phase"><col class="sentiment-col-direction">
|
||
<col class="sentiment-col-count"><col class="sentiment-col-count"><col class="sentiment-col-count"><col class="sentiment-col-count"><col class="sentiment-col-height">
|
||
<col class="sentiment-col-count"><col class="sentiment-col-count">
|
||
<col class="sentiment-col-feedback"><col class="sentiment-col-feedback"><col class="sentiment-col-rate">
|
||
</colgroup>
|
||
<thead>
|
||
<tr class="sentiment-history-groups">
|
||
<th colspan="4" class="group-state">情绪状态</th>
|
||
<th colspan="5" class="group-ladder">涨停结构</th>
|
||
<th colspan="2" class="group-risk">风险释放</th>
|
||
<th colspan="3" class="group-feedback">昨日反馈</th>
|
||
</tr>
|
||
<tr class="sentiment-history-columns">
|
||
<th>交易日</th><th class="num sortable">温度<span class="arr">↕</span></th><th>阶段</th><th>方向</th>
|
||
<th class="num sortable">涨停(只)<span class="arr">↕</span></th><th class="num sortable">首板(只)<span class="arr">↕</span></th><th class="num sortable">二板(只)<span class="arr">↕</span></th><th class="num sortable">三板+(只)<span class="arr">↕</span></th><th class="num sortable">高度(板)<span class="arr">↕</span></th>
|
||
<th class="num sortable">炸板(只)<span class="arr">↕</span></th><th class="num sortable">跌停(只)<span class="arr">↕</span></th><th class="num sortable">昨涨停(只)<span class="arr">↕</span></th><th class="num sortable">昨红盘(只)<span class="arr">↕</span></th><th class="num sortable">红盘率(%)<span class="arr">↕</span></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody id="sentimentHistoryBody"></tbody>
|
||
</table>
|
||
<div id="sentimentHistoryEmpty" class="empty-state">尚无连续交易日数据</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="heavenView" class="workspace-view member-feature-view heaven-shell wt">
|
||
<div class="member-gate" hidden><div class="member-gate-icon"><i data-lucide="lock-keyhole"></i></div><div><strong>问天仅对会员开放</strong><span>开通会员后可使用观势、观气、观心及平台解读。会员状态可从顶部账号标识进入。</span></div></div>
|
||
<header class="wt-head">
|
||
<div class="wt-title-line">
|
||
<h1 class="wt-serif">问 天</h1>
|
||
<span id="heavenDataDate">--</span>
|
||
</div>
|
||
<div class="verse wt-serif">观天之道 · 执天之行</div>
|
||
<nav class="wt-tabs" aria-label="问天模块">
|
||
<button class="wt-tab wt-serif on" type="button" data-heaven-panel="trend" aria-current="page">观势<small>三才六爻 · 量化成卦</small></button>
|
||
<button class="wt-tab wt-serif" type="button" data-heaven-panel="fortune">观气<small>五运六气 · 日辰生克</small></button>
|
||
<button class="wt-tab wt-serif" type="button" data-heaven-panel="heart">观心<small>静心占卜 · 第一念</small></button>
|
||
</nav>
|
||
</header>
|
||
<p class="heaven-proverb wt-serif">遇事不决可问春风,春风不语即随本心</p>
|
||
<div id="heavenNotice" class="inline-notice" role="status" hidden></div>
|
||
|
||
<section id="heavenTrendPanel" class="heaven-panel active-heaven-panel">
|
||
<div class="heaven-controls">
|
||
<div class="heaven-stock-query">
|
||
<label class="form-field" for="heavenStockInput"><span>股票代码或名称</span><input id="heavenStockInput" type="text" inputmode="text" maxlength="30" autocomplete="off" placeholder="例如 600000 或 浦发银行"></label>
|
||
<div id="heavenStockIdentity" class="heaven-stock-identity" aria-live="polite" hidden>
|
||
<span>当前标的:</span>
|
||
<strong id="heavenStockName">--</strong>
|
||
<span id="heavenStockTaxonomy">申万二级 ·</span>
|
||
<strong id="heavenStockSector">--</strong>
|
||
</div>
|
||
</div>
|
||
<div class="heaven-trend-actions">
|
||
<button id="loadHeavenSelectionButton" class="button" type="button">载入</button>
|
||
<button id="historyTrendButton" class="button" type="button">历史记录</button>
|
||
<button id="interpretTrendButton" class="button primary" type="button" disabled>解势</button>
|
||
</div>
|
||
</div>
|
||
<div class="cast-hint wt-serif">载入,以指数为天、行业为人、个股为地,六爻皆由行情量化而成</div>
|
||
<div class="wt-stage">
|
||
<div class="stars" id="stars" aria-hidden="true"></div>
|
||
<svg class="bagua" id="baguaSvg" width="560" height="560" viewBox="0 0 300 300" aria-hidden="true"></svg>
|
||
<div id="heavenTrendEmpty" class="wt-empty" role="status">
|
||
<div class="big wt-serif">三才六爻</div>
|
||
<p class="wt-serif">指数外显为上爻 · 内核为五爻 · 行业外显为四爻 · 内核为三爻 · 个股外显为二爻 · 内核为初爻<br>六爻皆由行情量化而成 —— 输入标的,点「载入」成卦</p>
|
||
</div>
|
||
<div class="heaven-trend-layout stage-in" hidden>
|
||
<section class="hexagram-board">
|
||
<div class="hexagram-heading">
|
||
<div><span class="metric-label">三才六爻</span><h3 id="marketHexagramName">--</h3></div>
|
||
<div class="hexagram-change"><span>动而之卦</span><strong id="marketTransformedName">--</strong></div>
|
||
</div>
|
||
<div id="marketHexagramLines" class="hexagram-lines"></div>
|
||
<p id="marketHexagramText" class="hexagram-text">--</p>
|
||
<p id="marketMovementSummary" class="market-movement-summary">--</p>
|
||
</section>
|
||
<section class="trend-reading-panel">
|
||
<div class="trend-score-line">
|
||
<div><span class="metric-label">势值</span><strong id="heavenMomentumScore">--</strong></div>
|
||
<span id="heavenMomentumLabel">--</span>
|
||
</div>
|
||
<div class="trend-score-meter" role="meter" aria-label="势值" aria-valuemin="-100" aria-valuemax="100">
|
||
<div class="trend-score-track"><i id="heavenMomentumNeedle"></i></div>
|
||
<div class="trend-score-marks"><span>-100 · 势衰</span><span>0</span><span>+100 · 势盛</span></div>
|
||
</div>
|
||
<div id="threeTalentReadings" class="three-talent-readings"></div>
|
||
<div class="heaven-hex-transition" aria-label="本卦与之卦">
|
||
<figure class="compact-hex-figure">
|
||
<div id="heavenOriginalHexLines" class="compact-hex-lines" aria-hidden="true"></div>
|
||
<figcaption><strong>本卦 · <b id="heavenOriginalHexName">--</b></strong><small id="heavenOriginalHexDetail">--</small></figcaption>
|
||
</figure>
|
||
<div class="compact-hex-change"><i aria-hidden="true">→</i><span>动而之卦</span></div>
|
||
<figure class="compact-hex-figure">
|
||
<div id="heavenChangedHexLines" class="compact-hex-lines" aria-hidden="true"></div>
|
||
<figcaption><strong>之卦 · <b id="heavenChangedHexName">--</b></strong><small id="heavenChangedHexDetail">--</small></figcaption>
|
||
</figure>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
</div>
|
||
<details id="heavenCalibrationPanel" class="heaven-calibration-panel" hidden>
|
||
<summary class="heaven-calibration-heading">
|
||
<div><span class="metric-label">量化数据安全门</span><h3 id="heavenCalibrationTitle">六爻数据校验</h3></div>
|
||
<div class="heaven-calibration-summary">
|
||
<span><i class="status-dot passed"></i>通过</span>
|
||
<span><i class="status-dot failed"></i>未通过</span>
|
||
<span><i class="status-dot manual"></i>用户补录</span>
|
||
<strong id="heavenCalibrationStatus">等待载入</strong>
|
||
<b class="fold-label">展开</b>
|
||
</div>
|
||
</summary>
|
||
<div class="calibration-body">
|
||
<p>系统只接收客观行情数据,所有补录仍按原量化公式计算阴阳与动爻。</p>
|
||
<form id="heavenCalibrationForm">
|
||
<div id="heavenLineChecks" class="heaven-line-checks" aria-live="polite"></div>
|
||
<label class="form-field calibration-note-field"><span>补录说明</span><input id="heavenCalibrationNote" type="text" maxlength="200" placeholder="可选:记录数据来源或补录原因"></label>
|
||
<div class="dialog-actions heaven-calibration-actions">
|
||
<button id="resetHeavenCalibrationButton" class="button" type="button">恢复自动数据</button>
|
||
<button id="applyHeavenCalibrationButton" class="button primary" type="submit">重新校验并成卦</button>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</details>
|
||
</section>
|
||
|
||
<section id="heavenFortunePanel" class="heaven-panel">
|
||
<div class="fortune-heading">
|
||
<div class="fortune-calendar-heading"><span id="fortuneLunarDate" class="metric-label">--</span><h3 id="fortunePillars" class="wt-serif">--</h3></div>
|
||
<div class="fortune-heading-actions">
|
||
<label class="qi-time-field"><span>观测日期</span><input id="qiObservationDate" type="date"></label>
|
||
<button id="historyFortuneButton" class="button" type="button">历史记录</button>
|
||
<button id="interpretFortuneButton" class="button primary" type="button" disabled>解运</button>
|
||
</div>
|
||
</div>
|
||
<div class="fortune-stage">
|
||
<div class="stars" id="fortuneStars" aria-hidden="true"></div>
|
||
<svg class="bagua fortune-bagua" id="fortuneBagua" width="560" height="560" viewBox="0 0 300 300" aria-hidden="true"></svg>
|
||
<section class="qi-climate-panel">
|
||
<span class="qi-section-mark">壹 · 天</span>
|
||
<p class="qi-climate-caption wt-serif">今日气候</p>
|
||
<h3 id="qiClimateKeyword" class="wt-serif">气机待察</h3>
|
||
<strong id="qiClimateTone" class="wt-serif">--</strong>
|
||
<p id="humanFieldSummary" class="human-field-summary">--</p>
|
||
</section>
|
||
<aside class="fortune-basics">
|
||
<section class="qi-framework-panel">
|
||
<div class="workspace-heading"><div><span>贰 · 气</span><h3 class="wt-serif">三层气机</h3></div><button class="text-fold-button" type="button" data-fold-target="qiFrameworkLayers">收起</button></div>
|
||
<p id="qiFrameworkPrinciple" class="qi-framework-principle">--</p>
|
||
<div id="qiFrameworkLayers" class="qi-framework-layers"></div>
|
||
</section>
|
||
<section class="personal-fortune-panel">
|
||
<div class="workspace-heading"><div><span>叁 · 人</span><h3 class="wt-serif">个人合参</h3></div></div>
|
||
<div id="personalProfileEmpty" class="personal-profile-empty"><span>当前账号尚未设置个人命理资料</span></div>
|
||
<div id="personalFortuneResult" class="personal-fortune-result" hidden></div>
|
||
</section>
|
||
</aside>
|
||
</div>
|
||
<details id="fortuneSectorCatalog" class="fortune-sector-catalog">
|
||
<summary>
|
||
<span><small>五行取象</small><strong class="wt-serif">五行对应行业</strong></span>
|
||
<span class="fortune-sector-summary-hint">展开查看全部行业 <i aria-hidden="true">⌄</i></span>
|
||
</summary>
|
||
<div id="fortuneSectorGroups" class="fortune-sector-groups"></div>
|
||
</details>
|
||
<p id="fortuneNotice" class="heaven-footnote"></p>
|
||
<div class="wentian-legacy-hooks" hidden aria-hidden="true">
|
||
<canvas id="qiFieldCanvas"></canvas>
|
||
<div id="heavenIndexStrip"></div><div id="heavenTrendEvidence"></div>
|
||
<div id="fortuneMetrics"></div><div id="fivePhaseBalance"></div>
|
||
<div id="humanEmotionList"></div><div id="humanBiasList"></div><div id="humanOperation"></div><div id="humanBalanceActions"></div>
|
||
<div id="phaseSectorTitle"></div><div id="phaseSectorContext"></div>
|
||
<div id="qiUseMap"><div id="qiUseSources"></div><svg id="qiUseConnections"></svg><div id="phaseSectorList"></div></div>
|
||
<button id="openPersonalSettingsButton" type="button"></button>
|
||
<details id="sectorPhaseManager"><summary>归类管理</summary><form id="sectorPhaseForm"><input id="sectorPhaseName"><select id="sectorPhaseElement"><option value="木">木</option></select><button type="submit">保存</button></form><div id="sectorPhaseOverrides"></div></details>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="heavenHeartPanel" class="heaven-panel">
|
||
<div class="heart-journey" aria-label="观心进程">
|
||
<span class="active" data-heart-step="intro"><i>一</i>静心</span><b></b>
|
||
<span data-heart-step="breathing"><i>二</i>呼吸</span><b></b>
|
||
<span data-heart-step="casting"><i>三</i>起卦</span><b></b>
|
||
<span data-heart-step="reveal"><i>四</i>察念</span><b></b>
|
||
<span data-heart-step="interpretation"><i>五</i>解卦</span>
|
||
</div>
|
||
<div class="heart-stage-shell">
|
||
<canvas id="heartDustCanvas" hidden></canvas><div id="heartLamp" hidden></div><div id="heartRitualCurtain" hidden></div><div id="heartLineTexts" hidden></div>
|
||
<div class="stars" id="heartStars" aria-hidden="true"></div>
|
||
<svg class="bagua heart-bagua" id="heartBagua" width="560" height="560" viewBox="0 0 300 300" aria-hidden="true"></svg>
|
||
<div id="heartWhispers" class="heart-whispers" aria-hidden="true"></div>
|
||
<div class="heart-toolbar-controls">
|
||
<button id="historyHeartButton" class="button" type="button">历史记录</button>
|
||
<button id="heartSoundToggle" class="button" type="button" aria-pressed="false">静音</button>
|
||
</div>
|
||
<div id="heartIntro" class="heart-stage active-heart-stage">
|
||
<div class="heart-stage-inner">
|
||
<span class="heart-stage-index heart-rise" data-heart-delay="0">观心 · 一</span>
|
||
<h3 class="heart-rise wt-serif" data-heart-delay="420">把所问之事留在心里</h3>
|
||
<div class="heart-guidance heart-rise" data-heart-delay="900">
|
||
<p>只问一事,不必说出来。</p>
|
||
<p>心里默念它发生的对象与时间。</p>
|
||
<p>不求一个喜欢的答案,只看自己真正担心什么。</p>
|
||
</div>
|
||
<blockquote class="heart-motto heart-rise wt-serif" data-heart-delay="1500">遇事不决可问春风,春风不语即随本心</blockquote>
|
||
<button id="startBreathingButton" class="button primary heart-rise" data-heart-delay="2200" type="button">开始静心</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="heartBreathing" class="heart-stage">
|
||
<button class="button heart-return-button" type="button" data-heart-return>← 返回</button>
|
||
<div class="heart-stage-inner breathing-stage">
|
||
<span class="heart-stage-index">观心 · 二</span>
|
||
<div id="breathingScene" class="breathing-scene" data-phase="prepare">
|
||
<div class="heart-breath-ripple" aria-hidden="true"><span></span><span></span><span></span><i></i></div>
|
||
<b id="breathingPhase" class="breathing-phase" role="status" aria-live="polite">静</b>
|
||
</div>
|
||
<h3 id="breathingPrompt" class="wt-serif">放松片刻,准备呼吸</h3>
|
||
<div class="heart-incense" aria-hidden="true"><i id="heartIncenseEmber"></i></div>
|
||
<button id="beginCastingButton" class="button primary" type="button" disabled>静心完成,开始起卦</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="heartCasting" class="heart-stage">
|
||
<button class="button heart-return-button" type="button" data-heart-return>← 返回</button>
|
||
<div class="heart-casting-layout">
|
||
<section class="heart-hexagram-shell">
|
||
<div class="workspace-heading"><h3 class="wt-serif">从初爻起</h3><span id="castingProgress">0 / 6</span></div>
|
||
<div id="heartCastingLines" class="hexagram-lines ritual-lines"></div>
|
||
</section>
|
||
<section class="casting-action-panel">
|
||
<span class="heart-stage-index">观心 · 三</span>
|
||
<div id="coinResult" class="heart-coins" aria-label="三枚铜钱">
|
||
<div class="heart-coin" data-coin-index="0"><div class="heart-coin-inner"><span class="heart-coin-face front" aria-label="字面"><b class="coin-glyph coin-glyph-top">乾</b><b class="coin-glyph coin-glyph-right">隆</b><b class="coin-glyph coin-glyph-bottom">通</b><b class="coin-glyph coin-glyph-left">宝</b><i class="coin-hole"></i></span><span class="heart-coin-face back" aria-label="背面"><b class="coin-glyph coin-glyph-top">宝</b><b class="coin-glyph coin-glyph-bottom">泉</b><i class="coin-hole"></i></span></div><i class="heart-coin-ring"></i></div>
|
||
<div class="heart-coin" data-coin-index="1"><div class="heart-coin-inner"><span class="heart-coin-face front" aria-label="字面"><b class="coin-glyph coin-glyph-top">乾</b><b class="coin-glyph coin-glyph-right">隆</b><b class="coin-glyph coin-glyph-bottom">通</b><b class="coin-glyph coin-glyph-left">宝</b><i class="coin-hole"></i></span><span class="heart-coin-face back" aria-label="背面"><b class="coin-glyph coin-glyph-top">宝</b><b class="coin-glyph coin-glyph-bottom">泉</b><i class="coin-hole"></i></span></div><i class="heart-coin-ring"></i></div>
|
||
<div class="heart-coin" data-coin-index="2"><div class="heart-coin-inner"><span class="heart-coin-face front" aria-label="字面"><b class="coin-glyph coin-glyph-top">乾</b><b class="coin-glyph coin-glyph-right">隆</b><b class="coin-glyph coin-glyph-bottom">通</b><b class="coin-glyph coin-glyph-left">宝</b><i class="coin-hole"></i></span><span class="heart-coin-face back" aria-label="背面"><b class="coin-glyph coin-glyph-top">宝</b><b class="coin-glyph coin-glyph-bottom">泉</b><i class="coin-hole"></i></span></div><i class="heart-coin-ring"></i></div>
|
||
</div>
|
||
<h3 id="castingPrompt" class="wt-serif">心中默念所问之事,然后掷出初爻</h3>
|
||
<button id="tossCoinsButton" class="heart-cast-button" type="button"><i class="heart-hold-charge" aria-hidden="true"></i><span>按住<br>摇初爻</span></button>
|
||
</section>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="heartReveal" class="heart-stage">
|
||
<button class="button heart-return-button" type="button" data-heart-return>← 返回</button>
|
||
<div class="heart-reveal-layout">
|
||
<section class="hexagram-board heart-reveal-board">
|
||
<div class="hexagram-heading">
|
||
<div><span class="metric-label">本卦</span><h3 id="heartHexagramName">--</h3></div>
|
||
<div class="hexagram-change"><span>之卦</span><strong id="heartTransformedName">--</strong></div>
|
||
</div>
|
||
<div id="heartHexagramLines" class="hexagram-lines"></div>
|
||
<p id="heartHexagramText" class="hexagram-text">--</p>
|
||
</section>
|
||
<section class="heart-first-thought">
|
||
<span class="heart-stage-index">观心 · 四</span>
|
||
<h3 class="wt-serif">先不解卦</h3>
|
||
<p id="heartFirstThoughtPrompt">看见卦象与爻辞后,心里升起的第一念是什么?</p>
|
||
<p>不要修饰,也不必记录。只需看见它。</p>
|
||
<button id="interpretHeartButton" class="button primary" type="button">我已察念,开始解卦</button>
|
||
</section>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="heartInterpretationStage" class="heart-stage">
|
||
<div class="heart-interpretation-heading">
|
||
<div><span class="heart-stage-index">观心 · 五</span><h3 id="heartReadTitle" class="wt-serif">解卦</h3><small id="heartReadChange">--</small></div>
|
||
<div class="heart-read-actions"><button id="viewHeartReadingButton" class="button primary" type="button">查看解卦</button><button id="restartHeartButton" class="button" type="button">重新观心</button></div>
|
||
</div>
|
||
<p id="heartReadGuaci" class="heart-read-guaci">--</p>
|
||
<div class="heart-read-layout">
|
||
<div id="heartReadLines" class="heart-read-lines"></div>
|
||
<div id="heartReadTexts" class="heart-read-texts"></div>
|
||
</div>
|
||
<p class="heart-read-motto wt-serif">一念既察,卦只是镜。</p>
|
||
</div>
|
||
</div>
|
||
<p class="heaven-footnote heart-footnote">观心用于观察念头与执着,不用于替代交易计划或预测涨跌。</p>
|
||
</section>
|
||
</section>
|
||
|
||
<section id="ladderView" class="workspace-view page redesigned-ladder-view">
|
||
<div class="section-toolbar lad-head redesigned-page-head ladder-page-head">
|
||
<div class="section-title-group">
|
||
<h2>市场天梯</h2>
|
||
<span class="section-subtitle">按连板高度观察空间板与梯队完整度 · <b id="ladderDateRange">--</b></span>
|
||
</div>
|
||
<div class="ladder-head-actions">
|
||
<div id="ladderSortSegment" class="ladder-sort-segment" role="group" aria-label="天梯排序">
|
||
<button type="button" class="active" data-ladder-sort="time" aria-pressed="true">按封板时间</button>
|
||
<button type="button" data-ladder-sort="open" aria-pressed="false">按开板次数</button>
|
||
</div>
|
||
<button id="ladderExportButton" class="button" type="button">导出 CSV</button>
|
||
</div>
|
||
</div>
|
||
<div class="market-ladder-workspace lad-grid">
|
||
<div id="ladderBoard" class="market-ladder-board"></div>
|
||
<aside id="ladderInsights" class="market-ladder-insights" aria-label="天梯结构解读"></aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="screenerView" class="workspace-view page member-feature-view">
|
||
<div class="member-gate" hidden><div class="member-gate-icon"><i data-lucide="lock-keyhole"></i></div><div><strong>智能选股仅对会员开放</strong><span>开通会员后可同步因子、生成公式和执行策略。会员状态可从顶部账号标识进入。</span></div></div>
|
||
<div class="screener-page-bar scr-head">
|
||
<div class="section-toolbar screener-page-heading">
|
||
<div class="section-title-group">
|
||
<h2>智能选股</h2>
|
||
<span id="screenerDateLabel" class="section-subtitle">--</span>
|
||
</div>
|
||
</div>
|
||
<div class="screener-mode-tabs method" role="tablist" aria-label="智能选股模式">
|
||
<button class="active" type="button" role="tab" aria-selected="true" data-screener-mode="smart">阶段选股</button>
|
||
<button type="button" role="tab" aria-selected="false" data-screener-mode="curated">策略选股</button>
|
||
<button type="button" role="tab" aria-selected="false" data-screener-mode="quant">自定义选股</button>
|
||
</div>
|
||
<button id="openScreenerTrackingButton" class="button screener-tracking-entry" type="button"><i data-lucide="chart-no-axes-combined"></i>策略跟踪</button>
|
||
</div>
|
||
<div id="screenerNotice" class="inline-notice" hidden></div>
|
||
<div class="screener-mobile-tabs" role="tablist" aria-label="智能选股视图">
|
||
<button class="active" type="button" role="tab" aria-selected="true" data-screener-mobile-view="strategy">策略</button>
|
||
<button type="button" role="tab" aria-selected="false" data-screener-mobile-view="results">候选</button>
|
||
</div>
|
||
<div class="screener-strategy-view" data-screener-panel="smart">
|
||
<div id="screenerProgress" class="screener-stepper stepper" aria-label="智能选股执行进度" aria-live="polite">
|
||
<div class="screener-step step" data-screener-step="regime"><span class="step-marker no">1</span><div><strong class="tt">阶段识别</strong><small class="ds" id="regimeStepStatus">等待识别</small></div></div>
|
||
<span class="step-line ln" aria-hidden="true"></span>
|
||
<div class="screener-step step" data-screener-step="strategy"><span class="step-marker no">2</span><div><strong class="tt">策略匹配</strong><small class="ds" id="strategyStepStatus">等待匹配</small></div></div>
|
||
<span class="step-line ln" aria-hidden="true"></span>
|
||
<div class="screener-step step" data-screener-step="run"><span class="step-marker no">3</span><div><strong class="tt">执行选股</strong><small class="ds" id="screenerRunStatus">等待执行</small></div></div>
|
||
<span class="step-line ln" aria-hidden="true"></span>
|
||
<div class="screener-step step" data-screener-step="result"><span class="step-marker no">4</span><div><strong class="tt">结果与回测</strong><small class="ds" id="backtestTaskStatus">随选股执行</small></div></div>
|
||
</div>
|
||
<div class="screener-overview-grid ps-grid">
|
||
<section class="screener-overview-card screener-regime-card card">
|
||
<div class="screener-card-heading card-h"><h3><span>01</span> 当前阶段</h3><span class="screener-soft-label dtag">自动识别已开启</span></div>
|
||
<div class="screener-regime-body">
|
||
<div class="regime-summary"><strong id="regimeLabel">--</strong><span id="regimeConfidence">置信度 --</span></div>
|
||
<div class="regime-reading">
|
||
<div class="regime-market-line">
|
||
<div id="regimeEvidenceList" class="regime-evidence-line"></div>
|
||
</div>
|
||
<div id="regimeReason" class="regime-advice">--</div>
|
||
<div class="regime-control-line">
|
||
<div id="regimeSelector" class="regime-selector" aria-label="系统识别的市场阶段"></div>
|
||
<div class="factor-data-status"><span>盘后行情定格后自动更新</span><strong id="factorDateCount">0 日</strong><small id="factorDateRange">等待后台数据</small></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section class="screener-overview-card screener-strategy-card card">
|
||
<div class="screener-card-heading card-h"><h3><span>02</span> 匹配策略</h3><span class="screener-soft-label dtag">自然语言转受控公式</span></div>
|
||
<div class="screener-strategy-summary">
|
||
<div class="screener-strategy-title"><strong id="activeStrategyHeading">--</strong><span id="activeStrategyRegimes"></span></div>
|
||
<p id="activeStrategyDescription">等待匹配当前市场阶段的策略。</p>
|
||
<div class="screener-strategy-actions"><span class="screener-auto-note">由系统按当前阶段自动匹配</span></div>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
<div class="screener-runbar runbar">
|
||
<div class="screener-run-actions">
|
||
<button id="screenerExportButton" class="button" type="button">导出 CSV</button>
|
||
</div>
|
||
<div class="screener-pipeline-status" aria-live="polite">
|
||
<span>因子 <strong id="factorTaskStatus">等待检查</strong></span>
|
||
<span>编译 <strong id="compilerStatus">本地模板编译</strong></span>
|
||
</div>
|
||
</div>
|
||
<div data-screener-results-slot="smart"></div>
|
||
</div>
|
||
<div class="curated-screener-panel" data-screener-panel="curated" hidden>
|
||
<div class="curated-workspace">
|
||
<aside class="curated-library-pane" aria-label="精选策略库">
|
||
<div class="curated-library-heading">
|
||
<div><span>策略库</span><h3>盘后自动候选池</h3></div><strong id="curatedStrategyCount">10 套</strong>
|
||
</div>
|
||
<div class="curated-library-controls">
|
||
<label class="curated-search"><i data-lucide="search"></i><span class="visually-hidden">搜索策略</span><input id="curatedStrategySearch" type="search" placeholder="搜索策略" autocomplete="off"></label>
|
||
<label class="curated-category-select"><span class="visually-hidden">策略分类</span><select id="curatedCategoryFilter" aria-label="策略分类"></select><i data-lucide="chevron-down"></i></label>
|
||
<div class="curated-view-toggle" role="group" aria-label="策略排列方式">
|
||
<button class="active" type="button" data-curated-view="list" aria-label="列表排列" title="列表排列" aria-pressed="true"><i data-lucide="list"></i></button>
|
||
<button type="button" data-curated-view="grid" aria-label="图标排列" title="图标排列" aria-pressed="false"><i data-lucide="layout-grid"></i></button>
|
||
</div>
|
||
</div>
|
||
<div id="curatedSchoolFilters" class="curated-school-filters" aria-label="策略流派"></div>
|
||
<div id="curatedStrategyList" class="curated-strategy-list"></div>
|
||
</aside>
|
||
<section class="curated-detail-pane" aria-labelledby="curatedStrategyName">
|
||
<header class="curated-detail-header">
|
||
<div><span id="curatedStrategyCategory">精选策略</span><h3 id="curatedStrategyName">选择一套策略</h3><p id="curatedStrategyDescription">查看策略条件、数据状态和适用环境。</p></div>
|
||
<div id="curatedStrategyBadges" class="curated-strategy-badges"></div>
|
||
</header>
|
||
<div class="curated-environment-notes">
|
||
<p><strong>适用环境</strong><span id="curatedSuitableEnvironment"></span></p>
|
||
<p><strong>失效风险</strong><span id="curatedFailureRisk"></span></p>
|
||
</div>
|
||
<div class="curated-health-grid" id="curatedHealthMetrics" aria-label="策略运行状态"></div>
|
||
<div class="curated-detail-grid">
|
||
<section class="curated-condition-section"><div class="mini-section-heading"><h4>准入条件</h4><span id="curatedFilterCount">0 项</span></div><div id="curatedFilterList" class="curated-rule-list"></div></section>
|
||
<section class="curated-condition-section"><div class="mini-section-heading"><h4>评分权重</h4><span id="curatedWeightTotal">100%</span></div><div id="curatedScoreList" class="curated-score-list"></div></section>
|
||
</div>
|
||
<div class="curated-execution-bar">
|
||
<div id="curatedDataStatus" class="curated-data-status"><i data-lucide="database"></i><span><strong>检查数据中</strong><small>同步后显示可用状态</small></span></div>
|
||
<span class="screener-auto-note">候选池由后台盘后自动更新</span>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
<div data-screener-results-slot="curated"></div>
|
||
</div>
|
||
<div class="quant-screener-panel" data-screener-panel="quant" hidden>
|
||
<section class="custom-screener-tools card">
|
||
<div><span>自定义能力</span><strong>用自然语言生成公式,或直接编辑受控公式</strong><small>自定义选股仅在点击执行后计算,不影响系统盘后候选池。</small></div>
|
||
<div>
|
||
<button id="openStrategyDrawerButton" class="button" type="button"><i data-lucide="sparkles"></i>自然语言生成公式</button>
|
||
<button id="quantSaveButton" class="button" type="button"><i data-lucide="braces"></i>编辑 / 保存公式</button>
|
||
</div>
|
||
</section>
|
||
<section class="quant-builder-pane">
|
||
<header class="quant-panel-heading"><h3>因子与权重</h3><div><button id="addQuantScoreButton" class="button" type="button"><i data-lucide="plus"></i>添加因子</button><button id="quantResetButton" class="button ghost" type="button"><i data-lucide="rotate-ccw"></i>重置</button></div></header>
|
||
<div id="quantScoreRows" class="quant-rule-rows"></div>
|
||
<div class="quant-weight-status"><span>权重合计</span><div><i id="quantWeightBar"></i></div><strong id="quantWeightTotal">100%</strong></div>
|
||
</section>
|
||
<div class="quant-right-stack">
|
||
<aside class="quant-summary-pane">
|
||
<header><h3>过滤条件</h3><button id="addQuantFilterButton" class="button ghost" type="button"><i data-lucide="plus"></i>添加条件</button></header>
|
||
<div class="quant-filter-body">
|
||
<div class="quant-universe-grid">
|
||
<strong>选股范围</strong>
|
||
<label class="form-field"><span>上市不少于</span><input id="quantListedDays" type="number" min="0" max="5000" step="30" value="120"><small>日</small></label>
|
||
<label class="form-field"><span>输出</span><input id="quantLimit" type="number" min="1" max="50" value="15"><small>只</small></label>
|
||
<label class="form-field"><span>综合分不低于</span><input id="quantMinScore" type="number" min="0" max="100" step="1" value="50"></label>
|
||
<label class="checkbox-control quant-st-toggle"><input id="quantExcludeSt" type="checkbox" checked>剔除 ST / 退市</label>
|
||
</div>
|
||
<div id="quantFilterRows" class="quant-rule-rows"></div>
|
||
<div class="quant-execution-actions">
|
||
<button id="quantRunButton" class="button primary" type="button"><i data-lucide="play"></i>执行自定义选股</button>
|
||
<label class="checkbox-control"><input id="quantBacktestToggle" type="checkbox" checked>滚动回测</label>
|
||
<span>结果按加权总分排序,并生成逐股贡献解释</span>
|
||
</div>
|
||
<p id="quantValidationMessage" class="quant-validation-message" role="status" aria-live="polite"></p>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
<div class="custom-results-slot" data-screener-results-slot="quant"></div>
|
||
</div>
|
||
<div class="screener-results-view">
|
||
<section id="backtestPanel" class="backtest-panel screener-backtest-strip" hidden>
|
||
<i data-lucide="triangle-alert" aria-hidden="true"></i>
|
||
<div id="backtestMetrics" class="dragon-summary"></div>
|
||
<p id="backtestDefinition">--</p>
|
||
</section>
|
||
<div class="section-toolbar result-toolbar">
|
||
<div class="section-title-group"><h2 id="screenerResultTitle">候选结果</h2><span id="screenerResultCount" class="count-badge">0 只</span><span id="screenerResultSource" class="screener-result-source" hidden></span></div>
|
||
<span id="screenerDisclaimer" class="section-subtitle">历史统计不代表未来收益</span>
|
||
</div>
|
||
<div class="table-frame card tbl-wrap screener-result-frame">
|
||
<table class="data-table tbl">
|
||
<colgroup class="screener-result-columns"><col><col><col><col><col><col><col><col><col><col><col><col></colgroup>
|
||
<thead><tr>
|
||
<th class="num">排名</th><th>股票</th><th>板块</th><th class="number num sortable">综合分<span class="arr">↕</span></th>
|
||
<th class="number num sortable">历史估计(%)<span class="arr">↕</span></th><th class="number num sortable">当日涨幅(%)<span class="arr">↕</span></th><th class="number num sortable">5日涨幅(%)<span class="arr">↕</span></th>
|
||
<th class="number num sortable">量比<span class="arr">↕</span></th><th class="number num sortable">板块强度<span class="arr">↕</span></th><th>主要贡献</th><th>风险</th><th>操作</th>
|
||
</tr></thead>
|
||
<tbody id="screenerTableBody"></tbody>
|
||
</table>
|
||
<div id="screenerEmpty" class="empty-state">尚未执行选股</div>
|
||
</div>
|
||
</div>
|
||
<dialog id="strategyDrawer" class="strategy-drawer" aria-labelledby="strategyDrawerTitle">
|
||
<div class="strategy-drawer-header"><div><span>自定义选股</span><h2 id="strategyDrawerTitle">自然语言与受控公式</h2></div><button id="closeStrategyDrawerButton" class="icon-button" type="button" aria-label="关闭策略编辑"><i data-lucide="x"></i></button></div>
|
||
<div class="strategy-drawer-body">
|
||
<aside class="strategy-sidebar">
|
||
<div class="workspace-heading card-h"><h3>策略库</h3><span id="strategyCount">0 套</span></div>
|
||
<div id="strategyList" class="strategy-list"></div>
|
||
</aside>
|
||
<div class="strategy-workbench">
|
||
<div class="strategy-workbench-heading"><div><span>当前策略</span><h3 id="activeStrategyEditorHeading">--</h3></div><small>自然语言生成受控公式</small></div>
|
||
<div class="strategy-meta-fields">
|
||
<label class="form-field"><span>策略名称</span><input id="strategyNameInput" type="text" maxlength="60"></label>
|
||
<label class="form-field"><span>策略说明</span><input id="strategyDescriptionInput" type="text" maxlength="1000"></label>
|
||
</div>
|
||
<label class="form-field strategy-prompt-field"><span>自然语言策略</span><textarea id="strategyPrompt" maxlength="3000" placeholder="例如:修复阶段筛选低吸、放量、有主力资金流入的主线前排"></textarea></label>
|
||
<div class="strategy-actions">
|
||
<label class="checkbox-control"><input id="runBacktestToggle" type="checkbox" checked>滚动回测</label>
|
||
<button id="compileStrategyButton" class="button" type="button">生成公式</button>
|
||
<button id="saveStrategyButton" class="button primary" type="button">保存策略</button>
|
||
<button id="deleteStrategyButton" class="button danger-button" type="button" hidden>删除策略</button>
|
||
</div>
|
||
<details class="strategy-advanced">
|
||
<summary><div><strong>高级公式</strong><span>查看或手动调整受控 DSL</span></div><i data-lucide="chevron-down" aria-hidden="true"></i></summary>
|
||
<label class="form-field formula-field"><span>受控公式 DSL</span><textarea id="formulaEditor" spellcheck="false"></textarea></label>
|
||
</details>
|
||
</div>
|
||
</div>
|
||
</dialog>
|
||
</section>
|
||
|
||
<section id="screenerTrackingView" class="workspace-view page member-feature-view screener-tracking-view" data-internal-view>
|
||
<div class="member-gate" hidden><div class="member-gate-icon"><i data-lucide="lock-keyhole"></i></div><div><strong>策略跟踪仅对会员开放</strong><span>开通会员后可将选股候选加入持续跟踪。</span></div></div>
|
||
<header class="tracking-page-header">
|
||
<button id="closeScreenerTrackingButton" class="tracking-back-button" type="button" data-member-navigation><i data-lucide="arrow-left"></i>返回智能选股</button>
|
||
<div><h2 id="strategyTrackingTitle">策略持续跟踪</h2><p>仅跟踪手动加入的候选,以入选价观察后续五个交易日。</p></div>
|
||
<button id="refreshTrackingButton" class="button" type="button"><i data-lucide="refresh-cw"></i>更新跟踪</button>
|
||
</header>
|
||
<div class="tracking-overview-card">
|
||
<div class="tracking-overview-title"><span>跟踪概览</span><strong id="trackingBatchCount">0 批</strong></div>
|
||
<div id="trackingSummary" class="tracking-summary"></div>
|
||
</div>
|
||
<section class="strategy-tracking-panel" aria-labelledby="strategyTrackingTitle">
|
||
<div class="section-toolbar result-toolbar">
|
||
<div class="section-title-group"><h2>跟踪明细</h2><span class="count-badge">T+5</span></div>
|
||
<span class="section-subtitle">收益均以加入跟踪时的入选价为基准</span>
|
||
</div>
|
||
<div class="table-frame tracking-table-frame">
|
||
<table class="data-table tbl tracking-table">
|
||
<thead><tr><th>入选日</th><th>策略</th><th>股票</th><th class="number num">入选价(元)</th><th class="number num">T+1 开(%)</th><th class="number num">T+1 收(%)</th><th class="number num">T+3(%)</th><th class="number num">T+5(%)</th><th class="number num">最大涨幅(%)</th><th class="number num">最大回撤(%)</th><th>状态</th><th>操作</th></tr></thead>
|
||
<tbody id="trackingTableBody"></tbody>
|
||
</table>
|
||
<div id="trackingEmpty" class="empty-state">尚未加入跟踪,请从智能选股候选结果中手动添加。</div>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
|
||
<section id="mentorView" class="workspace-view page member-feature-view redesigned-mentor-view">
|
||
<div class="member-gate" hidden><div class="member-gate-icon"><i data-lucide="lock-keyhole"></i></div><div><strong>问师仅对会员开放</strong><span>开通会员后可使用游资思维模型进行对话。会员状态可从顶部账号标识进入。</span></div></div>
|
||
<header class="section-toolbar lad-head mentor-page-header">
|
||
<div class="section-title-group mentor-page-title">
|
||
<h2>问师</h2>
|
||
<span class="section-subtitle">向思维模型请教 · <span id="mentorDataDate">--</span></span>
|
||
</div>
|
||
<div class="toolbar-controls mentor-page-controls">
|
||
<div class="mentor-evidence-filters seg" role="group" aria-label="按素材等级筛选">
|
||
<button class="active" type="button" data-mentor-grade="all">全部</button>
|
||
<button type="button" data-mentor-grade="A">A级</button>
|
||
<button type="button" data-mentor-grade="B">B级</button>
|
||
<button type="button" data-mentor-grade="C">C级</button>
|
||
</div>
|
||
</div>
|
||
</header>
|
||
<div id="mentorNotice" class="inline-notice" hidden></div>
|
||
<div class="mentor-layout mentor-grid">
|
||
<aside class="mentor-sidebar mentor-library-card card">
|
||
<button id="mentorDirectoryToggle" class="mentor-directory-toggle" type="button" aria-expanded="false" aria-controls="mentorDirectoryContent">
|
||
<span><i data-lucide="users-round"></i><span><small>当前思维模型</small><strong id="mobileActiveMentorName">--</strong></span></span>
|
||
<i data-lucide="chevron-up"></i>
|
||
</button>
|
||
<div id="mentorDirectoryBackdrop" class="mentor-directory-backdrop" hidden></div>
|
||
<div id="mentorDirectoryContent" class="mentor-directory-content">
|
||
<div class="workspace-heading card-h mentor-directory-heading">
|
||
<div class="mentor-directory-title"><h3>模型库</h3><span>语料完整度决定回答质量</span></div>
|
||
<div class="mentor-directory-actions">
|
||
<strong id="mentorCount" class="mentor-count">0 位</strong>
|
||
<button id="mentorSortToggle" class="mentor-sort-toggle" type="button" aria-pressed="false" title="整理顺序"><i data-lucide="list-ordered"></i><span>整理</span></button>
|
||
<button id="closeMentorDirectory" class="icon-button mentor-directory-close" type="button" aria-label="关闭思维模型目录" title="关闭"><i data-lucide="x"></i></button>
|
||
</div>
|
||
</div>
|
||
<label class="mentor-search-field">
|
||
<span class="visually-hidden">搜索思维模型</span>
|
||
<i data-lucide="search"></i>
|
||
<input id="mentorSearchInput" type="search" maxlength="50" placeholder="搜索姓名、模式或标签" autocomplete="off">
|
||
</label>
|
||
<p id="mentorSortHint" class="mentor-sort-hint" hidden>拖动卡片,或使用箭头调整顺序</p>
|
||
<div id="mentorList" class="mentor-list"></div>
|
||
<div id="mentorListEmpty" class="mentor-list-empty" hidden>没有符合条件的思维模型</div>
|
||
<p class="mentor-evidence-legend">素材等级反映蒸馏依据,不代表人物能力或收益水平。</p>
|
||
</div>
|
||
</aside>
|
||
<section class="mentor-chat-panel card">
|
||
<header class="mentor-chat-header card-h">
|
||
<div class="mentor-active-profile">
|
||
<div class="mentor-active-title"><h3 id="activeMentorName">--</h3><span id="activeMentorBadges" class="mentor-active-badges"></span></div>
|
||
<p id="activeMentorEvidence">--</p>
|
||
<div id="activeMentorFocus" class="mentor-active-focus"></div>
|
||
</div>
|
||
<button id="clearMentorChatButton" class="button ghost mentor-clear-button" type="button" disabled><i data-lucide="trash-2"></i><span>清空对话</span></button>
|
||
</header>
|
||
<div class="chat-box">
|
||
<div id="mentorMessages" class="mentor-messages chat-log" aria-live="polite"></div>
|
||
<div id="mentorQuickPrompts" class="mentor-quick-prompts">
|
||
<span class="mentor-prompt-label">试着这样问</span>
|
||
<button type="button" data-mentor-prompt="怎么看今天的市场环境?">市场环境</button>
|
||
<button type="button" data-mentor-prompt="当前的市场主线和情绪周期是什么?">主线与周期</button>
|
||
<button type="button" data-mentor-prompt="如果今天是空仓状态,你会怎么制定操作预案?">空仓预案</button>
|
||
<button type="button" data-mentor-prompt="现在最需要防范的风险是什么?">风险检查</button>
|
||
</div>
|
||
<form id="mentorChatForm" class="mentor-chat-form chat-input">
|
||
<label class="visually-hidden" for="mentorQuestion">向当前思维模型提问</label>
|
||
<textarea id="mentorQuestion" maxlength="2000" placeholder="输入市场、板块、个股代码或交易问题"></textarea>
|
||
<button id="sendMentorQuestion" class="button primary" type="submit"><i data-lucide="send-horizontal"></i><span>发送</span></button>
|
||
</form>
|
||
<p class="mentor-disclaimer">基于公开资料提炼的思维模型模拟,不代表本人观点,不构成投资建议。</p>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="rotationView" class="workspace-view page redesigned-rotation-view">
|
||
<header class="rotation-page-head lad-head">
|
||
<div>
|
||
<h2>板块轮动</h2>
|
||
<p id="rotationHistoryRange">最近 9 个交易日 · 由远到近,右侧为最新交易日</p>
|
||
</div>
|
||
<div class="rotation-head-actions">
|
||
<div id="rotationOrderControl" class="rotation-order-control" role="group" aria-label="轮动日期排序">
|
||
<button class="active" type="button" data-rotation-order="oldest">由远到近</button>
|
||
<button type="button" data-rotation-order="latest">由近到远</button>
|
||
</div>
|
||
<button id="rotationExportButton" class="rotation-export-button" type="button">导出 CSV</button>
|
||
</div>
|
||
</header>
|
||
|
||
<section class="rotation-trajectory-card card" aria-labelledby="rotationTrajectoryTitle">
|
||
<header class="rotation-card-head card-h">
|
||
<div>
|
||
<h3 id="rotationTrajectoryTitle">热点轨迹</h3>
|
||
<span id="rotationSelectionHint">点击任意板块追踪其连续性</span>
|
||
</div>
|
||
<span class="rotation-top-tag">每日 Top 12 热点</span>
|
||
</header>
|
||
<div class="rotation-legend" aria-label="板块强度图例">
|
||
<span><i class="rotation-swatch strong"></i>强度高(90+)</span>
|
||
<span><i class="rotation-swatch warm"></i>强度中(70–89)</span>
|
||
<span><i class="rotation-swatch mild"></i>强度低(<70)</span>
|
||
</div>
|
||
<div id="rotationTracker" class="rotation-tracker" hidden></div>
|
||
<div id="rotationHistory" class="rotation-history"><div class="empty-state">正在读取轮动历史</div></div>
|
||
</section>
|
||
|
||
<section class="rotation-detail-card card" aria-labelledby="rotationDetailTitle">
|
||
<header class="rotation-card-head card-h">
|
||
<div>
|
||
<h3 id="rotationDetailTitle">板块成分股</h3>
|
||
<span>点击上方板块,查看目标交易日有效申万成分与行情</span>
|
||
</div>
|
||
<span id="rotationDetailMeta" class="rotation-top-tag">--</span>
|
||
</header>
|
||
<div class="rotation-table-frame tbl-wrap">
|
||
<table id="rotationTable" class="data-table tbl rotation-table">
|
||
<thead><tr>
|
||
<th class="number num">序号</th><th>代码</th><th>股票</th>
|
||
<th class="number num" data-auto-sort="true" title="涨跌幅:点击排序">涨跌幅(%)</th>
|
||
<th class="number num">开盘价(元)</th><th class="number num">收盘价(元)</th>
|
||
<th class="number num" data-auto-sort="true" title="成交额:点击排序">成交额(亿)</th><th>行情状态</th>
|
||
</tr></thead>
|
||
<tbody id="rotationTableBody"></tbody>
|
||
</table>
|
||
<div id="rotationMembersEmpty" class="empty-state">点击上方任意板块查看成分股</div>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
|
||
<section id="auctionView" class="workspace-view page redesigned-auction-view">
|
||
<header class="auction-page-head-v2 auc-head">
|
||
<div class="auction-title-cluster">
|
||
<div class="auction-title-line"><h2>集合竞价中心</h2><span id="auctionDateLabel">--</span></div>
|
||
<div id="auctionPhaseNotice" class="auction-phase-notice-v2" data-phase="archive" role="status" aria-live="polite">
|
||
<span class="auction-phase-marker" aria-hidden="true"></span>
|
||
<strong id="auctionPhaseTitle">竞价状态</strong>
|
||
<span id="auctionPhaseDetail">正在确认当前竞价阶段</span>
|
||
<time id="auctionPhaseTime">--</time>
|
||
</div>
|
||
</div>
|
||
<div class="auction-header-actions-v2">
|
||
<button id="auctionRefreshButton" class="auction-refresh-button" type="button" hidden><i data-lucide="refresh-cw"></i>刷新竞价</button>
|
||
</div>
|
||
</header>
|
||
|
||
<div class="auction-workspace-v2 auc-grid">
|
||
<section class="auction-primary-card card" aria-labelledby="auctionWorkspaceTitle">
|
||
<div class="visually-hidden"><h3 id="auctionWorkspaceTitle">重点异动</h3><span id="auctionWorkspaceSubtitle">优先查看市场核心与显著预期差</span></div>
|
||
<div class="auction-tabs-v2 tabs" role="tablist" aria-label="竞价数据集">
|
||
<button class="active" type="button" role="tab" aria-selected="true" data-auction-dataset="focus">重点异动 <strong id="auctionFocusCount">0</strong></button>
|
||
<button type="button" role="tab" aria-selected="false" data-auction-dataset="watchlist">我的自选 <strong id="auctionWatchlistCount">0</strong></button>
|
||
<button type="button" role="tab" aria-selected="false" data-auction-dataset="all">全部候选 <strong id="auctionAllCount">0</strong></button>
|
||
<button type="button" role="tab" aria-selected="false" data-auction-dataset="onePrice">竞价一字 <strong id="auctionOnePriceCount">0</strong></button>
|
||
<div id="auctionSummary" class="auction-summary-v2" aria-live="polite"></div>
|
||
</div>
|
||
<div id="auctionExpectationFilterbar" class="auction-tools-v2 tbl-tools">
|
||
<div id="auctionExpectationControls" class="auction-expectation-v2">
|
||
<span>预期筛选</span>
|
||
<div class="auction-filter-segments seg" role="group" aria-label="竞价预期差筛选">
|
||
<button class="active" type="button" data-auction-filter="all">全部</button>
|
||
<button type="button" data-auction-filter="above">超预期</button>
|
||
<button type="button" data-auction-filter="matched">符合预期</button>
|
||
<button type="button" data-auction-filter="below">低于预期</button>
|
||
</div>
|
||
</div>
|
||
<div class="auction-tool-actions">
|
||
<label class="auction-search-v2 search"><i data-lucide="search" aria-hidden="true"></i><span class="visually-hidden">搜索竞价候选</span><input id="auctionSearch" type="search" placeholder="代码、名称或行业"></label>
|
||
<button id="auctionExportButton" class="auction-export-button" type="button">导出 CSV</button>
|
||
</div>
|
||
</div>
|
||
<div class="auction-table-frame-v2 tbl-wrap">
|
||
<table id="auctionTable" class="data-table tbl auction-table-v2">
|
||
<thead><tr id="auctionTableHead"></tr></thead>
|
||
<tbody id="auctionTableBody"></tbody>
|
||
</table>
|
||
<div id="auctionEmpty" class="empty-state" hidden>没有符合条件的竞价候选</div>
|
||
</div>
|
||
</section>
|
||
|
||
<aside class="auction-side-v2" aria-label="竞价旁证">
|
||
<section class="auction-side-card auction-theme-card card" aria-labelledby="auctionThemeTitle">
|
||
<header class="auction-card-head-v2 card-h">
|
||
<div><h3 id="auctionThemeTitle">题材承接</h3><span>昨日强势方向</span></div>
|
||
<span id="auctionThemeBaseline" class="auction-card-tag">--</span>
|
||
</header>
|
||
<div id="auctionThemeCarry" class="auction-theme-list-v2"></div>
|
||
<div class="auction-new-theme-v2"><strong>今日新线索</strong><div id="auctionNewThemes" class="auction-theme-chips-v2"></div></div>
|
||
</section>
|
||
|
||
<section class="auction-side-card auction-volume-card card" aria-labelledby="auctionAmountTitle">
|
||
<header class="auction-card-head-v2 card-h">
|
||
<div><h3 id="auctionAmountTitle">竞价成交额对比</h3></div>
|
||
<span class="auction-card-tag">近 10 个交易日</span>
|
||
</header>
|
||
<div class="auction-volume-body">
|
||
<div class="auction-volume-summary"><strong id="auctionAmountValue" class="auction-amount-value-v2">--</strong><div id="auctionAmountCompare" class="auction-amount-compare-v2"></div></div>
|
||
<div id="auctionAmountTrend" class="auction-amount-trend-v2" aria-label="近十个交易日集合竞价成交额"></div>
|
||
</div>
|
||
<div class="auction-volume-legend"><span><i></i>历史交易日</span><span><i class="current"></i>当日</span><span><i class="average"></i>5 日均值</span></div>
|
||
</section>
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="themeLibraryView" class="workspace-view page redesigned-theme-view">
|
||
<header class="theme-page-head-v2 lad-head">
|
||
<div class="theme-title-v2">
|
||
<div><h2>题材库</h2><span>题材走势与成分股</span></div>
|
||
<span id="themeDateLabel" class="theme-date-v2">--</span>
|
||
</div>
|
||
<div class="theme-head-actions-v2">
|
||
<label class="theme-search-v2">
|
||
<i data-lucide="search" aria-hidden="true"></i>
|
||
<span class="visually-hidden">搜索题材</span>
|
||
<input id="themeSearch" type="search" placeholder="搜索题材名称或代码" autocomplete="off">
|
||
</label>
|
||
<button id="themeRefreshButton" class="button theme-refresh-v2" type="button"><i data-lucide="refresh-cw"></i><span>刷新题材</span></button>
|
||
</div>
|
||
</header>
|
||
|
||
<div id="themeSummary" class="theme-summary-v2" aria-live="polite"></div>
|
||
|
||
<div class="theme-library-workspace-v2 theme-grid">
|
||
<aside class="theme-directory-card-v2 card" aria-label="题材列表">
|
||
<header class="theme-card-head-v2 card-h">
|
||
<div><h3>题材排行</h3><span>按当日热度与行情排列</span></div>
|
||
<strong id="themeResultCount">0 个</strong>
|
||
</header>
|
||
<div class="theme-directory-labels-v2" aria-hidden="true"><span>题材</span><span>当日涨跌</span></div>
|
||
<div id="themeDirectory" class="theme-directory-v2"></div>
|
||
</aside>
|
||
|
||
<section class="theme-detail-column-v2" aria-live="polite">
|
||
<div id="themeDetailEmpty" class="empty-state theme-detail-empty-v2">选择题材查看走势与成分股</div>
|
||
<div id="themeDetailContent" class="theme-detail-stack-v2" hidden>
|
||
<section class="theme-market-card-v2 card">
|
||
<header class="theme-detail-heading-v2">
|
||
<div class="theme-detail-identity-v2">
|
||
<span class="theme-detail-kicker-v2">题材行情</span>
|
||
<div class="theme-detail-name-line-v2"><h3 id="themeDetailName">--</h3><small id="themeDetailCode">--</small></div>
|
||
</div>
|
||
<div class="theme-change-v2"><span>当日涨幅</span><strong id="themeDetailChange">--</strong></div>
|
||
</header>
|
||
<div id="themeDetailMetrics" class="theme-detail-metrics-v2"></div>
|
||
<div class="theme-chart-heading-v2">
|
||
<div><h4>题材走势</h4><span>日 K · 最近 90 个交易日</span></div>
|
||
<div class="theme-chart-legend-v2" aria-label="日K图例"><span><i class="up"></i>上涨</span><span><i class="down"></i>下跌</span><span><i class="volume"></i>成交量</span></div>
|
||
</div>
|
||
<div class="theme-chart-shell-v2"><canvas id="themeDetailChart" aria-label="题材日K图"></canvas></div>
|
||
</section>
|
||
|
||
<section class="theme-members-card-v2 card">
|
||
<header class="theme-members-heading-v2">
|
||
<div><h3>成分股</h3><span>点击股票查看完整行情详情</span></div>
|
||
<strong id="themeMemberCount">0 只</strong>
|
||
</header>
|
||
<div class="theme-members-frame-v2 tbl-wrap">
|
||
<table class="data-table tbl theme-members-table-v2"><thead><tr><th class="num">序号</th><th>股票</th><th class="number num sortable">涨跌幅(%)<span class="arr">↕</span></th><th class="number num sortable">收盘价(元)<span class="arr">↕</span></th><th class="number num sortable">成交额(亿)<span class="arr">↕</span></th></tr></thead><tbody id="themeMemberTableBody"></tbody></table>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="popularityView" class="workspace-view page redesigned-popularity-view">
|
||
<header class="popularity-page-head-v2 lad-head">
|
||
<div class="popularity-title-v2">
|
||
<h2>人气热榜</h2>
|
||
<span>同花顺 × 东方财富双榜</span>
|
||
<strong id="popularityDateLabel">--</strong>
|
||
<small>涨跌幅为当日行情</small>
|
||
</div>
|
||
<div class="popularity-head-actions-v2">
|
||
<div class="popularity-source-tabs-v2" role="tablist" aria-label="热榜来源">
|
||
<button class="active" type="button" role="tab" aria-selected="true" data-popularity-source="combined">双榜综合</button>
|
||
<button type="button" role="tab" aria-selected="false" data-popularity-source="ths">同花顺</button>
|
||
<button type="button" role="tab" aria-selected="false" data-popularity-source="dc">东方财富</button>
|
||
</div>
|
||
<button id="popularityRefreshButton" class="button popularity-refresh-v2" type="button" title="刷新热榜"><i data-lucide="refresh-cw"></i><span>刷新</span></button>
|
||
</div>
|
||
</header>
|
||
|
||
<div id="popularitySummary" class="popularity-glance-v2 hot3" aria-live="polite"></div>
|
||
|
||
<section class="popularity-table-card-v2 card">
|
||
<header class="popularity-table-head-v2">
|
||
<div><h3 id="popularityTableTitle">双榜综合榜</h3><span id="popularityTableNote">按双榜排名综合排序</span></div>
|
||
<label class="popularity-search-v2">
|
||
<i data-lucide="search" aria-hidden="true"></i>
|
||
<span class="visually-hidden">搜索热榜股票</span>
|
||
<input id="popularitySearch" type="search" placeholder="搜索代码、名称或概念" autocomplete="off">
|
||
</label>
|
||
</header>
|
||
<div class="popularity-table-frame-v2 tbl-wrap">
|
||
<table class="data-table tbl popularity-table-v2"><thead><tr id="popularityTableHead"></tr></thead><tbody id="popularityTableBody"></tbody></table>
|
||
<div id="popularityEmpty" class="empty-state" hidden>暂无符合条件的人气数据</div>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
|
||
<section id="dragonView" class="workspace-view page redesigned-dragon-view">
|
||
<header class="dragon-page-head-v2 lad-head">
|
||
<div class="dragon-title-v2">
|
||
<h2>龙虎榜</h2>
|
||
<span>游资动向与席位明细</span>
|
||
<strong id="dragonDateLabel">--</strong>
|
||
</div>
|
||
<div class="dragon-head-actions-v2">
|
||
<div class="dragon-view-tabs-v2" role="group" aria-label="龙虎榜视图">
|
||
<button id="dragonDailyButton" class="active" type="button" data-dragon-view-mode="daily" aria-pressed="true">每日明细</button>
|
||
<button id="dragonProfilesButton" type="button" data-dragon-view-mode="profiles" aria-pressed="false">游资档案</button>
|
||
</div>
|
||
<button id="dragonRefreshButton" class="button dragon-action-v2" type="button"><i data-lucide="refresh-cw"></i><span>刷新</span></button>
|
||
<button id="dragonExportButton" class="button dragon-action-v2" type="button"><i data-lucide="download"></i><span>导出 CSV</span></button>
|
||
</div>
|
||
</header>
|
||
|
||
<section id="dragonEmptyState" class="dragon-empty-state-v2" hidden aria-live="polite">
|
||
<div class="dragon-empty-symbol-v2" aria-hidden="true"><i data-lucide="list-tree"></i></div>
|
||
<h3 id="dragonEmptyTitle">当日暂无龙虎榜明细</h3>
|
||
<p id="dragonEmptyDescription">龙虎榜明细通常在交易日盘后陆续披露,可稍后刷新或查看前一交易日。</p>
|
||
<div class="dragon-empty-actions-v2">
|
||
<button id="dragonPreviousButton" class="button" type="button"><i data-lucide="arrow-left"></i><span>查看前一交易日</span></button>
|
||
<button id="dragonEmptyRefreshButton" class="button primary" type="button"><i data-lucide="refresh-cw"></i><span>重新检查</span></button>
|
||
</div>
|
||
</section>
|
||
|
||
<div id="dragonDailyContent" class="dragon-daily-content-v2">
|
||
<div id="dragonSummary" class="dragon-summary-v2"></div>
|
||
<div class="dragon-filterbar-v2">
|
||
<div class="dragon-filter-copy-v2"><h3>每日明细</h3><span>按公开席位归集当日游资操作</span></div>
|
||
<div class="dragon-filter-actions-v2">
|
||
<div class="dragon-segments-v2" role="group" aria-label="龙虎榜筛选">
|
||
<button type="button" class="dragon-filter-v2 active" data-dragon-filter="all">全部游资</button>
|
||
<button type="button" class="dragon-filter-v2" data-dragon-filter="buy">净买入</button>
|
||
<button type="button" class="dragon-filter-v2" data-dragon-filter="sell">净卖出</button>
|
||
<button id="dragonUnclassifiedFilter" type="button" class="dragon-filter-v2" data-dragon-filter="unclassified">待归类</button>
|
||
</div>
|
||
<label class="dragon-search-v2"><i data-lucide="search" aria-hidden="true"></i><span class="visually-hidden">搜索游资龙虎榜</span><input id="dragonSearch" type="search" placeholder="搜索游资、席位或股票" autocomplete="off"></label>
|
||
</div>
|
||
</div>
|
||
<section class="dragon-card-stage dragon-card-stage-v2 card">
|
||
<div class="dragon-stage-heading-v2"><div><h3>活跃游资</h3><span>点击卡牌查看当日操作</span></div><small>净买入为红 · 净卖出为绿</small></div>
|
||
<div id="dragonTraderList" class="dragon-trader-list"></div>
|
||
</section>
|
||
<section id="dragonTraderDetail" class="dragon-trader-detail dragon-trader-detail-v2 card"><div class="empty-state dragon-empty">选择一位游资查看操作明细</div></section>
|
||
<details id="dragonUnclassifiedSection" class="unclassified-section dragon-unclassified-v2">
|
||
<summary class="unclassified-heading">
|
||
<div><h3 id="unclassifiedTitle">待归类席位</h3><span>为营业部设置游资名后,同名席位会自动合并</span></div>
|
||
<strong id="unclassifiedCount">0 个</strong>
|
||
</summary>
|
||
<div id="unclassifiedSeatList" class="unclassified-seat-list"></div>
|
||
</details>
|
||
</div>
|
||
|
||
<section id="dragonProfilesContent" class="hot-money-profiles-v2" hidden aria-label="游资档案">
|
||
<header class="hot-money-profile-toolbar-v2">
|
||
<div class="dragon-filter-copy-v2">
|
||
<h3>游资名录</h3>
|
||
<span>公开收录的游资简介与关联营业部</span>
|
||
</div>
|
||
<div id="hotMoneyProfileSummary" class="hot-money-profile-summary-v2" aria-label="名录统计"></div>
|
||
<label class="dragon-search-v2 hot-money-profile-search-v2">
|
||
<i data-lucide="search" aria-hidden="true"></i>
|
||
<span class="visually-hidden">搜索游资档案</span>
|
||
<input id="hotMoneyProfileSearch" type="search" placeholder="搜索游资、简介或营业部" autocomplete="off">
|
||
</label>
|
||
</header>
|
||
<div class="hot-money-profile-workspace-v2">
|
||
<section class="hot-money-profile-directory-v2" aria-label="游资名录列表">
|
||
<header class="hot-money-profile-directory-head-v2">
|
||
<strong>全部游资</strong>
|
||
<span id="hotMoneyProfileResultCount">0 位</span>
|
||
</header>
|
||
<div id="hotMoneyProfileList" class="hot-money-profile-list-v2" role="listbox" aria-label="选择游资档案"></div>
|
||
</section>
|
||
<article id="hotMoneyProfileDetail" class="hot-money-profile-detail-v2" aria-live="polite">
|
||
<div class="hot-money-profile-empty-v2">
|
||
<i data-lucide="contact" aria-hidden="true"></i>
|
||
<strong>选择一位游资查看档案</strong>
|
||
</div>
|
||
</article>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
|
||
<section id="reviewWorkspaceView" class="workspace-view page redesigned-review-view">
|
||
<header class="section-toolbar lad-head review-page-header">
|
||
<div class="section-title-group review-page-title">
|
||
<h2>我的复盘</h2>
|
||
<span class="section-subtitle">复盘日期跟随顶栏日期:<b id="reviewDataDate">--</b> · 自选跟踪、交易记录与明日计划</span>
|
||
</div>
|
||
<button id="reviewHistoryToggle" class="button review-history-toggle" type="button" aria-expanded="false" aria-controls="reviewHistoryPanel"><i data-lucide="history"></i><span>历史复盘</span></button>
|
||
</header>
|
||
<div class="review-workspace review-grid">
|
||
<div class="review-left-stack">
|
||
<section class="workspace-section watchlist-section card">
|
||
<div class="workspace-heading card-h review-card-heading">
|
||
<div><h3>自选跟踪</h3><span id="watchlistCount" class="review-count-tag">0 只</span></div>
|
||
<button id="openWatchlistDialog" class="button review-add-watch" type="button"><i data-lucide="plus"></i><span>添加自选</span></button>
|
||
</div>
|
||
<div class="table-frame tbl-wrap workspace-table-frame">
|
||
<table class="data-table tbl review-watchlist-table">
|
||
<thead><tr><th>标记</th><th>股票</th><th>所属板块</th><th class="number num">今日涨幅(%)</th><th class="number num">5日涨幅(%)</th><th class="number num">竞价关注(分)</th><th>跟踪备注</th><th>操作</th></tr></thead>
|
||
<tbody id="watchlistTableBody"></tbody>
|
||
</table>
|
||
<div id="watchlistEmpty" class="empty-state">从股票详情中添加自选,持续跟踪关键标的</div>
|
||
</div>
|
||
</section>
|
||
<section class="workspace-section trade-journal-section card">
|
||
<div class="workspace-heading card-h trade-log-heading review-card-heading">
|
||
<div><h3>交易日志</h3><span id="tradeLogCount" class="review-count-tag">0 条</span></div>
|
||
<button id="openTradeLogDialog" class="button primary" type="button"><i data-lucide="notebook-pen"></i><span>交易日志</span></button>
|
||
</div>
|
||
<div id="tradeLogSummary" class="trade-log-summary"></div>
|
||
<div class="table-frame tbl-wrap trade-log-table-frame">
|
||
<table class="data-table tbl trade-log-table">
|
||
<thead><tr><th>日期</th><th>股票</th><th>动作</th><th class="number num">仓位(%)</th><th class="number num">盈亏(%)</th><th class="number num">盈亏金额(元)</th><th>情绪 / 标签</th><th>交易复核</th><th>操作</th></tr></thead>
|
||
<tbody id="tradeLogTableBody"></tbody>
|
||
</table>
|
||
<div id="tradeLogEmpty" class="empty-state">当前日期暂无交易记录,空仓也值得记录原因</div>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
<section class="workspace-section journal-section card">
|
||
<div class="workspace-heading card-h review-card-heading">
|
||
<h3>每日复盘</h3>
|
||
<input id="journalDate" class="date-input" type="date" aria-label="复盘日期">
|
||
</div>
|
||
<form id="journalForm" class="journal-form">
|
||
<label class="form-field journal-summary-field"><span>今日盘面一句话</span><input id="journalSummary" maxlength="500" placeholder="用一句话概括今天最重要的市场特征"></label>
|
||
<label class="form-field"><span>今日做对了什么 / 做错了什么</span><textarea id="journalContent" maxlength="5000" placeholder="对照计划与纪律: · 做对的: · 做错的: · 漏掉的信号:"></textarea></label>
|
||
<label class="form-field"><span>明日策略</span><textarea id="journalPlan" maxlength="2000" placeholder="记录观察方向、触发条件、计划仓位和风险点"></textarea></label>
|
||
<p class="journal-form-hint">不求面面俱到,只记录影响下一次决策的事实。</p>
|
||
<div class="dialog-actions"><button class="button primary" type="submit"><i data-lucide="check"></i><span>完成复盘</span></button></div>
|
||
</form>
|
||
</section>
|
||
<section id="reviewHistoryPanel" class="workspace-section notes-history-section card" hidden>
|
||
<div class="workspace-heading card-h review-card-heading"><div><h3>最近复盘</h3><span id="notesCount" class="review-count-tag">0 条</span></div><small>按交易日倒序</small></div>
|
||
<div id="notesHistory" class="notes-history"><div class="empty-state">暂无复盘记录</div></div>
|
||
</section>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
</div>
|
||
|
||
<footer class="status-bar statusbar">
|
||
<span id="statusText">准备就绪</span>
|
||
<span class="risk-note">股市有风险,投资需谨慎</span>
|
||
<span id="updatedAt">--</span>
|
||
</footer>
|
||
|
||
<dialog id="tradeLogDialog" class="settings-dialog trade-log-dialog" aria-labelledby="tradeLogDialogTitle">
|
||
<div class="dialog-header">
|
||
<div><span class="dialog-eyebrow">我的复盘</span><h2 id="tradeLogDialogTitle">交易日志</h2></div>
|
||
<button id="closeTradeLogDialog" class="icon-button" type="button" aria-label="关闭" title="关闭"><i data-lucide="x"></i></button>
|
||
</div>
|
||
<form id="tradeLogForm" class="trade-log-form">
|
||
<div class="trade-log-form-grid">
|
||
<label class="form-field"><span>交易日</span><input id="tradeLogDate" type="date" required></label>
|
||
<label class="form-field"><span>股票代码</span><input id="tradeLogCode" inputmode="numeric" pattern="[0-9]{6}" maxlength="6" required placeholder="002141"></label>
|
||
<label class="form-field"><span>股票名称</span><input id="tradeLogName" maxlength="40" required placeholder="贤丰控股"></label>
|
||
<label class="form-field"><span>动作</span><select id="tradeLogAction"><option value="buy">买入</option><option value="sell">卖出</option><option value="add">加仓</option><option value="trim">减仓</option><option value="watch">观察</option></select></label>
|
||
<label class="form-field"><span>成交价格</span><input id="tradeLogPrice" type="number" min="0.001" step="0.001" required></label>
|
||
<label class="form-field"><span>数量</span><input id="tradeLogQuantity" type="number" min="0" step="100" value="0"></label>
|
||
<label class="form-field"><span>仓位 %</span><input id="tradeLogPosition" type="number" min="0" max="100" step="0.1" value="0"></label>
|
||
<label class="form-field"><span>盈亏金额(可选)</span><input id="tradeLogPnlAmount" type="number" step="0.01"></label>
|
||
<label class="form-field"><span>盈亏 %(可选)</span><input id="tradeLogPnlPct" type="number" step="0.01"></label>
|
||
<label class="form-field"><span>当时情绪</span><select id="tradeLogEmotion"><option value="calm">平静</option><option value="confident">笃定</option><option value="hesitant">犹豫</option><option value="anxious">焦虑</option><option value="impulsive">冲动</option></select></label>
|
||
<label class="form-field trade-tags-field"><span>标签</span><input id="tradeLogTags" maxlength="160" placeholder="计划内, 追高, 止损"></label>
|
||
</div>
|
||
<div class="trade-log-text-grid">
|
||
<label class="form-field"><span>交易逻辑</span><textarea id="tradeLogThesis" maxlength="2000" placeholder="为什么在这里采取动作"></textarea></label>
|
||
<label class="form-field"><span>执行复核</span><textarea id="tradeLogExecution" maxlength="2000" placeholder="是否按计划执行,偏差在哪里"></textarea></label>
|
||
</div>
|
||
<div class="dialog-actions"><button id="cancelTradeEdit" class="button" type="button">取消</button><button id="saveTradeLog" class="button primary" type="submit">保存交易</button></div>
|
||
</form>
|
||
</dialog>
|
||
|
||
<dialog id="watchlistDialog" class="settings-dialog watchlist-dialog" aria-labelledby="watchlistDialogTitle">
|
||
<div class="dialog-header">
|
||
<div><span class="dialog-eyebrow">自选跟踪</span><h2 id="watchlistDialogTitle">添加自选</h2></div>
|
||
<button id="closeWatchlistDialog" class="icon-button" type="button" aria-label="关闭" title="关闭"><i data-lucide="x"></i></button>
|
||
</div>
|
||
<form id="watchlistForm" class="watchlist-editor-form">
|
||
<div id="watchlistSearchField" class="form-field">
|
||
<label for="watchlistSearchInput">搜索股票</label>
|
||
<div class="watchlist-search-control"><i data-lucide="search"></i><input id="watchlistSearchInput" type="search" autocomplete="off" placeholder="输入股票代码或名称"></div>
|
||
<div id="watchlistSearchResults" class="watchlist-search-results" aria-live="polite"></div>
|
||
</div>
|
||
<div id="watchlistSelection" class="watchlist-selection" hidden>
|
||
<span class="watchlist-selection-icon"><i data-lucide="chart-candlestick"></i></span>
|
||
<div><strong id="watchlistSelectionName">--</strong><span><b id="watchlistSelectionCode">--</b><i id="watchlistSelectionSector">--</i></span></div>
|
||
<button id="changeWatchlistSelection" class="table-action" type="button">重选</button>
|
||
</div>
|
||
<label class="form-field" for="watchlistRemark"><span>跟踪备注</span><textarea id="watchlistRemark" maxlength="240" placeholder="记录关注逻辑、观察条件或失效信号"></textarea></label>
|
||
<div class="dialog-actions"><button id="cancelWatchlistEdit" class="button" type="button">取消</button><button id="saveWatchlist" class="button primary" type="submit" disabled>保存自选</button></div>
|
||
</form>
|
||
</dialog>
|
||
|
||
<dialog id="heavenReadingDialog" class="settings-dialog heaven-reading-dialog wentian-v2-dialog" aria-labelledby="heavenReadingDialogTitle">
|
||
<div class="dialog-header">
|
||
<div><span id="heavenReadingEyebrow" class="dialog-eyebrow">问天 · 观势</span><h2 id="heavenReadingDialogTitle">解读</h2></div>
|
||
<button id="closeHeavenReadingDialog" class="icon-button" type="button" aria-label="关闭" title="关闭"><i data-lucide="x"></i></button>
|
||
</div>
|
||
<div class="heaven-reading-tabs" role="tablist" aria-label="问天解读">
|
||
<button class="active" type="button" role="tab" data-heaven-reading-tab="current" aria-selected="true">本次解读</button>
|
||
<button type="button" role="tab" data-heaven-reading-tab="history" aria-selected="false">历史记录</button>
|
||
</div>
|
||
<section id="heavenReadingCurrent" class="heaven-reading-current" role="tabpanel">
|
||
<div id="heavenReadingLoading" class="heaven-reading-loading" hidden>
|
||
<canvas id="heavenReadingCanvas" aria-hidden="true"></canvas>
|
||
</div>
|
||
<div id="heavenReadingEmpty" class="empty-state">尚无本次解读</div>
|
||
<article id="heavenReadingResult" class="heaven-reading-result" hidden>
|
||
<header><div><span id="heavenReadingResultStatus">势已成</span><h3 id="heavenReadingSubject">--</h3></div><time id="heavenReadingCreatedAt">--</time></header>
|
||
<p id="heavenReadingSubjectDetail">--</p>
|
||
<div id="heavenReadingAnswer" class="heaven-reading-answer"></div>
|
||
</article>
|
||
<div id="heavenReadingError" class="inline-notice" hidden></div>
|
||
</section>
|
||
<section id="heavenReadingHistory" class="heaven-reading-history" role="tabpanel" hidden>
|
||
<div class="heaven-reading-history-list-wrap">
|
||
<div class="heaven-reading-history-heading"><strong id="heavenReadingHistoryTitle">观势记录</strong><span id="heavenReadingHistoryCount">0 条</span></div>
|
||
<div id="heavenReadingHistoryList" class="heaven-reading-history-list"></div>
|
||
</div>
|
||
<article id="heavenReadingHistoryDetail" class="heaven-reading-history-detail">
|
||
<div class="empty-state">选择一条记录查看完整解读</div>
|
||
</article>
|
||
</section>
|
||
</dialog>
|
||
|
||
<div id="stockPreviewBackdrop" class="stock-preview-backdrop" hidden></div>
|
||
<aside id="stockPreview" class="stock-preview" aria-label="个股行情预览" aria-live="polite" hidden>
|
||
<header class="stock-preview-header">
|
||
<div class="stock-preview-identity">
|
||
<span id="stockPreviewCode">--</span>
|
||
<strong id="stockPreviewName">正在加载</strong>
|
||
<small id="stockPreviewSector">--</small>
|
||
</div>
|
||
<div class="stock-preview-quote">
|
||
<strong id="stockPreviewPrice">--</strong>
|
||
<span id="stockPreviewChange">--</span>
|
||
</div>
|
||
<button id="closeStockPreview" class="icon-button stock-preview-close" type="button" title="关闭预览" aria-label="关闭预览"><i data-lucide="x"></i></button>
|
||
</header>
|
||
<div class="stock-preview-tabs" role="tablist" aria-label="行情图表">
|
||
<button class="stock-preview-tab active" type="button" role="tab" aria-selected="true" data-preview-chart="intraday">分时</button>
|
||
<button class="stock-preview-tab" type="button" role="tab" aria-selected="false" data-preview-chart="daily">日K</button>
|
||
<span id="stockPreviewDate">--</span>
|
||
</div>
|
||
<div class="stock-preview-chart-shell">
|
||
<canvas id="stockPreviewChart" width="488" height="232" aria-label="个股行情图" aria-describedby="stockPreviewSummary"></canvas>
|
||
<div id="stockPreviewLoading" class="stock-preview-loading">
|
||
<span class="spinner" aria-hidden="true"></span>
|
||
<span>正在读取行情</span>
|
||
</div>
|
||
</div>
|
||
<p id="stockPreviewSummary" class="stock-preview-summary">等待行情数据</p>
|
||
<footer class="stock-preview-footer">
|
||
<span id="stockPreviewSource">--</span>
|
||
<button id="openStockDetailFromPreview" class="button" type="button"><i data-lucide="maximize-2"></i><span>完整详情</span></button>
|
||
</footer>
|
||
</aside>
|
||
|
||
<dialog id="globalSearchDialog" class="global-search-dialog" aria-labelledby="globalSearchTitle">
|
||
<div class="global-search-shell">
|
||
<h2 id="globalSearchTitle" class="sr-only">全局搜索</h2>
|
||
<div class="global-search-head">
|
||
<i data-lucide="search" aria-hidden="true"></i>
|
||
<label class="sr-only" for="globalSearchInput">搜索股票、板块、题材或指数</label>
|
||
<input id="globalSearchInput" type="search" autocomplete="off" spellcheck="false" placeholder="搜索股票、板块、题材或指数" aria-controls="globalSearchResults" aria-autocomplete="list">
|
||
<kbd aria-label="快捷键 Ctrl 加 K">Ctrl K</kbd>
|
||
<button id="closeGlobalSearch" class="icon-button" type="button" aria-label="关闭搜索" title="关闭搜索"><i data-lucide="x"></i></button>
|
||
</div>
|
||
<div id="globalSearchResults" class="global-search-results" role="listbox" aria-labelledby="globalSearchTitle" aria-live="polite">
|
||
<div class="global-search-empty"><i data-lucide="corner-down-left"></i><p>输入名称或代码开始搜索</p><span>使用方向键选择,回车打开详情</span></div>
|
||
</div>
|
||
</div>
|
||
</dialog>
|
||
|
||
<dialog id="entityDetailDialog" class="stock-dialog entity-detail-dialog" aria-labelledby="entityDetailName">
|
||
<div class="dialog-header">
|
||
<div>
|
||
<span id="entityDetailCode" class="detail-code">--</span>
|
||
<h2 id="entityDetailName">--</h2>
|
||
</div>
|
||
<button id="closeEntityDetail" class="icon-button" type="button" aria-label="关闭" title="关闭"><i data-lucide="x"></i></button>
|
||
</div>
|
||
<div class="detail-price-line">
|
||
<strong id="entityDetailValue">--</strong>
|
||
<span id="entityDetailChange">--</span>
|
||
<span id="entityDetailType" class="streak-pill">--</span>
|
||
</div>
|
||
<section class="stock-chart-section">
|
||
<div class="detail-section-heading">
|
||
<h3>行情走势</h3>
|
||
<div class="chart-heading-controls">
|
||
<div class="segmented chart-mode-toggle" role="group" aria-label="详情图表周期">
|
||
<button class="segment active" type="button" data-entity-detail-chart="daily" aria-pressed="true">日K</button>
|
||
<button class="segment" type="button" data-entity-detail-chart="intraday" aria-pressed="false">分时</button>
|
||
</div>
|
||
<span id="entityDetailDate">--</span>
|
||
</div>
|
||
</div>
|
||
<canvas id="entityDetailChart" class="price-chart" width="680" height="300" aria-label="行情走势图"></canvas>
|
||
</section>
|
||
<section class="detail-section">
|
||
<h3>交易数据</h3>
|
||
<dl id="entityDetailMetrics" class="detail-grid"></dl>
|
||
</section>
|
||
</dialog>
|
||
|
||
<dialog id="stockDialog" class="stock-dialog" aria-labelledby="detailName">
|
||
<div class="dialog-header">
|
||
<div>
|
||
<span id="detailCode" class="detail-code">--</span>
|
||
<h2 id="detailName">--</h2>
|
||
</div>
|
||
<div class="dialog-header-actions">
|
||
<button id="stockHeavenButton" class="button stock-heaven-button" type="button"><i data-lucide="sparkles"></i><span>观势</span></button>
|
||
<button id="stockReminderButton" class="button" type="button"><i data-lucide="bell-plus"></i><span>设提醒</span></button>
|
||
<button id="watchStockButton" class="button" type="button">加入自选</button>
|
||
<button id="closeStockDialog" class="icon-button" type="button" aria-label="关闭" title="关闭"><i data-lucide="x"></i></button>
|
||
</div>
|
||
</div>
|
||
<div class="detail-price-line">
|
||
<strong id="detailPrice">--</strong>
|
||
<span id="detailChange">--</span>
|
||
<span id="detailStreak" class="streak-pill">--</span>
|
||
</div>
|
||
<section class="stock-chart-section">
|
||
<div class="detail-section-heading">
|
||
<h3>行情走势</h3>
|
||
<div class="chart-heading-controls">
|
||
<div class="segmented chart-mode-toggle" role="group" aria-label="股票图表周期">
|
||
<button class="segment active" type="button" data-stock-detail-chart="daily" aria-pressed="true">日K</button>
|
||
<button class="segment" type="button" data-stock-detail-chart="intraday" aria-pressed="false">分时</button>
|
||
</div>
|
||
<span id="chartSource">--</span>
|
||
</div>
|
||
</div>
|
||
<canvas id="priceChart" class="price-chart" width="680" height="300" aria-label="股票行情走势图"></canvas>
|
||
</section>
|
||
<section class="detail-section moneyflow-section">
|
||
<h3>当日资金流</h3>
|
||
<dl class="moneyflow-grid">
|
||
<div><dt>主力净额</dt><dd id="flowNet">--</dd></div>
|
||
<div><dt>大单净额</dt><dd id="flowLarge">--</dd></div>
|
||
<div><dt>中单净额</dt><dd id="flowMedium">--</dd></div>
|
||
<div><dt>小单净额</dt><dd id="flowSmall">--</dd></div>
|
||
</dl>
|
||
</section>
|
||
<section class="detail-section">
|
||
<h3>事件逻辑</h3>
|
||
<p id="detailReason">--</p>
|
||
<span id="detailSector" class="sector-chip">--</span>
|
||
<form id="reasonForm" class="inline-edit-form" hidden>
|
||
<input id="reasonInput" type="text" maxlength="200" placeholder="修订事件逻辑">
|
||
<button class="button" type="submit">保存修订</button>
|
||
</form>
|
||
</section>
|
||
<section class="detail-section">
|
||
<h3>交易数据</h3>
|
||
<dl class="detail-grid">
|
||
<div><dt>首次触板</dt><dd id="detailFirst">--</dd></div>
|
||
<div><dt>最后触板</dt><dd id="detailLast">--</dd></div>
|
||
<div><dt>开板次数</dt><dd id="detailOpen">--</dd></div>
|
||
<div><dt>换手率</dt><dd id="detailTurnover">--</dd></div>
|
||
<div><dt>成交额</dt><dd id="detailAmount">--</dd></div>
|
||
<div><dt>封单额</dt><dd id="detailSeal">--</dd></div>
|
||
</dl>
|
||
</section>
|
||
<section class="detail-section">
|
||
<h3>个股复盘笔记</h3>
|
||
<form id="stockNoteForm" class="journal-form compact-form">
|
||
<label class="form-field"><span>复盘内容</span><textarea id="stockNoteContent" maxlength="5000" placeholder="记录交易逻辑与盘面反馈"></textarea></label>
|
||
<label class="form-field"><span>明日计划</span><textarea id="stockNotePlan" maxlength="2000" placeholder="记录观察条件和应对计划"></textarea></label>
|
||
<div class="dialog-actions"><button class="button primary" type="submit">保存笔记</button></div>
|
||
</form>
|
||
<div id="stockNotes" class="notes-history compact-notes"></div>
|
||
</section>
|
||
</dialog>
|
||
|
||
<dialog id="alertsDialog" class="settings-dialog alerts-dialog" aria-labelledby="alertsDialogTitle">
|
||
<div class="dialog-header">
|
||
<div><span class="dialog-eyebrow">当前账号</span><h2 id="alertsDialogTitle">提醒中心</h2></div>
|
||
<button id="closeAlertsDialog" class="icon-button" type="button" aria-label="关闭" title="关闭"><i data-lucide="x"></i></button>
|
||
</div>
|
||
<div class="alerts-toolbar">
|
||
<div class="segmented" role="group" aria-label="提醒筛选">
|
||
<button class="segment active" type="button" data-alert-filter="all">全部</button>
|
||
<button class="segment" type="button" data-alert-filter="unread">未读</button>
|
||
</div>
|
||
<button id="markAllAlertsRead" class="button" type="button">全部已读</button>
|
||
</div>
|
||
<form id="alertForm" class="settings-section alert-form">
|
||
<div class="settings-section-heading"><h3>新建提醒</h3><span>仅站内</span></div>
|
||
<div class="alert-form-grid">
|
||
<label class="form-field"><span>标题</span><input id="alertTitle" maxlength="80" required placeholder="例如:复核开盘承接"></label>
|
||
<label class="form-field"><span>提醒日期</span><input id="alertDate" type="date" required></label>
|
||
<label class="form-field"><span>股票代码(可选)</span><input id="alertCode" maxlength="12" inputmode="numeric" placeholder="002141"></label>
|
||
</div>
|
||
<label class="form-field"><span>提醒内容(可选)</span><textarea id="alertContent" maxlength="500" placeholder="记录触发条件和应对动作"></textarea></label>
|
||
<div class="dialog-actions"><button class="button primary" type="submit">保存提醒</button></div>
|
||
</form>
|
||
<section class="settings-section alert-list-section">
|
||
<div class="settings-section-heading"><h3>提醒记录</h3><span id="alertListCount">0 条</span></div>
|
||
<div id="alertList" class="alert-list"></div>
|
||
</section>
|
||
</dialog>
|
||
|
||
<dialog id="assistantDialog" class="settings-dialog assistant-dialog" aria-labelledby="assistantDialogTitle">
|
||
<div class="dialog-header">
|
||
<div><span class="dialog-eyebrow">智能复盘</span><h2 id="assistantDialogTitle">复盘助手</h2></div>
|
||
<div class="dialog-header-actions">
|
||
<button id="clearAssistantMessages" class="button" type="button">清空对话</button>
|
||
<button id="closeAssistantDialog" class="icon-button" type="button" aria-label="关闭" title="关闭"><i data-lucide="x"></i></button>
|
||
</div>
|
||
</div>
|
||
<div id="assistantMemberGate" class="member-gate assistant-member-gate" hidden>
|
||
<div class="member-gate-icon"><i data-lucide="lock-keyhole"></i></div>
|
||
<div><strong>复盘助手仅对会员开放</strong><span>开通会员后可读取市场统计、策略跟踪与个人复盘记录,进行统一复盘分析。</span></div>
|
||
</div>
|
||
<div id="assistantMemberContent" class="assistant-member-content">
|
||
<div id="assistantMessages" class="assistant-messages" aria-live="polite">
|
||
<div class="empty-state">可以从市场、策略或自己的交易记录开始复盘</div>
|
||
</div>
|
||
<div class="assistant-quick-prompts" aria-label="快捷问题">
|
||
<button type="button" data-assistant-prompt="结合近十日情绪和今天的数据,当前市场处于什么位置?">市场位置</button>
|
||
<button type="button" data-assistant-prompt="总结当前市场主线,并说明证据和可能的失效条件。">市场主线</button>
|
||
<button type="button" data-assistant-prompt="结合我的策略跟踪和交易日志,找出最值得修正的一个行为模式。">交易复盘</button>
|
||
<button type="button" data-assistant-prompt="为下一个交易日给出条件化观察清单,不给无条件买卖指令。">明日清单</button>
|
||
</div>
|
||
<form id="assistantForm" class="assistant-form">
|
||
<label class="sr-only" for="assistantQuestion">向复盘助手提问</label>
|
||
<textarea id="assistantQuestion" maxlength="2000" placeholder="询问市场位置、主线、策略表现或自己的交易模式" required></textarea>
|
||
<div class="assistant-form-actions">
|
||
<button id="stopAssistant" class="button" type="button" hidden><i data-lucide="square"></i>停止</button>
|
||
<button id="sendAssistant" class="button primary" type="submit"><i data-lucide="send"></i>发送</button>
|
||
</div>
|
||
</form>
|
||
<p class="assistant-disclaimer">助手仅用于复盘与条件化计划,不执行交易,不构成投资建议。</p>
|
||
</div>
|
||
</dialog>
|
||
|
||
<dialog id="settingsDialog" class="settings-dialog account-settings-dialog" aria-labelledby="accountDialogTitle">
|
||
<div class="dialog-header">
|
||
<div>
|
||
<span class="dialog-eyebrow">当前账号</span>
|
||
<h2 id="accountDialogTitle">个人资料</h2>
|
||
</div>
|
||
<button id="closeSettingsDialog" class="icon-button" type="button" aria-label="关闭" title="关闭"><i data-lucide="x"></i></button>
|
||
</div>
|
||
<div id="connectionStatus" class="connection-status" aria-live="polite">正在读取账号状态</div>
|
||
<section class="settings-section membership-overview account-settings-panel" data-account-panel-content="membership" hidden>
|
||
<div class="settings-section-heading"><h3>会员状态</h3><span id="membershipBadge">普通用户</span></div>
|
||
<p id="membershipDetail" class="settings-lead">开通会员后可使用智能选股、问师、问天、复盘助手等智能功能。</p>
|
||
<p id="membershipQuotaHint" class="form-hint">会员默认每日智能分析额度 -- 次,由管理员统一设置。</p>
|
||
<div id="membershipUsage" class="membership-usage">今日智能分析 -- 次</div>
|
||
<div class="membership-status-grid">
|
||
<div><span>开通状态</span><strong id="membershipStateValue">未开通</strong></div>
|
||
<div><span>剩余时长</span><strong id="membershipRemainingValue">--</strong></div>
|
||
<div><span>今日智能分析</span><strong id="membershipUsageSummary">--</strong></div>
|
||
<div><span>剩余智能分析</span><strong id="membershipRemainingUsage">--</strong></div>
|
||
</div>
|
||
<div class="membership-comparison" aria-label="会员权益对比">
|
||
<div class="membership-comparison-head"><span>功能</span><span>普通用户</span><span>会员用户</span></div>
|
||
<div><span>行情、搜索与个股详情</span><b>可用</b><b>可用</b></div>
|
||
<div><span>自选股、复盘记录与交易日志</span><b>可用</b><b>可用</b></div>
|
||
<div><span>智能选股</span><b class="muted">不可用</b><b class="available">可用</b></div>
|
||
<div><span>问师与问天</span><b class="muted">不可用</b><b class="available">可用</b></div>
|
||
<div><span>复盘助手</span><b class="muted">不可用</b><b class="available">可用</b></div>
|
||
<div><span>每日智能分析额度</span><b class="muted">无</b><b class="available">按会员额度使用</b></div>
|
||
</div>
|
||
<div class="membership-topup-row"><span><i data-lucide="battery-charging"></i>智能分析加油包</span><button id="membershipTopupButton" class="button" type="button" disabled>暂不可用</button></div>
|
||
</section>
|
||
<section class="settings-section account-birth-section account-settings-panel" data-account-panel-content="profile">
|
||
<div class="settings-section-heading"><h3>个人资料</h3><span id="birthProfileStatus">尚未设置</span></div>
|
||
<p class="settings-lead privacy-note"><i data-lucide="lock-keyhole"></i><span>出生信息仅对当前账号可见并加密保存,不会向其他用户公开。</span></p>
|
||
<form id="accountBirthForm" class="account-birth-form">
|
||
<label class="form-field"><span>出生日期</span><input id="accountBirthDate" type="date" min="1900-01-01" max="2100-12-31" required></label>
|
||
<label class="form-field"><span>出生时间</span><input id="accountBirthTime" type="time" required></label>
|
||
<label class="form-field"><span>性别</span><select id="accountBirthGender"><option value="unspecified">不指定</option><option value="male">男</option><option value="female">女</option></select></label>
|
||
<div class="dialog-actions">
|
||
<button id="deleteBirthProfileButton" class="button danger-button" type="button">删除资料</button>
|
||
<button class="button primary" type="submit">保存资料</button>
|
||
</div>
|
||
</form>
|
||
<p class="form-hint">原始信息加密保存且不在观气页回显;智能解读只使用排盘后的派生结果。</p>
|
||
</section>
|
||
<section class="settings-section password-section account-settings-panel" data-account-panel-content="password" hidden>
|
||
<div class="settings-section-heading"><h3>修改密码</h3><span>仅当前账号</span></div>
|
||
<form id="passwordForm" class="password-form">
|
||
<label class="form-field"><span>当前密码</span><input id="currentPassword" type="password" autocomplete="current-password" required></label>
|
||
<label class="form-field"><span>新密码</span><input id="newPassword" type="password" minlength="8" maxlength="128" autocomplete="new-password" required></label>
|
||
<label class="form-field"><span>确认新密码</span><input id="confirmPassword" type="password" minlength="8" maxlength="128" autocomplete="new-password" required></label>
|
||
<div class="dialog-actions"><button class="button primary" type="submit">更新密码</button></div>
|
||
</form>
|
||
</section>
|
||
</dialog>
|
||
|
||
<dialog id="adminDialog" class="settings-dialog admin-dialog" aria-labelledby="adminDialogTitle">
|
||
<div class="dialog-header">
|
||
<div><span class="dialog-eyebrow">管理员</span><h2 id="adminDialogTitle">系统配置</h2></div>
|
||
<button id="closeAdminDialog" class="icon-button" type="button" aria-label="关闭" title="关闭"><i data-lucide="x"></i></button>
|
||
</div>
|
||
<div id="adminConnectionStatus" class="connection-status" aria-live="polite">正在读取系统状态</div>
|
||
<div class="admin-section-picker">
|
||
<label for="adminSectionSelect">管理项目</label>
|
||
<select id="adminSectionSelect">
|
||
<option value="market">行情管理</option>
|
||
<option value="models">模型池</option>
|
||
<option value="members">会员管理</option>
|
||
</select>
|
||
</div>
|
||
<div class="admin-panel" data-admin-panel="market">
|
||
<form id="systemMarketForm" class="settings-section">
|
||
<div class="settings-section-heading"><h3>公共行情</h3><span id="systemDataStatus">待检查</span></div>
|
||
<label class="form-field"><span>Tushare Token</span><input id="systemTokenInput" type="password" autocomplete="off" minlength="20" placeholder="留空保留现有 Token"></label>
|
||
<label class="form-field"><span>iFinD Refresh Token</span><input id="systemIfindTokenInput" type="password" autocomplete="off" maxlength="2048" placeholder="留空保留现有 Token"></label>
|
||
<label class="switch-control"><input id="systemBackgroundRefresh" type="checkbox"><span>启用交易时段后台刷新</span></label>
|
||
<p class="form-hint">所有用户读取同一份后台快照,页面不会随后台任务自动重绘。</p>
|
||
<div class="dialog-actions admin-inline-actions"><button id="adminRefreshButton" class="button" type="button"><i data-lucide="refresh-cw"></i>立即后台刷新</button><button class="button primary" type="submit">保存行情配置</button></div>
|
||
</form>
|
||
<section class="settings-section">
|
||
<div class="settings-section-heading"><h3>历史数据回补</h3><span>管理员任务</span></div>
|
||
<div class="backfill-controls">
|
||
<label class="form-field"><span>开始日期</span><input id="backfillStart" type="date"></label>
|
||
<label class="form-field"><span>结束日期</span><input id="backfillEnd" type="date"></label>
|
||
</div>
|
||
<div class="dialog-actions"><button id="backfillButton" class="button" type="button">开始回补</button></div>
|
||
</section>
|
||
</div>
|
||
<div class="admin-panel" data-admin-panel="models" hidden>
|
||
<form id="systemModelsForm" class="settings-section">
|
||
<div class="settings-section-heading"><h3>平台模型池</h3><span>会员共享</span></div>
|
||
<div class="model-role-selectors">
|
||
<label class="form-field"><span>主模型</span><select id="platformPrimaryModelSelect"></select></label>
|
||
<label class="form-field"><span>辅助模型</span><select id="platformFallbackModelSelect"><option value="">不启用辅助模型</option></select></label>
|
||
</div>
|
||
<div id="modelPoolList" class="model-pool-list"></div>
|
||
<div class="dialog-actions admin-inline-actions"><button id="addPlatformModel" class="button" type="button"><i data-lucide="plus"></i>添加模型</button><button class="button primary" type="submit">保存模型池</button></div>
|
||
</form>
|
||
</div>
|
||
<div class="admin-panel" data-admin-panel="members" hidden>
|
||
<form id="membershipSettingsForm" class="settings-section membership-limit-form">
|
||
<div class="settings-section-heading"><h3>会员调用额度</h3><span>每日自动重置</span></div>
|
||
<label class="form-field compact-number-field"><span>会员每日智能分析上限</span><input id="memberDailyLimit" type="number" min="1" max="1000" value="50"></label>
|
||
<div class="dialog-actions"><button class="button primary" type="submit">保存调用额度</button></div>
|
||
</form>
|
||
<section class="settings-section">
|
||
<div class="settings-section-heading"><h3>会员账号</h3><span>手动开通与续期</span></div>
|
||
<div id="adminUsersList" class="admin-users-list"></div>
|
||
</section>
|
||
</div>
|
||
</dialog>
|
||
|
||
<div id="loadingOverlay" class="loading-overlay" hidden>
|
||
<div class="loading-box">
|
||
<span class="spinner" aria-hidden="true"></span>
|
||
<div class="loading-copy">
|
||
<strong id="loadingTitle">正在加载复盘数据</strong>
|
||
<small id="loadingHint">请稍候</small>
|
||
</div>
|
||
<div class="loading-progress" aria-hidden="true"><i></i></div>
|
||
</div>
|
||
</div>
|
||
<div id="toast" class="toast" role="status" hidden></div>
|
||
|
||
<script src="/vendor/lucide.min.js" defer></script>
|
||
<script src="/ui-core.js" defer></script>
|
||
<script src="/heaven-loading-v2.js?v=20260728-2" defer></script>
|
||
<script src="/app.js?v=20260728-3" defer></script>
|
||
</body>
|
||
</html>
|