# stock-analysis-project **Repository Path**: qingfengxiaoyang/stock-analysis-project ## Basic Information - **Project Name**: stock-analysis-project - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-22 - **Last Updated**: 2026-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 股票分析后端可执行提示词(NestJS) ## 使用说明 1. 每次只执行一个阶段,不要一次性跑完 10 个阶段。 2. 调用模型时,先粘贴「全局系统提示词」,再粘贴对应阶段提示词。 3. 信息不足时,模型必须先给出 `Assumptions`(默认假设)并继续实现,不要停下来反复追问。 4. 每次输出都必须包含:`变更文件清单`、`关键代码`、`运行命令`、`验收结果`。 --- ## 全局系统提示词(每次都要带上) ```text 你是资深 NestJS 后端工程师,请在现有仓库内做“可运行、可测试、可验收”的实现。 全局约束(强化版): 1) 技术栈固定:NestJS 11.x、TypeORM 0.3.x、MySQL 8.0、Redis 7、Node.js 20+。 2) 时区固定:Asia/Shanghai。定时任务、交易日期、日志统一该时区。 3) 市场默认:中国 A 股;币种默认 CNY。 4) 金额字段使用 DECIMAL(18,4),数量字段使用 DECIMAL(18,2)。 5) 金额计算禁止使用 JS 浮点直算,统一使用 Decimal.js(或等效方案)。 6) API 返回统一格式:{ code: number, message: string, data: any, requestId?: string }。 7) 认证固定:JWT(access + refresh),密码 bcrypt(saltRounds=12)。 8) 代码要求:TypeScript strict、DTO + class-validator、Swagger 注解、必要日志。 9) 数据库结构变更必须走 migration,禁止 `synchronize: true`。 10) 输出必须是最小可运行方案,不允许仅伪代码。 11) 禁止无关长篇解释,优先可执行内容。 输出契约(每次必须遵守): A. Assumptions:默认假设(无则写 None)。 B. Plan:3-7 步执行计划。 C. Changed Files:新增/修改文件清单。 D. Code:新增文件给完整代码;修改文件给关键补丁。 E. Runbook:安装、迁移、启动、测试命令。 F. Verification:关键命令输出摘要(启动成功、测试通过、迁移成功等)。 G. Acceptance:按验收项逐条 PASS/FAIL(失败项写原因)。 H. Risks:剩余风险与后续修复建议(无则写 None)。 ``` --- ## 1) 项目初始化提示词(可执行) ```text 目标:创建 NestJS + TypeORM + MySQL 的股票分析后端骨架,包含基础模块、配置、认证、文档、定时任务能力。 必须完成: 1) 初始化项目并配置模块: auth、users、stocks、market-data、indicators、analysis、portfolio、recommendation。 2) 接入 ConfigModule + Joi 环境变量校验,至少包含: DB_HOST、DB_PORT、DB_USER、DB_PASSWORD、DB_NAME、 JWT_ACCESS_SECRET、JWT_REFRESH_SECRET、 REDIS_HOST、REDIS_PORT、 EXTERNAL_API_KEY(可空)。 3) 配置 TypeORM(开发环境同步关闭,使用 migration)。 4) 配置 Swagger(/api-docs)。 5) 配置 @nestjs/schedule。 6) 提供 `.env.example`、`docker-compose.dev.yml`(mysql + redis)和启动脚本。 输出要求: 1) 输出项目目录树(至少到 `src/modules/*`)。 2) 给出核心配置文件完整代码: `app.module.ts`、`main.ts`、`typeorm.config.ts`(或等效配置)、`.env.example`。 3) 给出命令: 安装、开发启动、构建、lint、test、migration:generate、migration:run。 4) 给出验收方式: Swagger 可访问、应用可启动、数据库连接成功、定时模块已加载。 ``` --- ## 2) 数据库实体与迁移提示词(可执行) ```text 目标:生成实体与迁移脚本,保证关系完整、可扩展、可查询优化。 必须完成实体: 1) User:id, email(唯一), password_hash, nickname, created_at, updated_at。 2) Stock:id, symbol(唯一), name, industry, market_cap, list_date, created_at, updated_at。 3) DailyQuote:id, stock_id(FK), trade_date, open, high, low, close, volume, amount。 唯一索引:(stock_id, trade_date)。 4) TechnicalIndicator:id, stock_id(FK), calc_date, indicator_type, value(JSON), created_at。 索引:(stock_id, calc_date)、(indicator_type)。 5) UserPosition:id, user_id(FK), stock_id(FK), shares, avg_cost, version, created_at, updated_at。 唯一索引:(user_id, stock_id)。 6) UserTransaction:id, user_id(FK), stock_id(FK), trade_type(BUY/SELL), shares, price, fee, trade_date, created_at。 7) CashAccount(补齐余额校验):id, user_id(FK唯一), available_cash, frozen_cash, updated_at。 必须完成迁移: 1) 建表 + 外键 + 索引。 2) 枚举和默认值。 3) 提供可选的“按年分区”SQL样例(写在 migration 注释或独立 SQL 文件,不强耦合启动流程)。 输出要求: 1) 每个实体文件路径与完整代码。 2) migration 文件路径与完整代码。 3) migration 生成与执行命令。 4) 提供 5 条关键 SQL 查询示例(含索引命中目的说明)。 ``` --- ## 3) 行情数据抓取服务提示词(可执行) ```text 目标:实现 MarketDataService,支持定时抓取、批量 upsert、查询接口、重试与日志。 必须完成: 1) 定时任务:工作日 15:30(Asia/Shanghai)执行抓取。 2) 数据源适配器接口: - MockProvider(先落地可用) - TushareProvider(预留) 通过配置切换 provider。 3) 使用 TypeORM upsert 写入 DailyQuote(冲突键:stock_id + trade_date)。 4) 提供接口: - 按股票 + 日期范围查询历史行情 - 查询最新行情 5) 失败重试:最多 3 次,指数退避(如 500ms/1000ms/2000ms)。 6) 统一返回结构:{ code, message, data }。 输出要求: 1) service、provider、dto、controller 的文件清单与代码。 2) Cron 表达式和时区配置必须明确展示。 3) 给出 3 个接口示例(请求参数 + 响应示例)。 4) 给出单元测试或集成测试示例(至少覆盖 upsert 和重试)。 ``` --- ## 4) 技术指标计算模块提示词(可执行) ```text 目标:实现 MACD/RSI/KDJ/MA/BOLL 指标计算,并保证“纯计算”和“缓存”职责分离。 必须完成: 1) 纯计算层(无副作用): - MACD(含 EMA) - RSI(默认周期 14) - KDJ - MA5/10/20/60 + 金叉/死叉判断 - BOLL(上中下轨 + 突破信号) 2) 应用层服务: - 调用纯计算层 - 使用 cache-manager 做结果缓存(key: indicator:{symbol}:{date}:{type}) 3) 类型定义: 输入输出 DTO/Interface 完整。 4) 测试: - 每个指标至少 1 个正常样例 - 至少 1 个边界样例(数据不足、空数组) 输出要求: 1) 目录结构建议(calculators/ services/ dto/ tests)。 2) 关键计算函数代码(含类型)。 3) 缓存命中/失效策略说明与代码。 4) 测试命令与预期结果。 ``` --- ## 5) 投资分析引擎提示词(可执行) ```text 目标:实现 AnalysisService,输出短中长期分析和综合建议,结果结构稳定可前端直接渲染。 必须完成: 1) 短期分析(1-20 天): 使用 RSI、KDJ、量能异动,输出 signal + confidence + reasons[]。 2) 中期分析(1-3 个月): 使用 MA 排列、MACD 趋势、价格形态,输出 trend + strategy + riskLevel。 3) 长期分析(1-3 年): 输入财务指标(ROE/毛利率/负债率/PE/PB),输出 valuation + targetPosition + thesis[]。 4) 综合推荐: 按可配置权重整合三段结果,输出 finalRecommendation。 5) 缓存: key = analysis:{stockId}:{tradeDate},TTL 可配置。 输出要求: 1) 分析规则(阈值)写成可配置常量,不要硬编码散落。 2) service + dto + config + tests 的代码清单。 3) 给出一个完整示例输入和完整 JSON 输出。 4) JSDoc 注释覆盖公共方法。 ``` --- ## 6) WebSocket 实时行情推送提示词(可执行) ```text 目标:实现 `/market` 命名空间的实时行情网关,支持鉴权、订阅、取消订阅、心跳。 必须完成: 1) Gateway: - namespace: /market - 事件:subscribe { symbol }、unsubscribe { symbol } - 按 symbol 维护 room 2) 鉴权: - 连接阶段校验 JWT(WsGuard 或适配器中间件) 3) 心跳: - 服务端 ping/pong 与超时踢出 4) 推送: - 提供 tick 广播方法(可由 mock 定时器触发) 5) 前端示例: - 提供 Socket.IO 客户端订阅/取消订阅示例(含 token 传递) 输出要求: 1) gateway、guard、dto、event 常量文件代码。 2) 说明服务端与客户端职责边界: - 服务端负责状态维护与心跳 - 客户端重连由客户端 SDK 配置实现(给示例) 3) 给出 2 个异常场景处理: token 失效、重复订阅。 ``` --- ## 7) 投资组合管理服务提示词(可执行) ```text 目标:实现 PortfolioService,覆盖买入、卖出、持仓查询、收益统计,保证并发安全。 必须完成: 1) 买入: - 校验现金账户余额 - 计算手续费(可配置) - 更新或新建持仓(重算 avg_cost) - 写入交易记录 2) 卖出: - 校验持仓数量 - 计算已实现盈亏 - 更新持仓或清仓删除 - 写入交易记录 3) 查询: - 当前持仓(含市值、浮动盈亏) - 历史交易列表(分页) 4) 收益统计: - 总资产、累计收益率、日收益率 5) 并发控制: - QueryRunner 事务 - UserPosition version 字段做乐观锁 输出要求: 1) service、controller、dto、entity 改动清单与代码。 2) 给出 2 个并发用例测试: 同时卖出、买卖交叉。 3) 给出关键业务公式(avg_cost、realized_pnl、unrealized_pnl)。 4) API 示例:买入、卖出、持仓查询。 ``` --- ## 8) 策略回测引擎提示词(可执行) ```text 目标:实现 BacktestService + 异步任务队列,支持策略回测和任务状态查询。 必须完成: 1) 策略: - MA 金叉死叉 - RSI 超买超卖 - BOLL 触轨策略 2) 回测参数: symbol/startDate/endDate/initialCapital/feeRate。 3) 输出指标: totalReturn、annualizedReturn、maxDrawdown、sharpeRatio、tradeCount、winRate、equityCurve[]。 4) 异步化: - 使用 @nestjs/bull(或项目统一队列方案) - 提供创建任务、查询任务状态、查询结果接口 5) 缓存: 按参数哈希缓存结果,避免重复计算。 输出要求: 1) queue processor、service、controller、dto、策略实现代码。 2) 给出 Sharpe 和 MaxDrawdown 的计算公式实现。 3) 提供示例策略配置 JSON 和示例回测结果 JSON。 4) 给出端到端运行命令(启动 redis、worker、api)。 ``` --- ## 9) 智能推荐 API 提示词(可执行) ```text 目标:实现 RecommendationService 与 Controller,整合分析引擎、筛选器和 AI 文本建议。 必须完成接口: 1) GET /api/recommendation/:symbol - 调 AnalysisService - 整合财务数据 - 调 AI Provider(DeepSeek 适配层) - 输出结构化推荐报告 2) GET /api/recommendation/screener - 支持行业、市值、PE、技术信号过滤 - 默认返回前 20 条 3) GET /api/recommendation/portfolio/:userId - 基于持仓给调仓建议和资产配置建议 AI 集成必须完成: 1) Provider 抽象层(便于切换厂商)。 2) Prompt 模板分短中长三类。 3) 降级策略:AI 异常时返回规则引擎建议。 4) 缓存 AI 响应 1 小时。 5) 安全:避免把敏感字段直接拼接进 prompt,记录最小必要日志。 输出要求: 1) service、controller、dto、provider、template 文件代码。 2) 给出三类接口请求/响应示例。 3) 给出 AI 失败时的降级响应示例。 4) 在响应中增加免责声明字段(非投资建议)。 ``` --- ## 10) 性能优化与部署提示词(可执行) ```text 目标:补齐缓存、数据库优化、队列、容器化、进程管理和监控配置,形成可部署方案。 必须完成: 1) 缓存策略: - Redis + cache-manager - 股票列表 TTL=1d、技术指标 TTL=1h、财务数据 TTL=1d - 明确失效触发点 2) 数据库优化: - 连接池(max 10) - 读写分离配置样例 - 慢查询日志阈值(100ms) 3) 队列: - 回测、批量指标计算进入队列 4) Docker: - 多阶段 Dockerfile - docker-compose.yml(api + mysql + redis + nginx) - healthcheck 5) PM2: - ecosystem.config.js(cluster 4) - 日志轮转配置 6) 监控: - Prometheus 指标 - API 延迟、错误率、队列堆积、DB 连接池指标 输出要求: 1) 所有部署配置文件完整内容。 2) 一键启动命令与验证命令(健康检查、metrics)。 3) 生产与开发差异表(env、日志级别、缓存策略)。 4) 交付一个最终验收 checklist(可直接打勾)。 ``` --- ## 推荐执行顺序 1. 项目初始化 2. 实体与迁移 3. 行情抓取 4. 指标计算 5. 分析引擎 6. 投资组合 7. 回测引擎 8. 推荐 API 9. WebSocket 实时推送 10. 性能与部署 ## 最小验收标准 1. `npm run start:dev` 可启动,`/api-docs` 可访问。 2. `migration:run` 成功,核心表和索引完整。 3. 至少 6 个关键接口可在 Swagger 调通。 4. WebSocket 可订阅并收到模拟行情。 5. 回测任务可异步执行并查询结果。 6. 有基础测试并可执行通过。 --- ## 严格审计版提示词(方案 2) ### 全局严格审计提示词(每次都带) ```text 你现在是“实现者 + 审计员”双角色。先实现,再自检,不允许跳过审计。 硬性规则: 1) 必须完全遵守对应阶段的“必须完成”和“输出要求”。 2) 任何一项未完成,明确标记 FAILED,并给出修复方案与剩余工作量。 3) 不允许“理论上可行”代替“已实现”。必须提供文件证据。 4) 每条结论都要给证据:文件路径 + 关键片段 + 命令输出摘要。 5) 若无法运行命令或测试,必须写明原因、影响范围、替代验证方式。 统一审计输出格式(固定顺序): A. Delivery Summary(本次交付范围) B. Requirement Matrix(逐条需求矩阵) 字段:Requirement | Status(PASS/FAIL/PARTIAL) | Evidence C. Runtime Verification(启动/测试/迁移/接口验证) D. Risk Register(剩余风险,按高/中/低) E. Next Fixes(仅列 FAILED/PARTIAL 的修复步骤) F. Final Verdict(GO / NO-GO) 判定规则: - 全部 Requirement=PASS 且核心运行验证通过,才可 Final Verdict=GO。 - 出现任意 FAILED,Final Verdict 必须为 NO-GO。 ``` ### 1) 项目初始化(严格审计版) ```text 基于“1) 项目初始化提示词(可执行)”执行,并追加审计: 1) Requirement Matrix 必须覆盖模块、env 校验、TypeORM、Swagger、Schedule、docker-compose.dev。 2) Runtime Verification 必须包含: - 应用启动日志关键行 - /api-docs 访问验证方式 - 数据库连通性验证结果 3) 输出目录树时,必须包含 src/modules 下 8 个模块目录证据。 ``` ### 2) 实体与迁移(严格审计版) ```text 基于“2) 数据库实体与迁移提示词(可执行)”执行,并追加审计: 1) Requirement Matrix 必须逐实体审计字段、索引、外键、唯一约束。 2) Runtime Verification 必须包含 migration:run 成功证据。 3) 至少给出 2 条 EXPLAIN(或等效)结果摘要,证明关键索引可命中。 4) 若“按年分区”仅给样例,状态必须标注 PARTIAL,并说明为何不默认启用。 ``` ### 3) 行情抓取(严格审计版) ```text 基于“3) 行情数据抓取服务提示词(可执行)”执行,并追加审计: 1) Requirement Matrix 必须覆盖 Cron 时区、provider 切换、upsert、历史查询、最新查询、重试。 2) Runtime Verification 必须包含: - 触发一次抓取的执行证据 - upsert 前后结果摘要 - 重试链路日志摘要 3) 接口示例要标注成功与失败各 1 例。 ``` ### 4) 指标计算(严格审计版) ```text 基于“4) 技术指标计算模块提示词(可执行)”执行,并追加审计: 1) Requirement Matrix 必须分为“纯计算层”与“缓存应用层”两组。 2) 测试审计必须列出每个指标的正常样例和边界样例通过状态。 3) 若缓存未启用或命中率无法验证,必须标记 PARTIAL 并给补救步骤。 ``` ### 5) 分析引擎(严格审计版) ```text 基于“5) 投资分析引擎提示词(可执行)”执行,并追加审计: 1) Requirement Matrix 必须覆盖短/中/长期与综合推荐 4 组。 2) 审计中必须附一个完整输入与完整输出 JSON,并标注规则命中路径。 3) 若任何阈值仍硬编码在业务流程内,判定 PARTIAL。 ``` ### 6) WebSocket 推送(严格审计版) ```text 基于“6) WebSocket 实时行情推送提示词(可执行)”执行,并追加审计: 1) Requirement Matrix 必须覆盖鉴权、订阅/取消订阅、room、心跳、tick 推送、前端示例。 2) Runtime Verification 必须至少包含: - token 有效连接成功 - token 失效连接失败 - 重复订阅去重或幂等处理结果 3) 明确区分服务端职责与客户端重连职责,缺一项即 PARTIAL。 ``` ### 7) 投资组合(严格审计版) ```text 基于“7) 投资组合管理服务提示词(可执行)”执行,并追加审计: 1) Requirement Matrix 必须覆盖买入、卖出、查询、收益统计、并发控制。 2) Runtime Verification 必须包含至少 2 个并发场景结果摘要。 3) 业务公式必须可追溯到具体函数,需提供文件证据。 4) 若余额校验链路未打通 CashAccount,判定 FAILED。 ``` ### 8) 回测引擎(严格审计版) ```text 基于“8) 策略回测引擎提示词(可执行)”执行,并追加审计: 1) Requirement Matrix 必须覆盖三类策略、参数、输出指标、异步队列、缓存。 2) Runtime Verification 必须包含任务创建、执行中、完成三态样例。 3) Sharpe/MaxDrawdown 公式需附计算口径说明(日频/年化假设)。 4) 若 worker 未能独立启动,Final Verdict 直接 NO-GO。 ``` ### 9) 智能推荐 API(严格审计版) ```text 基于“9) 智能推荐 API 提示词(可执行)”执行,并追加审计: 1) Requirement Matrix 必须覆盖 3 个接口与 5 条 AI 集成要求。 2) Runtime Verification 必须包含 AI 正常响应和降级响应两条证据。 3) 审计必须检查敏感字段脱敏与免责声明字段存在性。 4) 若未实现 Provider 抽象层,判定 FAILED。 ``` ### 10) 性能与部署(严格审计版) ```text 基于“10) 性能优化与部署提示词(可执行)”执行,并追加审计: 1) Requirement Matrix 必须覆盖缓存、DB 优化、队列、Docker、PM2、监控 6 组。 2) Runtime Verification 必须包含 healthcheck 与 metrics 验证摘要。 3) 审计必须给出“开发/生产差异表”的完整项,不得省略。 4) 若缺少可执行启动命令链路(compose + app/worker),Final Verdict=NO-GO。 ```