index.html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>超短线量化选股程序(插件化架构)</title>
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
</head>
<body>
<div class="container-fluid p-0">
<!-- 导航栏 -->
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
<div class="container">
<a class="navbar-brand" href="#">超短线量化选股程序(插件化架构)</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item">
<a class="nav-link active" href="#stock-selection">选股</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#backtest">回测</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#optimization">参数优化</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#results">选股结果</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#config">配置</a>
</li>
</ul>
</div>
</div>
</nav>
<!-- 主内容区域 -->
<div class="container py-5">
<!-- 选股模块 -->
<section id="stock-selection" class="mb-5">
<h2 class="mb-4">选股功能</h2>
<!-- 策略选择(多选) -->
<div class="row mb-3">
<div class="col-md-8">
<div class="input-group">
<label class="input-group-text" for="strategy-select">选股策略(可多选)</label>
<select class="form-select" id="strategy-select" multiple size="3">
<option value="vcp" selected>VCP(波动率收缩模式)策略</option>
<option value="model" selected>大模型选股策略</option>
<option value="test">测试选股策略</option>
</select>
</div>
<div class="form-text">按住Ctrl/Cmd键可多选,多个策略之间为逻辑与关系</div>
</div>
<div class="col-md-4">
<div class="input-group">
<label class="input-group-text" for="trade-date">选股日期</label>
<input type="date" class="form-control" id="trade-date">
</div>
</div>
</div>
<!-- 选股按钮 -->
<div class="d-grid gap-2 d-md-flex justify-content-md-start">
<button class="btn btn-primary btn-lg" id="select-stocks-btn">选股</button>
<button class="btn btn-secondary" id="update-data-btn">更新数据</button>
</div>
<!-- 选股结果 -->
<div id="selection-results" class="mt-4"></div>
</section>
<!-- 回测模块 -->
<section id="backtest" class="mb-5">
<h2 class="mb-4">回测功能</h2>
<!-- 回测参数 -->
<div class="row mb-3">
<div class="col-md-8">
<div class="input-group">
<label class="input-group-text" for="backtest-strategy">回测策略(可多选)</label>
<select class="form-select" id="backtest-strategy" multiple size="3">
<option value="vcp" selected>VCP(波动率收缩模式)策略</option>
<option value="model" selected>大模型选股策略</option>
<option value="test">测试选股策略</option>
</select>
</div>
<div class="form-text">按住Ctrl/Cmd键可多选,多个策略之间为逻辑与关系</div>
</div>
<div class="col-md-4">
<div class="input-group">
<label class="input-group-text" for="start-date">开始日期</label>
<input type="date" class="form-control" id="start-date">
</div>
</div>
<div class="col-md-4">
<div class="input-group">
<label class="input-group-text" for="end-date">结束日期</label>
<input type="date" class="form-control" id="end-date">
</div>
</div>
</div>
<!-- 回测按钮 -->
<div class="d-grid gap-2 d-md-flex justify-content-md-start">
<button class="btn btn-primary btn-lg" id="backtest-btn">回测</button>
</div>
<!-- 回测报告 -->
<div id="backtest-report" class="mt-4"></div>
</section>
<!-- 参数优化模块 -->
<section id="optimization" class="mb-5">
<h2 class="mb-4">参数优化</h2>
<!-- 优化策略选择 -->
<div class="row mb-3">
<div class="col-md-6">
<div class="input-group">
<label class="input-group-text" for="optimization-strategy">优化策略</label>
<select class="form-select" id="optimization-strategy">
<option value="vcp">VCP(波动率收缩模式)策略</option>
<option value="model">大模型选股策略</option>
<option value="test">测试选股策略</option>
</select>
</div>
</div>
</div>
<!-- 优化按钮 -->
<div class="d-grid gap-2 d-md-flex justify-content-md-start">
<button class="btn btn-primary btn-lg" id="optimize-btn">参数优化</button>
</div>
<!-- 优化结果 -->
<div id="optimization-results" class="mt-4"></div>
</section>
<!-- 选股结果模块 -->
<section id="results" class="mb-5">
<h2 class="mb-4">选股结果</h2>
<!-- 结果查询 -->
<div class="row mb-3">
<div class="col-md-6">
<div class="input-group">
<label class="input-group-text" for="results-strategy">策略选择</label>
<select class="form-select" id="results-strategy" multiple size="3">
<option value="vcp" selected>VCP(波动率收缩模式)策略</option>
<option value="model" selected>大模型选股策略</option>
<option value="test">测试选股策略</option>
</select>
</div>
</div>
<div class="col-md-4">
<div class="input-group">
<label class="input-group-text" for="results-date">查询日期</label>
<input type="date" class="form-control" id="results-date">
</div>
</div>
<div class="col-md-2">
<div class="d-grid gap-2">
<button class="btn btn-primary" id="query-results-btn">查询结果</button>
</div>
</div>
</div>
<!-- 结果展示 -->
<div id="results-display" class="mt-4"></div>
</section>
<!-- 配置模块 -->
<section id="config" class="mb-5">
<h2 class="mb-4">配置信息</h2>
<!-- 配置展示 -->
<div id="config-display" class="mt-4"></div>
</section>
</div>
</div>
<!-- 加载动画 -->
<div id="loading-overlay" class="overlay d-none">
<div class="spinner-border text-primary" role="status">
<span class="visually-hidden">加载中...</span>
</div>
</div>
<script src="{{ url_for('static', filename='js/app.js') }}"></script>
</body>
</html>