diff --git a/操作说明书.md b/操作说明书.md new file mode 100644 index 0000000..003561b --- /dev/null +++ b/操作说明书.md @@ -0,0 +1,1301 @@ +# TickFlow A 股智能量化工作台操作说明书 + +> 适用前端版本:0.1.87 +> +> 文档用途:面向部署者、普通使用者和策略使用者,说明系统安装、配置、数据准备、各功能页面操作、维护与排错方法。 +> +> 风险提示:本项目用于数据分析和策略研究,不构成任何投资建议。历史表现不代表未来收益,实盘决策及其风险由使用者自行承担。 + +## 目录 + +- [1. 项目概览](#1-项目概览) +- [2. 安装与启动](#2-安装与启动) +- [3. 首次进入系统](#3-首次进入系统) +- [4. 推荐使用流程](#4-推荐使用流程) +- [5. 通用界面与操作](#5-通用界面与操作) +- [6. 看板](#6-看板) +- [7. 自选](#7-自选) +- [8. 策略](#8-策略) +- [9. 回测](#9-回测) +- [10. 个股分析](#10-个股分析) +- [11. 连板梯队](#11-连板梯队) +- [12. 概念分析](#12-概念分析) +- [13. 行业分析](#13-行业分析) +- [14. 财务分析](#14-财务分析) +- [15. 监控中心](#15-监控中心) +- [16. AI 复盘](#16-ai-复盘) +- [17. 指数](#17-指数) +- [18. 数据](#18-数据) +- [19. 设置](#19-设置) +- [20. 数据源、扩展数据与插件](#20-数据源扩展数据与插件) +- [21. 权限与能力说明](#21-权限与能力说明) +- [22. 数据目录、备份与迁移](#22-数据目录备份与迁移) +- [23. 更新与维护](#23-更新与维护) +- [24. 常见问题与排错](#24-常见问题与排错) +- [25. 安全建议](#25-安全建议) +- [26. 常用术语](#26-常用术语) + +## 1. 项目概览 + +TickFlow A 股智能量化工作台是一套本地优先的 A 股数据分析与策略研究工具,主要功能包括: + +- A 股、ETF、指数日 K 与分钟数据管理。 +- 自选股管理、行情查看和标的详情分析。 +- 内置策略、自定义策略和 AI 创建策略。 +- 因子回测、策略回测、参数优化和步进优化。 +- 个股、概念、行业、连板梯队及财务分析。 +- 策略、价格、涨跌、个股信号和市场异动监控。 +- AI 个股分析、财务分析和盘后复盘。 +- TickFlow、数据源插件、自定义 HTTP 数据源和扩展数据接入。 + +系统默认将主要业务数据保存在本机 `data/` 目录。除调用所配置的数据源、AI 服务和通知服务外,页面操作与数据管理均围绕本地数据进行。 + +### 1.1 使用前须知 + +1. 页面是否显示某项功能,取决于当前版本、TickFlow 能力检测结果及本地是否已有对应数据。 +2. 分钟 K、五档盘口、财务数据等功能需要相应数据权限。 +3. 第一次运行后必须先同步基础数据,否则策略、分析和回测页面可能没有结果。 +4. AI 功能需要单独配置兼容的模型服务或 Codex CLI。 +5. 策略结果是研究结果,不等同于实盘委托或成交记录。 + +## 2. 安装与启动 + +### 2.1 环境要求 + +开发模式建议准备: + +- Python 3.11 或更高版本。 +- Node.js 20 或更高版本。 +- `uv`,用于 Python 依赖与后端运行。 +- `pnpm`,用于前端依赖与前端运行。 +- Git,用于获取和更新代码。 + +使用 Docker 部署时,需要安装 Docker 与 Docker Compose。 + +### 2.2 准备环境配置 + +进入项目根目录,复制环境变量模板: + +```bash +cp .env.example .env +``` + +按需编辑 `.env`。密钥、访问密码和 Webhook 等敏感信息不要提交到 Git。 + +### 2.3 macOS/Linux 开发模式 + +在项目根目录执行: + +```bash +./dev.sh +``` + +默认访问地址: + +- 前端:`http://localhost:3011` +- 后端:`http://localhost:3018` + +开发模式下,前后端通常分别输出日志。遇到启动或接口问题时,先查看对应终端中的错误信息。 + +### 2.4 Windows 开发模式 + +在 PowerShell 中执行: + +```powershell +.\dev.ps1 +``` + +默认访问地址与 macOS/Linux 开发模式一致。 + +### 2.5 Docker 部署 + +在项目根目录执行: + +```bash +cp .env.example .env +docker compose up --build +``` + +启动完成后访问: + +```text +http://localhost:3018 +``` + +后台运行可使用: + +```bash +docker compose up --build -d +``` + +查看运行日志: + +```bash +docker compose logs -f +``` + +Docker 中的 `/app/data` 应映射到宿主机持久化目录。不要仅将数据保存在容器可写层,否则重新创建容器后可能丢失数据。 + +### 2.6 停止系统 + +开发模式可在启动终端中按 `Ctrl+C` 停止。 + +Docker 模式执行: + +```bash +docker compose down +``` + +`docker compose down` 默认不会主动删除已挂载的数据目录,但执行带卷删除参数的命令前必须确认数据备份情况。 + +## 3. 首次进入系统 + +### 3.1 首次配置向导 + +首次打开页面时,系统会依次引导完成: + +1. **声明**:阅读项目用途和风险说明。 +2. **欢迎**:了解基础功能和使用流程。 +3. **TickFlow Key**:填写并检测数据服务 Key;也可以暂时跳过。 +4. **能力探测**:确认日 K、实时行情、分钟 K、财务数据等实际可用能力。 +5. **完成**:进入主界面。 + +跳过 Key 后仍可进入系统,但依赖 TickFlow 的数据能力会受限。之后可在“设置 → TickFlow”补充配置。 + +### 3.2 访问密码 + +公网或多人可访问的部署必须设置访问密码。首次初始化密码的入口仅应在本机或可信内网使用,密码至少 6 位。也可以通过 `.env` 中的 `AUTH_PASSWORD` 预先配置。 + +### 3.3 首次同步数据 + +进入主界面后,优先打开“数据”页面并点击“立即同步”。建议至少准备: + +1. 个股维表。 +2. A 股日 K。 +3. 除权因子。 +4. Enriched 策略分析表。 + +需要使用 ETF、指数、分钟 K 或财务分析时,再同步对应数据。 + +同步任务应等待完成后再进入策略或回测页面。任务失败时查看页面任务记录及后端日志,不要连续重复提交相同任务。 + +## 4. 推荐使用流程 + +新用户建议按照以下顺序使用: + +1. 在“设置 → TickFlow”保存 Key,并执行“重新检测”。 +2. 在“数据”页同步个股维表、日 K、除权因子和 Enriched 数据。 +3. 在“自选”页添加关注标的,熟悉行情和详情对话框。 +4. 在“策略”页先运行内置策略,确认本地数据链路正常。 +5. 在“回测”页验证策略历史表现和交易时序。 +6. 在“设置 → 实时监控”配置实时刷新、飞书或企业微信。 +7. 在“监控中心”创建规则并观察触发记录。 +8. 配置 AI 后,再使用个股分析、财务分析和 AI 复盘。 +9. 定期备份 `data/` 与 `.env`。 + +## 5. 通用界面与操作 + +### 5.1 左侧菜单 + +左侧菜单用于切换看板、自选、策略、回测、分析、监控、数据和设置页面。菜单显示和顺序可在“设置 → 菜单设置”调整。 + +动态扩展分析页面也会出现在左侧菜单中,其内容来自“扩展页面”配置。 + +### 5.2 日期口径 + +策略、分析和连板梯队等页面通常按交易日期展示数据: + +- 最新日期不一定是自然日当天,休市日会回退到最近交易日。 +- 当日数据未完成同步时,结果可能为空或不完整。 +- 切换日期后,应等待页面重新加载对应交易日的数据。 + +### 5.3 股票详情对话框 + +在自选、策略、监控记录、连板梯队和成分股列表中点击股票,通常会打开统一的个股详情对话框。可查看日 K、分时、成交量、量比及其他可用指标。 + +成交量对比可按前 1 至 20 个交易日设置;大于 1 日时使用对应交易日的平均成交量,不按自然日计算。关闭量比开关或缩小图表显示密度后,辅助标注会按界面规则隐藏。 + +### 5.4 概念与行业标签 + +点击页面中的概念或行业标签,会打开统一的成分股对话框。可在弹窗内查看对应板块成分并继续打开个股详情。该弹窗只负责展示和导航,不改变原页面的筛选状态。 + +### 5.5 搜索、筛选和排序 + +- 搜索一般支持代码、名称或关键词。 +- 多个筛选条件可能同时生效,结果异常少时先清除筛选。 +- 点击表头或排序控件可切换升序、降序。 +- 页面刷新后是否保留筛选取决于对应页面的配置保存方式。 + +## 6. 看板 + +看板用于集中查看市场摘要、监控通知和常用分析入口。 + +### 6.1 主要内容 + +- 市场与指数概览。 +- 自选或关注标的摘要。 +- 监控通知列表。 +- 常用功能入口和业务状态。 + +### 6.2 监控通知操作 + +点击监控通知中的股票名称或代码,会直接打开个股详情对话框,不会在监控卡片内部嵌入个股内容。需要管理规则或查看完整触发历史时,进入“监控中心”。 + +### 6.3 数据刷新 + +看板数据来自本地数据和实时行情服务。数据不更新时依次检查: + +1. 数据页是否已完成同步。 +2. “设置 → 实时监控”是否开启实时行情。 +3. 当前是否处于交易时段。 +4. TickFlow 能力检测是否包含对应行情权限。 + +## 7. 自选 + +自选页用于维护个人关注标的,并快速查看行情、日 K、分时和常用指标。 + +### 7.1 添加标的 + +1. 打开“自选”。 +2. 使用搜索框输入股票或 ETF 的代码、名称。 +3. 从结果中选择标的并添加。 + +也可以使用截图 OCR 导入功能识别截图中的股票,再确认识别结果后批量加入。OCR 结果可能受到图片清晰度影响,提交前应检查代码和名称。 + +### 7.2 查看方式 + +- **表格视图**:适合排序、筛选和对比多个字段。 +- **卡片视图**:适合快速查看单个标的摘要。 +- **自定义列**:选择需要展示的基础指标、日 K 或分时列。 + +点击任一标的可打开详情对话框。 + +### 7.3 筛选与排序 + +可按板块和数值条件过滤自选标的,并按指定字段排序。若结果为空,先检查是否存在多个筛选条件叠加。 + +### 7.4 列表管理 + +支持: + +- 将标的移到顶部。 +- 从自选中移除。 +- 清空自选列表。 + +清空是批量删除操作,执行前应确认。清空自选不会删除行情数据或策略数据。 + +### 7.5 实时与分时限制 + +- Free 能力下,仅自选列表前 5 个标的进入实时监控范围。 +- 分时列通常需要 Pro+ 分钟数据能力。 +- 有分钟数据权限并不等于页面会自动刷新,还需在“设置 → 实时监控”开启对应刷新开关。 + +## 8. 策略 + +策略页用于运行和管理选股策略,查看指定交易日的候选标的及评分。 + +### 8.1 股票与 ETF 策略 + +页面顶部可切换股票和 ETF。两类策略池相互独立: + +- 切换到 ETF 时只展示适用于 ETF 的策略。 +- 切回股票时应恢复股票策略列表。 +- 当前资产类型会影响数据范围、可用策略及结果。 + +### 8.2 策略卡片 + +策略卡片通常展示策略名称、状态、结果数量和监控状态。策略列表先加载摘要,点击卡片后再按需加载明细,以减少进入页面时的等待时间。 + +常用操作: + +1. 点击卡片查看选股结果。 +2. 切换交易日期查看历史结果。 +3. 调整基础参数或策略参数后重新计算。 +4. 开启或关闭该策略的监控。 +5. 编辑、复制或删除允许管理的用户策略。 + +监控开关只控制监控行为,不应改变策略选股结果或结果数量。 + +### 8.3 “全部”结果 + +选择“全部”可查看多个策略的合并结果。相同股票可能被多个策略命中,应结合策略名称、评分和命中原因判断,而不是把合并结果当作一个独立策略。 + +### 8.4 结果表格 + +在结果区可进行: + +- 按评分、涨跌幅或其他字段排序。 +- 使用基础指标与策略字段筛选。 +- 调整列表列配置。 +- 点击股票查看详情。 +- 将标的加入自选。 + +评分是策略定义的一部分。自定义评分字段若未直接落表,系统会在策略执行时基于可用字段临时计算;若评分仍为空,应检查评分表达式所需字段是否存在、字段名是否正确以及当日数据是否完整。 + +### 8.5 参数调整 + +参数分为两类: + +- **基础参数**:系统通用的市值、价格、交易状态等过滤条件。 +- **策略参数**:由具体策略定义的阈值、窗口和信号参数。 + +修改后需要重新运行或触发页面重算。历史已保存结果不会因为修改当前参数而自动改写,除非主动对对应日期重新计算。 + +### 8.6 创建策略 + +点击“创建策略”后,可选择: + +- **AI 创建**:描述选股目标,由 AI 生成符合项目规范的策略。 +- **自定义代码**:根据策略模板编写逻辑、参数、评分及元数据。 + +创建前建议明确: + +1. 适用资产类型。 +2. 选股条件。 +3. 评分标准与排序方向。 +4. 可调参数及默认值。 +5. 所需数据字段。 + +每次打开创建窗口都会创建新的草稿,不应沿用上一次已创建策略的 ID。若出现 ID 重复,关闭窗口后重新打开,并确认正在使用最新前端;仍有问题时执行“设置 → 系统设置 → 刷新前端缓存”。 + +### 8.7 自定义策略目录 + +默认目录: + +```text +data/strategies/custom/ +data/strategies/ai/ +``` + +页面删除用户策略时,会删除相应用户策略文件并更新列表;Docker 用户无需进入容器手工删除。内置策略受保护,不会通过用户策略删除操作移除。 + +删除前应确认策略是否仍被监控规则、回测配置或其他功能引用。 + +### 8.8 自动运行 + +是否在进入策略页时自动运行策略,可在“设置 → 系统设置”调整。策略数量较多或本地数据量较大时,关闭自动运行并按需点击策略卡片,可减少进入页面的计算压力。 + +## 9. 回测 + +回测页包含“因子回测”“策略回测”“参数优化 Beta”和“步进优化 Beta”。开始前应确保回测区间内的数据已同步完整。 + +### 9.1 因子回测 + +用于评估单个因子在历史截面上的区分能力。 + +主要配置: + +- 因子。 +- 股票或 ETF。 +- 回测起止日期。 +- 分组数量。 +- 等权或因子加权。 +- 佣金等成本参数。 + +主要结果: + +- IC:因子与未来收益的相关性。 +- IR:IC 的稳定性指标。 +- IC 胜率:IC 方向符合预期的比例。 +- 分层收益:各因子分组的收益差异。 +- 多空表现:高分组与低分组组合的相对表现。 + +回测前必须确认因子方向。例如“值越大越好”和“值越小越好”会影响排序和多空定义。 + +### 9.2 策略回测 + +用于把策略信号转换为持仓和交易记录,评估完整交易过程。 + +#### 基础配置 + +- 策略与资产类型。 +- 股票池。 +- 起止日期。 +- 基础过滤条件。 +- 策略参数。 + +#### 成交时序 + +建仓和清仓应分别选择成交口径。日线数据无法证明信号发生后的日内准确成交价,因此通常使用下一可成交时点、当日收盘或次日开盘等明确口径。 + +开启分钟成交后,如策略支持卖出信号,可选择在信号触发后的下一分钟开盘成交。这里的“下一分钟”表示:信号在当前分钟确认后,使用下一根分钟 K 的开盘价模拟成交,避免使用尚未确认的数据和产生未来函数。 + +分钟成交需要: + +1. TickFlow Pro+ 或等效分钟数据能力。 +2. 回测区间内完整的分钟 K。 +3. 标的已纳入分钟数据获取范围。 + +未开启分钟成交时,仍按所选日线成交口径运行,不会影响原有日线回测。 + +#### 交易约束 + +- A 股 T+1 约束。 +- 佣金。 +- 印花税。 +- 滑点。 +- 最大持仓数量。 +- 总敞口。 +- 仓位分配方式。 +- 止损规则。 +- 最大持有期。 + +#### 结果解读 + +结果通常包括: + +- 净值曲线。 +- 总收益与年化收益。 +- 夏普比率与索提诺比率。 +- 最大回撤。 +- 胜率。 +- 交易记录和持仓变化。 + +历史策略结果与回测交易记录不是同一口径:策略结果表示某个交易日“哪些股票被选中”,回测记录还会叠加成交时序、资金、持仓上限、T+1、费用、止损和卖出规则。因此两者数量或日期不完全一致并不代表系统使用了两套选股逻辑。 + +### 9.3 参数优化 Beta + +参数优化用于在指定范围内搜索策略参数组合。 + +操作流程: + +1. 选择策略、资产类型和回测区间。 +2. 选择优化目标。 +3. 选择优化模式。 +4. 勾选需要扫描的参数并设置范围、步长或候选值。 +5. 启动任务,查看每组参数的结果。 + +优化任务由独立 worker 执行,可取消并在页面恢复任务状态。参数组合数量会随参数维度快速增长,应从少量参数和较小范围开始。 + +不要直接把历史区间最优参数视为未来最优参数,需结合样本外验证和稳定性判断。 + +### 9.4 步进优化 Beta + +步进优化即 Walk-Forward Optimization,用于检验参数在滚动样本外区间的稳定性。 + +主要参数: + +- 训练天数:每一折用于选择参数的历史长度。 +- 测试天数:紧接训练区间的样本外验证长度。 +- 步进天数:下一折向前移动的长度。 + +每一折会在训练区间内优化参数,再把选出的参数用于相邻测试区间。重点关注: + +- OOS 样本外复利表现。 +- IS 到 OOS 的收益退化。 +- 各折参数和收益方向的一致性。 +- 有效折数量。 + +如果回测区间太短,无法覆盖训练窗口与测试窗口,任务会失败。此时应延长总区间或缩短训练、测试天数。 + +## 10. 个股分析 + +个股分析用于集中查看单只股票的行情、关键点位和 AI 报告。 + +### 10.1 基础分析 + +1. 搜索股票代码或名称。 +2. 选择标的。 +3. 查看日 K、成交量和关键价位。 +4. 根据需要创建点位提醒。 + +点位提醒可用于价格到达、上穿或下穿指定位置后的监控。创建后应到“监控中心”确认规则状态和触发记录。 + +### 10.2 AI 四维分析 + +配置 AI 后,可对个股生成多维分析报告。报告使用本地可用行情与指标作为上下文,并发送给当前配置的 AI 服务。 + +同一交易日已有报告时,页面会提示查看现有报告或重新生成。重新生成会产生新的模型调用和费用。 + +### 10.3 历史报告 + +支持查看、复制、删除和重新分析历史报告。复制失败时应确认浏览器剪贴板权限;页面会在浏览器限制原生剪贴板接口时使用兼容方式。 + +## 11. 连板梯队 + +连板梯队用于查看涨停、跌停及其连续状态。 + +### 11.1 模式切换 + +- 涨停模式:涨停、炸板、断板及连板梯队。 +- 跌停模式:跌停、翘板、止跌及连跌梯队。 + +可切换交易日期查看历史结果。涨跌停价格会根据市场、板块、ST 状态及对应日期规则计算,不能简单固定为 10%。 + +### 11.2 卡片信息 + +卡片可能展示: + +- 股票名称、代码和涨跌幅。 +- 连板或连跌高度。 +- 封单量和封单额。 +- 概念和行业标签。 +- 一字板标签。 + +“一字”表示当日价格形态满足一字涨停或一字跌停判断。该标签基于已有行情字段计算,不会额外发起高频数据请求。 + +### 11.3 五档盘口修正 + +有 Pro+ 五档能力时,可使用盘口数据修正真假封板状态。若关闭修正或权限不足,页面以日 K/实时行情的可用字段判断。 + +单股封单监控同样需要对应五档能力。 + +### 11.4 板块与成分股 + +页面会汇总概念与行业分布。点击概念或行业标签可打开成分股列表,再点击成分股查看个股详情。 + +## 12. 概念分析 + +概念分析使用内置的同花顺概念数据,观察板块轮动、强弱和龙头候选。 + +### 12.1 数据准备 + +没有概念数据时,页面会提供获取入口。首次获取完成后再进行分析。概念成分会随数据源更新,不应把旧成分永久视为最新状态。 + +### 12.2 主要功能 + +- 涨幅与 RPS 轮动。 +- 领涨主线和领跌方向。 +- 概念矩阵。 +- 概念搜索和成分数量。 +- 龙头候选及评分拆解。 + +点击概念名称或标签可查看成分股。龙头评分是多个指标的综合结果,应结合成分股走势、流动性和市场环境判断。 + +## 13. 行业分析 + +行业分析使用内置的同花顺行业数据,按行业层级观察强弱、涨跌分布与龙头。 + +### 13.1 主要功能 + +- 切换行业层级。 +- 查看最强行业与涨跌行业数量。 +- 查看领涨、领跌行业。 +- 使用行业矩阵比较行业表现。 +- 查看行业成分股和龙头评分。 + +点击行业标签可打开成分股对话框。不同层级的行业分类范围不同,比较前应确认处于同一层级。 + +## 14. 财务分析 + +财务分析依赖 Expert 或等效财务数据能力。 + +### 14.1 数据内容 + +- 核心财务指标。 +- 利润表。 +- 资产负债表。 +- 现金流量表。 +- 股本及历史股本。 + +历史股本用于改善历史换手率计算:当日数据优先使用最新维表;历史日期有可用历史股本时使用历史股本,没有时回退到最新维表股本。 + +### 14.2 同步与更新 + +可执行全部同步,也可对单张财务表执行更新。首次使用建议全部同步;后续只更新变化的数据可缩短等待时间。 + +数据页财务卡片支持按 Enriched 批次重新计算历史换手率并覆盖结果。执行前应确认历史股本同步完整;任务期间避免重复发起同一重算。 + +### 14.3 个股财务查看 + +搜索股票后,可查看各报告期指标和报表变化。财报日期、公告日期和交易日期含义不同,分析时应避免使用尚未公告的数据推断更早交易日。 + +### 14.4 AI 财务分析 + +配置 AI 后,可生成财务报告、关注点和风险摘要。支持: + +- 复制报告。 +- 最小化报告窗口。 +- 查看历史报告。 +- 重新生成。 + +本地最多保留 20 条相关历史报告时,应及时导出需要长期保存的内容。 + +## 15. 监控中心 + +监控中心用于管理规则和查看触发历史。页面通常左侧为触发记录,右侧为规则列表或编辑区。 + +### 15.1 监控类型 + +- **策略监控**:监控交易信号或选股结果变化。 +- **个股信号**:监控信号库中的技术或自定义信号。 +- **价格/涨跌监控**:监控价格、涨跌幅或上下穿条件。 +- **市场异动**:监控涨跌停、连板或其他市场状态。 + +### 15.2 创建规则 + +1. 点击新增规则。 +2. 选择规则类型与分类。 +3. 选择作用范围,例如指定标的、策略结果或全市场。 +4. 添加一个或多个条件。 +5. 选择条件组合方式:AND 或 OR。 +6. 设置冷却期、严重级别和提示内容。 +7. 保存并启用。 + +AND 要求所有条件同时成立;OR 表示任一条件成立即可。全市场规则计算范围大,创建前应确认数据权限和刷新频率。 + +### 15.3 内置信号示例 + +系统可提供日内分时价格上穿/下穿均价、指标上穿/下穿 0 轴等信号。涉及日内分时的信号需要: + +- 分钟 K 或日内分时权限。 +- 已开启对应实时监听。 +- 标的已加入分钟数据获取范围。 + +没有分钟数据时,不应使用日 K 猜测日内穿越时点。 + +### 15.4 规则管理 + +规则可启用、停用、编辑和删除。删除需要二次确认,删除规则不会删除股票数据或策略文件。 + +冷却期用于避免同一条件持续成立时重复发送通知。测试规则时可临时缩短冷却期,正式使用时再恢复合理值。 + +### 15.5 触发记录 + +触发记录支持筛选和清空。点击记录中的股票会打开个股详情对话框;点击概念或行业标签会打开成分股列表。 + +清空只删除触发历史,不会删除监控规则。 + +### 15.6 通知方式 + +可用通知包括: + +- 页面弹窗。 +- 通知声效。 +- 语音播报。 +- 飞书 Webhook。 +- 企业微信 Webhook。 +- 企业微信智能机器人长连接。 + +页面通知、声效和语音在“设置 → 系统设置”配置;飞书与企业微信在“设置 → 实时监控”配置。 + +发送到飞书或企业微信的内容会直接展示业务标题和正文,不添加无意义的产品前缀。类似 `ladder` 的内部类型会转换为用户可理解的连板/梯队描述。 + +## 16. AI 复盘 + +AI 复盘用于基于市场数据生成盘后总结。 + +### 16.1 使用前准备 + +1. 在“设置 → AI 设置”完成模型配置并测试连接。 +2. 同步当日日 K 和指数数据。 +3. 如需通知,配置飞书或企业微信。 + +### 16.2 生成复盘 + +1. 打开“AI 复盘”。 +2. 刷新市场数据。 +3. 可选填写特别关注的方向或问题。 +4. 开始生成。 +5. 页面以流式方式展示结果,并在完成后归档。 + +支持复制、下载 Markdown 和删除历史报告。 + +### 16.3 定时复盘与推送 + +可设置定时复盘。任务运行时需要服务持续在线、数据已更新且 AI 配置有效。生成完成后可推送到飞书或企业微信。 + +定时任务时间应晚于日 K 和指数数据完成时间,避免用不完整数据生成报告。 + +## 17. 指数 + +指数页用于管理指数列表、指数日 K 与分时行情。 + +### 17.1 数据同步 + +首次使用依次执行: + +1. 同步指数列表。 +2. 同步指数日 K。 + +指数数据与股票策略数据链路隔离,不会混入股票选股范围。 + +### 17.2 查看指数 + +- 搜索并选择指数。 +- 设置日期范围。 +- 查看指数日 K。 +- 在支持时查看与日 K 联动的分时走势。 + +指数分时通常需要 Pro+ 能力。无权限时,日 K 功能仍可独立使用。 + +## 18. 数据 + +数据页是系统的数据管理中心。策略、回测和分析出现异常时,应先在此确认数据状态。 + +### 18.1 数据画像卡片 + +页面可能包含: + +- 个股维表。 +- 日 K。 +- 除权因子。 +- Enriched。 +- 指数。 +- ETF。 +- 分钟 K。 +- 财务数据与历史股本。 +- 扩展数据。 + +卡片会显示数据量、日期范围、更新时间或任务状态。卡片显示“有数据”不代表所有日期均完整,应结合起止日期判断。 + +### 18.2 立即同步 + +“立即同步”按当前配置更新数据。执行前可选择数据范围: + +- A 股。 +- 指数。 +- ETF。 + +同步可能包含多个阶段。关闭浏览器页面一般不会立即停止后端任务,但不要在任务进行中清除数据或重启服务。 + +### 18.3 修正数据 + +用于重新获取或修复指定范围内的异常数据。适用于缺失交易日、字段异常或历史规则更新后的修正。 + +修正前应先缩小日期和标的范围。全量修正耗时较长,也会增加数据源调用量。 + +### 18.4 扩展历史 + +用于把本地日 K 等数据向更早日期扩展。扩展范围受数据源权限和服务端历史覆盖范围限制。 + +### 18.5 Enriched 重算 + +Enriched 是供策略和分析使用的增强数据表,包含基础行情衍生指标、信号和扩展字段。以下情况通常需要重算: + +- 更新了计算逻辑。 +- 补充了历史日 K 或除权因子。 +- 新增或启用了需要落入 Enriched 的字段。 +- 历史结果存在缺失。 + +可按配置批次计算,避免一次加载全部标的。重算会覆盖对应范围的 Enriched 结果,不会删除原始日 K。 + +### 18.6 财务换手率重算 + +财务数据和历史股本同步后,可点击财务数据卡片上的计算/更新图标,按照 Enriched 的批次设置重新计算历史换手率。 + +计算规则: + +- 当前日期优先使用最新维表股本。 +- 历史日期优先使用当时可用的历史股本。 +- 缺少历史股本时回退到最新维表股本。 + +重算会覆盖目标范围中的换手率字段,应等待任务完成并检查日志。 + +### 18.7 分钟 K 设置 + +分钟 K 数据量较大,应明确: + +- 需要同步的标的池。 +- 日期范围。 +- 时间周期。 +- 权限和调用频率。 + +开启日内监控并不自动补齐全部历史分钟 K。用于回测时,应单独确认回测区间覆盖完整。 + +### 18.8 扩展数据 + +可配置 HTTP 拉取、上传 CSV/Excel,或通过 JSON API 写入扩展数据。详细规则见[第 20 章](#20-数据源扩展数据与插件)。 + +### 18.9 测试端点 + +测试端点用于验证数据源地址、鉴权、响应格式和字段映射。测试成功只代表样例请求可解析,正式同步前还需确认分页、限流和历史范围。 + +### 18.10 页面设置与任务时间 + +可设置: + +- 盘前维表任务时间。 +- 盘后数据管道时间。 +- 实时行情开关。 +- 轮询间隔。 +- 同步批次等页面参数。 + +盘后管道应晚于数据源完成当日更新的时间。交易日内频繁运行全量管道可能得到不完整日 K。 + +### 18.11 切换数据源 + +切换后,未配置的数据集会按系统回退规则使用 TickFlow。切换前应先测试新数据源,并确认代码、日期、价格和复权字段能正确归一。 + +### 18.12 清除数据 + +清除数据用于重新初始化本地数据。此操作可能影响所有策略、回测和分析页面。 + +执行前必须: + +1. 备份整个 `data/` 目录。 +2. 确认没有同步或计算任务运行。 +3. 明确清除范围。 +4. 预留重新同步时间。 + +Windows 或受限沙箱中若系统回收站不可用,页面会使用受控的直接删除回退流程;目标路径仍会受到安全校验,不能借此删除任意目录。 + +## 19. 设置 + +设置页包含 TickFlow、AI 设置、实时监控、数据源 Beta、扩展页面、信号库、菜单设置和系统设置。 + +### 19.1 TickFlow + +可进行: + +- 保存或替换 Key。 +- 清除 Key。 +- 重新检测能力。 +- 查看实际能力、RPM、批量限制和检测日志。 + +更换 Key 后应立即重新检测。页面功能以检测结果为准,不只依据套餐名称判断。 + +### 19.2 AI 设置 + +支持 OpenAI 兼容接口或 Codex CLI,也提供 DeepSeek、通义、GLM、Kimi 和自定义服务等配置预设。 + +常用配置: + +- API 地址。 +- 模型名称。 +- API Key。 +- 其他服务所需参数。 + +Codex CLI 模式可复用本机登录态。保存前先执行“测试连接”,确认地址、模型和认证有效。 + +AI 分析会把所需行情、指标、财务信息和用户输入发送给所配置的模型服务。使用第三方服务前应了解其数据和隐私政策。 + +### 19.3 实时监控 + +可设置: + +- 是否开启实时行情。 +- 轮询间隔。 +- 页面 SSE 刷新范围。 +- 自选日 K/分时图刷新。 +- 策略日 K/分时图刷新。 +- 左侧指数卡片刷新。 +- 连板五档盘口修正。 +- 飞书和企业微信 Webhook。 +- 企业微信智能机器人长连接。 + +Free 能力仅实时覆盖自选前 5 个标的。轮询间隔不应低于数据源允许的频率,否则可能触发限流。 + +实时刷新时,已有日 K/分时内容会保留到新数据返回后再更新,避免列表列短暂消失和闪烁。 + +### 19.4 数据源 Beta + +支持: + +- TickFlow。 +- 数据源插件。 +- 自定义数据源。 + +插件可安装、启用、停用和卸载。自定义源可配置日 K、除权因子、实时行情和分钟 K 等数据集。 + +配置项通常包括 URL、请求方法、鉴权、RPM、批量大小、超时、响应数据路径和字段映射。未配置的数据集按回退规则使用 TickFlow。 + +### 19.5 扩展页面 + +扩展页面用于把扩展数据字段组合成动态分析页面,并加入左侧菜单。配置时应选择数据集、展示字段、筛选项和页面名称。 + +删除扩展页面只移除页面配置,不等同于删除扩展数据集。 + +### 19.6 信号库 + +- 内置信号只读,保证系统规则稳定。 +- 自定义信号由字段、运算符和值组成。 +- 启用后生成 `csg_*` 信号字段。 +- 信号可用于策略、回测和监控。 + +编辑信号前应确认字段的数据频率。日线字段不能准确替代分钟级触发条件。 + +### 19.7 菜单设置 + +支持拖动排序、显示/隐藏菜单和配置数字徽标。扩展页面也可以参与排序。 + +隐藏菜单只影响导航显示,不删除页面数据或功能配置。 + +### 19.8 系统设置 + +可设置: + +- 进入策略页是否自动运行。 +- 监控通知弹窗。 +- 通知声效。 +- 语音播报。 +- 播报语音选择。 +- 刷新前端缓存。 +- 查看当前版本和检查更新。 + +“刷新前端缓存”用于解决升级后仍显示旧页面的问题,不会清除用户配置和本地股票数据。 + +## 20. 数据源、扩展数据与插件 + +### 20.1 插件化原则 + +项目的数据接入已经插件化。新增第三方数据源时,应通过数据源插件或自定义数据源配置接入,不建议直接修改核心同步流程。 + +插件负责把来源各异的数据转换为项目统一格式,业务页面只依赖统一的数据接口。这样可以避免第三方接口变化影响策略、回测和分析逻辑。 + +### 20.2 自定义数据源 + +适合通过 HTTP API 提供标准数据的场景。接入步骤: + +1. 新建自定义数据源。 +2. 为需要的数据集配置端点。 +3. 设置请求方法和鉴权。 +4. 设置 RPM、批量大小和超时。 +5. 指定响应中的数据路径。 +6. 完成字段映射。 +7. 测试端点。 +8. 小范围同步并核对数据。 +9. 再切换为正式数据源。 + +至少要正确处理代码、交易日期、开高低收、成交量/额以及复权相关字段。日期、单位或代码格式错误可能不会立即报错,但会产生错误指标。 + +### 20.3 数据源插件 + +插件适合复杂鉴权、分页、签名、多个端点组合或特殊数据规范。插件应只承担数据获取和归一化职责,策略与页面不应依赖插件内部实现。 + +安装第三方插件前应检查来源和代码。插件运行在本地服务环境中,可能具备读取配置和访问网络的能力。 + +开发细节参见: + +- [自定义数据源说明](docs/custom-data-source.md) +- [插件开发说明](docs/plugin-development.md) + +### 20.4 扩展数据接入 + +支持: + +- HTTP 定时拉取。 +- CSV/Excel 文件上传。 +- JSON API 写入。 + +数据至少必须归一到 `symbol`,才能与股票维表和其他分析数据关联。 + +存储模式: + +- **Snapshot**:只保留当前状态,适合标签、分类和最新属性。 +- **时序模式**:按日期保存历史值,适合每日指标、评分或事件。 + +选择错误的存储模式会影响历史回测。例如会随时间变化的指标不应只保存为当前快照。 + +### 20.5 扩展分析页面 + +扩展数据同步成功后,可在“设置 → 扩展页面”选择字段并生成动态分析菜单。页面只负责展示已接入数据,不会自动把字段加入所有策略。 + +需要在策略中使用扩展字段时,应确认该字段已进入对应策略数据链路或 Enriched 数据。 + +## 21. 权限与能力说明 + +下表用于快速理解常见能力,最终以“设置 → TickFlow → 重新检测”的实际结果为准。 + +| 能力级别 | 常见可用能力 | 主要限制或用途 | +| --- | --- | --- | +| None | 历史日 K | 无需 Key;盘后通常约 1 至 2 小时更新 | +| Free | 历史日 K、自选前 5 个标的实时行情 | 实时刷新最低约 6 秒;覆盖范围有限 | +| Starter+ | 全市场实时能力 | 适合更广范围实时行情和监控 | +| Pro+ | 分钟 K、批量五档等 | 用于分时、分钟回测、封单与盘口修正 | +| Expert | 财务数据 | 用于财务分析、历史股本和相关重算 | + +能力名称和服务策略可能变化,因此: + +1. 保存 Key 后执行“重新检测”。 +2. 查看检测日志、RPM 和批量限制。 +3. 页面提示权限不足时,以具体缺失能力为准。 +4. 使用第三方插件时,以插件实现的数据集能力为准。 + +## 22. 数据目录、备份与迁移 + +### 22.1 主要目录 + +项目数据主要位于: + +```text +data/ +``` + +Docker 容器内通常为: + +```text +/app/data +``` + +自定义和 AI 策略通常位于: + +```text +data/strategies/custom/ +data/strategies/ai/ +``` + +### 22.2 备份内容 + +至少备份: + +- 整个 `data/` 目录。 +- `.env`。 +- 额外安装的数据源插件或自定义部署配置。 + +`.env` 含敏感信息,备份文件应加密或保存在可信位置。 + +### 22.3 备份时机 + +建议在以下操作前备份: + +- 升级项目。 +- 清除或全量重算数据。 +- 更换数据源。 +- 调整数据库或存储结构。 +- 迁移服务器。 + +备份时最好先停止服务,或至少确认没有同步、回测和重算任务运行,以保证文件一致性。 + +### 22.4 迁移 + +迁移到新机器的一般步骤: + +1. 在原机器停止服务。 +2. 备份 `data/`、`.env` 和额外插件。 +3. 在新机器获取相同或兼容版本代码。 +4. 恢复上述文件到对应位置。 +5. 启动服务。 +6. 重新检测 TickFlow 与 AI 连接。 +7. 抽查自选、策略、数据范围和监控规则。 + +跨系统迁移时,应检查文件权限和 Docker 挂载路径。 + +## 23. 更新与维护 + +### 23.1 Docker 更新 + +更新前先备份,再执行: + +```bash +git pull +docker compose up --build -d +``` + +然后查看日志: + +```bash +docker compose logs -f +``` + +### 23.2 开发模式更新 + +更新代码后,根据项目锁文件重新安装依赖并重启 `./dev.sh` 或 `.\dev.ps1`。如页面仍显示旧版本,使用“设置 → 系统设置 → 刷新前端缓存”。 + +### 23.3 更新后检查 + +1. 首页和设置页能否打开。 +2. 当前版本号是否正确。 +3. 数据画像是否正常。 +4. 自选和策略结果是否正常加载。 +5. 实时行情、AI 和通知连接是否有效。 +6. 重要监控规则是否仍启用。 + +### 23.4 禁止使用的清理命令 + +不要在项目目录执行: + +```bash +git clean -fdx +``` + +该命令可能删除 Git 未跟踪和忽略的文件,包括全部本地用户数据、密钥配置与自定义策略。 + +## 24. 常见问题与排错 + +### 24.1 页面卡片没有数据 + +1. 打开“数据”检查相应数据集是否存在。 +2. 确认日期范围覆盖当前选择日期。 +3. 查看同步任务历史和后端日志。 +4. 完成日 K 后确认 Enriched 是否已生成。 + +### 24.2 策略显示 0 个结果 + +依次检查: + +- 当前是股票还是 ETF。 +- 选择日期是否有数据。 +- 基础过滤是否过严。 +- 策略参数是否合理。 +- 页面结果表是否还有额外筛选。 +- Enriched 是否完成更新。 + +开启或关闭策略监控不应改变选股数量。如果数量随监控开关变化,应记录策略 ID、日期和操作步骤并查看后端日志。 + +### 24.3 策略卡片加载很慢 + +- 策略卡片摘要应批量加载,明细在点击后按需加载。 +- 关闭“进入策略页自动运行”。 +- 确认后端没有同时执行全量同步、重算或大量回测。 +- 检查磁盘速度和 Enriched 数据量。 +- 查看浏览器网络请求及后端耗时日志。 + +### 24.4 创建策略提示 ID 已存在 + +1. 关闭创建对话框并重新打开。 +2. 确认表单没有加载上次完成的草稿。 +3. 在系统设置刷新前端缓存。 +4. 检查 `data/strategies/custom/` 和 `data/strategies/ai/` 是否确有同名策略。 + +不要仅为消除提示而随意删除文件,先确认文件对应的策略。 + +### 24.5 分时或分钟回测不可用 + +- 重新检测是否有 Pro+ 或等效分钟能力。 +- 检查分钟数据同步状态和日期范围。 +- 确认标的已加入分钟数据池。 +- 检查实时监控设置中的分时刷新开关。 +- 回测时确认已开启分钟成交选项。 + +### 24.6 AI 功能不可用 + +- 在“AI 设置”重新测试连接。 +- 检查 API 地址、模型名称和 Key。 +- 检查模型账户余额、预算和调用限额。 +- Codex CLI 模式检查本机登录状态。 +- 查看服务端是否能访问所配置的 AI 地址。 + +### 24.7 “规范化 META 失败:找不到 META 字典” + +这通常表示 AI 返回内容没有提供可识别的策略元数据。处理方式: + +1. 使用当前版本内置的策略提示词重新生成。 +2. 不要手工删除生成内容中的 `META`。 +3. 检查模型是否截断输出。 +4. 确认模型返回的是完整策略代码,而不是解释性文本。 + +### 24.8 财务数据不可用 + +- 确认检测到 Expert 或等效财务能力。 +- 在数据页同步财务数据。 +- 检查单表更新时间和任务日志。 +- 历史换手率不正确时,先确认历史股本,再执行批次重算。 + +### 24.9 实时行情不刷新 + +- 确认当前处于交易时段。 +- 确认 TickFlow Key 和实时能力。 +- 开启“设置 → 实时监控 → 实时行情”。 +- 检查轮询间隔是否符合服务限制。 +- Free 用户确认标的是否位于自选前 5 个。 +- 检查浏览器与后端之间的 SSE 连接。 + +### 24.10 跌停或涨停信号不准确 + +- 涨跌停规则会随板块、ST 状态和历史日期变化,不能固定按 10% 判断。 +- 确认个股维表和名称/ST 信息已更新。 +- 历史判断应使用对应交易日规则,而不是当前名称直接覆盖历史状态。 +- 实时信号应优先使用合法涨跌停价与实时价格比较,并处理价格精度。 + +### 24.11 飞书或企业微信没有收到通知 + +- 测试 Webhook 是否有效。 +- 检查监控规则是否启用且产生触发记录。 +- 检查冷却期。 +- 检查服务端网络能否访问通知地址。 +- 查看后端日志中的发送状态。 + +### 24.12 前端仍是旧界面 + +1. 打开“设置 → 系统设置”。 +2. 点击“刷新前端缓存”。 +3. 重新加载页面。 +4. Docker 部署确认镜像已重新构建。 + +### 24.13 删除策略失败或返回 500 + +- 确认删除的是用户策略,不是内置策略。 +- 检查 `data/strategies/` 挂载目录是否可写。 +- Docker 部署检查宿主机目录权限。 +- 查看后端错误日志中的文件路径和具体原因。 + +当前删除逻辑支持从页面删除用户策略文件,不要求用户进入 Docker 容器操作。 + +### 24.14 数据删除提示回收站不可用 + +Windows 沙箱或容器可能无法使用系统回收站。当前版本会在目标通过安全路径校验后使用受控直接删除。若仍失败,检查数据目录权限和挂载状态,不要手工扩大删除范围。 + +### 24.15 查看日志 + +开发模式:查看运行 `dev.sh` 或 `dev.ps1` 的前后端终端。 + +Docker 模式: + +```bash +docker compose logs -f +``` + +定位问题时建议同时记录:发生时间、页面、操作步骤、标的或策略 ID、选择日期、错误提示和相关日志。 + +## 25. 安全建议 + +### 25.1 敏感信息 + +以下内容不得提交到公开 Git 仓库: + +- `.env`。 +- TickFlow Key。 +- AI API Key。 +- 飞书与企业微信 Webhook。 +- 访问密码。 +- 含个人偏好或敏感数据的完整备份。 + +### 25.2 公网部署 + +- 必须设置访问密码。 +- 建议通过 HTTPS 反向代理访问。 +- 只开放必要端口。 +- 限制管理页面和数据目录访问。 +- 定期更新项目和基础镜像。 +- 不在日志中打印完整密钥或 Webhook。 + +### 25.3 忘记访问密码 + +认证信息位于: + +```text +data/user_data/auth.json +``` + +处理前必须停止服务并备份该文件和 `data/`。直接修改或删除认证文件属于高风险操作,可能改变访问控制状态;应由部署管理员在确认影响后执行,完成后立即重新设置密码。 + +### 25.4 第三方代码与插件 + +安装第三方策略或数据源插件前,应审查代码、依赖和网络访问行为。不要运行来源不明的插件,也不要向第三方提交不必要的本地数据。 + +### 25.5 AI 数据边界 + +使用 AI 功能时,相关行情、财务内容、策略描述和用户输入可能发送到所配置的模型服务。涉及私有策略或敏感数据时,应使用可信服务并确认其存储政策。 + +## 26. 常用术语 + +| 术语 | 说明 | +| --- | --- | +| 个股维表 | 股票代码、名称、市场、行业、股本等基础属性表 | +| 日 K | 以交易日为周期的开、高、低、收、量、额数据 | +| 分钟 K | 以分钟为周期的行情数据,用于分时和更精细的回测 | +| 除权因子 | 用于处理分红、送转、拆并股等价格连续性的调整因子 | +| Enriched | 在基础行情上计算指标、信号和扩展字段后的策略分析数据 | +| Snapshot | 只表达当前状态、不保留每日变化的快照数据 | +| RPS | 相对强弱指标,用于比较标的或板块在一段时间内的表现 | +| IC | 因子值与未来收益之间的相关性 | +| IR | IC 均值相对波动的稳定性指标 | +| IS | In-Sample,样本内训练或优化区间 | +| OOS | Out-of-Sample,样本外验证区间 | +| 步进优化 | Walk-Forward Optimization,滚动训练并在相邻区间验证 | +| SSE | 服务端向浏览器持续推送更新的连接方式 | +| 五档盘口 | 买卖盘各五档价格与数量,用于辅助判断封板状态 | +| 冷却期 | 规则触发后抑制短时间内重复通知的时长 | +| T+1 | A 股买入后通常需下一交易日才能卖出的交易约束 | +| 滑点 | 模拟成交价相对理论价格的不利偏差 | + +## 相关文档 + +- [项目说明](README.md) +- [功能说明](docs/features.md) +- [配置说明](docs/configuration.md) +- [部署说明](docs/deployment.md) +- [策略开发说明](docs/strategy.md) +- [自定义数据源说明](docs/custom-data-source.md) +- [插件开发说明](docs/plugin-development.md)