Files
stockbuddy/frontend/index.html

264 lines
12 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Stock Buddy - 港股AI交易系统</title>
<link rel="stylesheet" href="style.css">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
</head>
<body>
<div id="app">
<!-- 侧边栏 -->
<aside class="sidebar">
<div class="logo">
<span class="logo-icon">📈</span>
<span class="logo-text">Stock Buddy</span>
</div>
<nav class="nav-menu">
<a href="#" class="nav-item active" data-page="dashboard">
<span class="nav-icon">🏠</span>
<span>总览</span>
</a>
<a href="#" class="nav-item" data-page="positions">
<span class="nav-icon">💼</span>
<span>持仓管理</span>
</a>
<a href="#" class="nav-item" data-page="analysis">
<span class="nav-icon">🔍</span>
<span>股票分析</span>
</a>
<a href="#" class="nav-item" data-page="sentiment">
<span class="nav-icon">📰</span>
<span>舆情监控</span>
</a>
<a href="#" class="nav-item" data-page="settings">
<span class="nav-icon">⚙️</span>
<span>设置</span>
</a>
</nav>
<div class="sidebar-footer">
<div class="market-status">
<span class="status-dot green"></span>
<span>市场状态: 交易中</span>
</div>
</div>
</aside>
<!-- 主内容区 -->
<main class="main-content">
<!-- 顶部栏 -->
<header class="header">
<h1 id="page-title">总览</h1>
<div class="header-actions">
<button class="btn btn-primary" id="refresh-btn">
<span>🔄</span> 刷新数据
</button>
<button class="btn btn-secondary" id="run-analysis-btn">
<span>▶️</span> 运行分析
</button>
</div>
</header>
<!-- 页面内容 -->
<div class="content" id="content-area">
<!-- 总览页 -->
<div id="page-dashboard" class="page active">
<!-- 统计卡片 -->
<div class="stats-grid">
<div class="stat-card">
<div class="stat-label">总持仓市值</div>
<div class="stat-value" id="total-value">--</div>
<div class="stat-change" id="total-pnl">--</div>
</div>
<div class="stat-card">
<div class="stat-label">今日盈亏</div>
<div class="stat-value" id="daily-pnl">--</div>
<div class="stat-change" id="daily-pnl-percent">--</div>
</div>
<div class="stat-card">
<div class="stat-label">持仓数量</div>
<div class="stat-value" id="position-count">--</div>
<div class="stat-label-small">只股票</div>
</div>
<div class="stat-card">
<div class="stat-label">买入信号</div>
<div class="stat-value buy" id="buy-signals">--</div>
<div class="stat-label-small">个机会</div>
</div>
</div>
<!-- 持仓列表 -->
<div class="section">
<h2 class="section-title">持仓股票</h2>
<div class="table-container">
<table class="data-table" id="positions-table">
<thead>
<tr>
<th>股票</th>
<th>代码</th>
<th>持仓</th>
<th>成本价</th>
<th>现价</th>
<th>市值</th>
<th>盈亏</th>
<th>信号</th>
<th>操作</th>
</tr>
</thead>
<tbody id="positions-tbody">
<tr>
<td colspan="9" class="loading">加载中...</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<!-- 持仓管理页 -->
<div id="page-positions" class="page">
<div class="section">
<div class="section-header">
<h2 class="section-title">持仓列表</h2>
<button class="btn btn-primary" id="add-position-btn">
<span>+</span> 添加持仓
</button>
</div>
<div class="table-container">
<table class="data-table" id="manage-positions-table">
<thead>
<tr>
<th>股票名称</th>
<th>股票代码</th>
<th>持仓数量</th>
<th>成本价</th>
<th>当前价</th>
<th>盈亏</th>
<th>策略</th>
<th>操作</th>
</tr>
</thead>
<tbody id="manage-positions-tbody">
<tr>
<td colspan="8" class="loading">加载中...</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<!-- 股票分析页 -->
<div id="page-analysis" class="page">
<div class="section">
<div class="section-header">
<h2 class="section-title">股票分析</h2>
</div>
<!-- 搜索框 -->
<div class="search-box">
<input type="text" id="stock-search" placeholder="输入股票名称或代码(如:中芯国际 或 0981.HK">
<button class="btn btn-primary" id="analyze-btn">分析</button>
</div>
<!-- 分析结果 -->
<div id="analysis-result" class="analysis-result hidden">
<div class="result-loading">分析中...</div>
</div>
</div>
</div>
<!-- 舆情监控页 -->
<div id="page-sentiment" class="page">
<div class="section">
<h2 class="section-title">舆情监控</h2>
<div id="sentiment-list">
<p class="empty-state">选择持仓股票查看舆情分析</p>
</div>
</div>
</div>
<!-- 设置页 -->
<div id="page-settings" class="page">
<div class="section">
<h2 class="section-title">系统设置</h2>
<div class="settings-form">
<div class="form-group">
<label>默认策略</label>
<select id="default-strategy">
<option value="A">A - 固定止损12%</option>
<option value="B">B - ATR动态止损</option>
<option value="C" selected>C - 混合自适应</option>
</select>
</div>
<div class="form-group">
<label>大盘过滤</label>
<label class="toggle">
<input type="checkbox" id="market-filter" checked>
<span class="toggle-slider"></span>
<span class="toggle-label">启用恒生指数MA20过滤</span>
</label>
</div>
<div class="form-group">
<label>自动分析时间</label>
<input type="time" id="auto-analysis-time" value="09:00">
</div>
<button class="btn btn-primary" id="save-settings">保存设置</button>
</div>
</div>
</div>
</div>
</main>
</div>
<!-- 添加持仓弹窗 -->
<div class="modal hidden" id="add-position-modal">
<div class="modal-content">
<div class="modal-header">
<h3>添加持仓</h3>
<button class="modal-close">&times;</button>
</div>
<form id="add-position-form">
<div class="form-group">
<label>股票名称</label>
<input type="text" id="pos-name" required placeholder="如:中芯国际">
</div>
<div class="form-group">
<label>股票代码</label>
<input type="text" id="pos-ticker" required placeholder="如0981.HK">
</div>
<div class="form-group">
<label>持仓数量</label>
<input type="number" id="pos-shares" required min="1" placeholder="1000">
</div>
<div class="form-group">
<label>成本价</label>
<input type="number" id="pos-cost" required step="0.001" placeholder="50.00">
</div>
<div class="form-group">
<label>策略</label>
<select id="pos-strategy">
<option value="C" selected>C - 混合自适应</option>
<option value="A">A - 固定止损12%</option>
<option value="B">B - ATR动态止损</option>
</select>
</div>
<div class="form-group">
<label>备注</label>
<textarea id="pos-notes" rows="2"></textarea>
</div>
<div class="modal-actions">
<button type="button" class="btn btn-secondary" id="cancel-add">取消</button>
<button type="submit" class="btn btn-primary">添加</button>
</div>
</form>
</div>
</div>
<script src="app.js"></script>
</body>
</html>