# StockQuantLab **Repository Path**: kotori3/stock-quant-lab ## Basic Information - **Project Name**: StockQuantLab - **Description**: 股票量化分析平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-08 - **Last Updated**: 2026-07-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # StockQuantLab ## 介绍 **股票量化分析平台** —— 基于微服务架构的量化交易策略研究与回测系统,提供数据采集、因子计算、策略回测、风险监控等功能模块。 ## 配套使用 [Python部分](https://gitee.com/kotori3/stock-quant-lab_python)<- 用来AI分析的,目前只做了双均线 [前端部分](https://gitee.com/kotori3/stock-quant-lab_stock-frontend) <- 前端,展示K线与AI分析(未接入大模型) ## 技术栈与版本 对应端口 | 组件 | 版本 | |------|------| | JDK | 17 | | Spring Boot | 3.2.x | | Spring Cloud | 2023.0.3 | | Spring Cloud Alibaba | 2023.0.1.0 | | Nacos (服务发现/配置中心) | v2.3.2 | | Docker Desktop| 配备WSL2 | | MySQL | 8.0.34 | nacos端口8848 python脚本端口8000 网关端口9090 stock-service-data端口9091 stock-predict-service端口9092 ## 进度 #### 2026-07-18 RestTemplate -> OpenFeign #### 2026-07-10 架构改变: 现在可以查询任意股票了! 数据库不存在该股票数据时,会自动从baostock中获取数据存入数据库,之后进行查询或预测 原:不存在于数据库股票:Java 返回空结束 / 查询与预测在同一微服务下 现:不存在于数据库股票:Java 返回空 -> baostock 拉取(python部分) -> POST /api/kline/import 入库 -> 再查 Java / 查询与预测微服务进行拆分,对应前端vite.config.ts接口对应响应微服务 #### 2026-07-09 重改前端,仿股票看板设计,自动计算均线 长短线前后端数值检测,非法值前端自动返回error;若非法值直接请求后端,后端自动报错返回,不穿透到Python端 TODO:后端及数据库待去掉均线字段 #### 2026-07-08 完成前端,后端基本框架;docker部署nacos、mysql 导入601169股票进行测试;python双均线预测 ## API (仍在施工中) ### 1. 获取日线数据 **作用**:查询指定股票在日期范围内的日线数据 **API**:`GET /api/kline` **所属服务**:stock-data-service (9091) **请求参数** | 参数名 | 类型 | 必填 | 说明 | 示例 | |---|---|---|---|---| | code | string | 是 | 股票代码 | 000001 | | startDate | string | 否 | 开始日期(yyyy-MM-dd),默认前1600天 | 2022-01-01 | | endDate | string | 否 | 结束日期(yyyy-MM-dd),默认当天 | 2026-07-09 | **响应示例** (TODO:删除数据库ma均线字段 原因:前端自动计算,无必要存储) ``` json [ { "id": 1, "code": "000001", "tradeDate": "2026-07-01", "openPrice": 12.35, "highPrice": 12.68, "lowPrice": 12.32, "closePrice": 12.55, "volume": 1250000, "amount": 15687500.50, "ma5":null, "ma10":null, "ma25":null, "createTime":"2026-07-09T10:30:00", "updatedTime": "2026-07-09T10:30:00" } ] ``` --- ### 2. 批量导入日线数据 **作用**:批量插入或更新日线数据(重复主键覆盖) **API**:`POST /api/kline/import` **所属服务**:stock-data-service (9091) **请求体** ``` json: [ { "code": "000001", "tradeDate": "2026-07-09", "openPrice": 12.45, "highPrice": 12.90, "lowPrice": 12.38, "closePrice": 12.75, "volume": 1800000, "amount": 22905000.00 } ] ``` **字段说明** | 字段名 | 类型 | 必填 | 说明 | |---|---|---|---| | code | string | 是 | 股票代码 | | tradeDate | string | 是 | 交易日期(yyyy-MM-dd) | | open | number | 是 | 开盘价 | | high | number | 是 | 最高价 | | low | number | 是 | 最低价 | | close | number | 是 | 收盘价 | | volume | integer | 是 | 成交量(股) | | amount | number | 是 | 成交额(元) | **响应示例** ``` json: { "code": 200, "message": "success", "data": null } ``` --- --- ### 3. AI 双均线预测 **作用**:调用 Python AI 引擎进行双均线策略预测,返回买卖信号 **API**:`POST /api/predict` **所属服务**:stock-predict-service (9092) **请求体** ``` json { "code": "000001", "startDate": "2026-01-01", "endDate": "2026-07-09", "fastPeriod": 5, "slowPeriod": 20 } ``` **字段说明** | 字段名 | 类型 | 必填 | 说明 | |---|---|---|---| | code | string | 是 | 股票代码 | | startDate | string | 是 | 开始日期(yyyy-MM-dd) | | endDate | string | 是 | 结束日期(yyyy-MM-dd) | | fastPeriod | integer | 否 | 快速均线周期(1~1000),默认5 | | slowPeriod | integer | 否 | 慢速均线周期(1~1000),默认20 | **响应示例(成功)** ``` json { "code": "000001", "signal": 1, "reason": "快线上穿慢线,建议买入", "currentPrice": 12.55, "maFast": 12.40, "maSlow": 12.10 } ``` **响应字段说明** | 字段名 | 类型 | 说明 | |---|---|---| | code | string | 股票代码 | | signal | integer | 交易信号:1=买入,-1=卖出,0=持有 | | reason | string | 预测理由 | | currentPrice | number | 当前价格 | | maFast | number | 快线均线值 | | maSlow | number | 慢线均线值 |