# stock_sdk **Repository Path**: tumanba_1/stock_sdk ## Basic Information - **Project Name**: stock_sdk - **Description**: 1. 基于MACD循环理论,开发一套完整的技术分析指标系统,该系统应包含MACD指标的计算逻辑、循环周期识别算法、买卖信号生成机制,并提供历史数据回测功能以验证理论有效性。 2. 基于缠论理论,开发一个股票走势图分析工具,该工具应能够自动识别并标注缠论中的关键技术形态,包括但不限于中枢、笔、线段、背驰等。 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-24 - **Last Updated**: 2026-04-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 股票K线分析系统 基于 Vue 3 + stock-sdk + klinecharts 构建的A股K线分析应用,支持后端数据存储和前端展示。 ## 功能特性 - **A股数据获取**:使用 stock-sdk 获取A股历史K线数据 - **多时间周期**:支持日K、周K、月K以及1/5/15/30/60分钟K线 - **双图表模式**:标准K线和缠论K线切换展示 - **专业图表展示**:使用 klinecharts 库展示专业K线图表 - **实时报价信息**:显示股票名称、当前价格、涨跌幅等信息 - **数据持久化**:使用 SQLite 数据库存储股票数据 - **RESTful API**:提供后端API接口供前端调用 - **智能搜索**:支持股票代码、名称、拼音搜索 ## 技术栈 | 技术 | 版本 | 说明 | 官方地址 | | ----------- | --- | ------------ | ----------------------------------------- | | Vue | 3.x | 前端框架 | https://vuejs.org | | Vite | 6.x | 构建工具 | https://vitejs.dev | | stock-sdk | 最新 | A股数据SDK | https://stock-sdk.linkdiary.cn/api/ | | klinecharts | 10.x | K线图表库 | https://v9.klinecharts.com/ | | Express | 4.x | 后端服务器框架 | https://expressjs.com | | SQLite3 | 5.x | 数据库 | https://www.sqlite.org | | axios | 1.x | HTTP客户端 | https://axios-http.com | ## 快速开始 ### 安装依赖 ```bash npm install ``` ### 启动后端服务 ```bash node server/index.cjs ``` 后端服务运行在 `http://localhost:3001` ### 同步股票数据 ```bash # 同步股票代码 node server/sync-codes.cjs # 同步股票行情(Windows PowerShell) powershell -ExecutionPolicy Bypass -File server/sync-quotes.ps1 ``` ### 启动前端开发服务器 ```bash npm run dev ``` 前端服务运行在 `http://localhost:5176` ### 生产构建 ```bash npm run build ``` ### 代码检查 ```bash npm run lint ``` ## 项目结构 ``` src/ ├── main.js # 应用入口 ├── App.vue # 主应用组件 ├── style.css # 全局样式 ├── api/ │ └── stock.js # 股票API模块(使用stock-sdk) ├── components/ │ ├── KLineChart.vue # 标准K线图表组件 │ ├── ChanlunKLineChart.vue # 缠论K线图表组件 │ └── StockInfo.vue # 股票信息面板组件 server/ ├── index.cjs # 后端API服务器 ├── sync-codes.cjs # 股票代码同步脚本 ├── sync-quotes-from-db.cjs # 股票行情同步脚本 ├── sync-quotes.ps1 # PowerShell同步脚本(解决中文乱码) └── init-test-data.cjs # 测试数据初始化脚本 data/ └── stock.db # SQLite数据库文件 ``` ## API说明 ### 后端API接口 | 接口 | 方法 | 说明 | | ---- | ---- | ---- | | `/api/stock-codes` | GET | 获取股票代码列表 | | `/api/stock-codes` | POST | 批量插入股票代码 | | `/api/stock-quotes` | GET | 获取股票行情数据 | | `/api/stock-quotes/:code` | GET | 获取指定股票行情 | | `/api/stock-quotes` | POST | 批量插入股票行情 | | `/api/stock-codes` | DELETE | 清空股票代码表 | | `/api/stock-quotes` | DELETE | 清空股票行情表 | ### stock-sdk 使用 ```javascript import { StockSDK } from 'stock-sdk' const sdk = new StockSDK({ timeout: 15000, retry: { maxRetries: 2 }, rateLimit: { requestsPerSecond: 1 } }) // 获取历史K线 const data = await sdk.getHistoryKline('600519', { period: 'daily', // daily | weekly | monthly adjust: 'qfq', // '' | 'qfq' | 'hfq' startDate: '20240101', endDate: '20250101' }) // 获取分钟K线 const data = await sdk.getMinuteKline('600519', { period: '5', // '1' | '5' | '15' | '30' | '60' adjust: 'qfq' }) // 获取A股代码列表 const codes = await sdk.getAShareCodeList({ simple: true }) // 获取全量行情 const quotes = await sdk.getAllAShareQuotes() // 搜索股票 const results = await sdk.search('贵州茅台') ``` ### 返回数据格式 ```typescript interface HistoryKline { date: string; // 日期 YYYY-MM-DD code: string; // 股票代码 open: number | null; // 开盘价 close: number | null; // 收盘价 high: number | null; // 最高价 low: number | null; // 最低价 volume: number | null; // 成交量 amount: number | null; // 成交额 } interface StockQuote { code: string; // 股票代码 name: string; // 股票名称 price: number; // 当前价格 change: number; // 涨跌额 changePercent: number; // 涨跌幅 open: number; // 开盘价 high: number; // 最高价 low: number; // 最低价 volume: number; // 成交量 } ``` ## 数据流程 ``` ┌─────────────────┐ HTTP API ┌─────────────────┐ │ 前端 (Vue) │ ───────────────► │ 后端 (Express) │ │ http://localhost:5176 │ │ http://localhost:3001 │ └─────────────────┘ └────────┬────────┘ │ SQLite ▼ ┌─────────────────┐ │ stock.db │ └─────────────────┘ ``` ### 数据加载策略 1. 前端优先从后端API(SQLite数据库)读取股票数据 2. 如果数据库中没有数据,则从 stock-sdk 获取 3. 获取的数据会保存到数据库,下次直接读取本地数据 ## 支持的股票 系统支持所有A股股票,包含沪市、深市、北交所股票(5000+只)。 ## 图表类型 ### 标准K线 显示完整的蜡烛图,包含开盘价、收盘价、最高价、最低价。 ### 缠论K线 只显示最高价和最低价的范围,根据原始数据判断涨跌颜色,便于观察缠论中的分型、笔、线段。 ## K线颜色配置 遵循A股配色习惯: - **上涨(收盘价 >= 开盘价)**:红色 (#ff0000) - **下跌(收盘价 < 开盘价)**:绿色 (#00ff00) ## 搜索功能 支持三种搜索方式: - ✅ 股票代码搜索(如 `600519`) - ✅ 股票名称搜索(如 `贵州茅台`) - ✅ 拼音搜索(如 `maotai`) ## 许可证 MIT License ## 更新记录 - 2026-04-27:完成数据同步脚本开发,支持从stock-sdk同步数据到SQLite - 2026-04-27:修复K线颜色配置,实现A股标准配色(上涨红色,下跌绿色) - 2026-04-27:添加股票搜索功能,支持代码、名称、拼音搜索 - 2026-04-27:完善项目文档,更新README.md和data.md