{"skill":{"slug":"stock-select","displayName":"Stock Select","summary":"AI驱动的智能选股与交易助手。自然语言选股（如\"涨停股\"、\"主力净流入>10%\"），Level2主力资金数据，集合竞价异动监控，多券商账户管理与AI辅助下单。让选股→分析→交易一站式完成。触发词：选股、问财、股票查询、主力资金、大单净额、涨停、集合竞价、股票行情、交易下单。","description":"---\nname: stock-select\ndescription: AI驱动的智能选股与交易助手。自然语言选股（如\"涨停股\"、\"主力净流入>10%\"），Level2主力资金数据，集合竞价异动监控，多券商账户管理与AI辅助下单。让选股→分析→交易一站式完成。触发词：选股、问财、股票查询、主力资金、大单净额、涨停、集合竞价、股票行情、交易下单。\nauthor: hailong787@163.com\nlicense: MIT\nversion: 2.0.2\n---\n\n# 智能选股技能\n\n基于自然语言的智能选股工具，类似同花顺问财。支持行情查询、动态选股、用户认证、Level2数据、交易下单。\n\n**官网**: https://stockbot.me\n\n## 外部依赖声明\n\n本技能依赖以下外部 API 服务：\n\n| 服务 | 地址 | 用途 | 认证 |\n|------|------|------|------|\n| Stockboot API | `https://api.stockbot.me` | 股票行情查询、动态选股、用户认证、交易 | 部分接口需要 Token |\n\n### 隐私与数据安全\n\n- **数据流向**：仅向 Stockboot API 发送请求\n- **数据类型**：股票代码、选股条件、用户认证信息\n- **传输安全**：所有请求使用 HTTPS 加密传输\n- **Token 存储**：建议在会话中使用，不要持久化存储\n\n### 自托管选项\n\n本技能的 API 服务可自行部署。如需自托管，请参考：\n- 后端源码：私有仓库\n- 部署后修改环境变量 `STOCKBOOT_API_URL` 指向您的服务地址\n\n---\n\n## 环境配置\n\n默认 API 地址：`https://api.stockbot.me`\n\n可通过环境变量自定义：\n```bash\nexport STOCKBOOT_API_URL=\"https://your-server/api\"\n```\n\n---\n\n## 一、用户认证接口 (/auth)\n\n### 1.1 用户登录\n- **接口**: `POST ${STOCKBOOT_API_URL}/auth/login`\n- **说明**: 用户登录，返回 Token 和账户列表\n- **Body**: `{\"username\": \"xxx\", \"password\": \"xxx\"}`\n- **返回字段**:\n  - `userInfo`: 用户信息（vipLevel, role, phone, nickname, vipExpireTime）\n  - `accounts`: 账户列表（id, accountName, brokerType, brokerAccount, availableBalance 等）\n  - `token`: JWT Token（有效期7天）\n  - `refreshToken`: 刷新 Token（有效期14天）\n- **示例**:\n  ```bash\n  curl -X POST \"${STOCKBOOT_API_URL}/auth/login\" \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\"username\": \"18680859800\", \"password\": \"abcd1234\"}'\n  ```\n- **VIP等级说明**:\n  - vipLevel=0: 普通用户，仅基础行情\n  - vipLevel=1: VIP用户，Level2数据\n  - vipLevel=2: 超级VIP，Level2数据 + 交易功能\n\n### 1.2 用户注册\n- **接口**: `POST ${STOCKBOOT_API_URL}/auth/register`\n- **说明**: 用户注册（需要短信验证码）\n- **Body**: `{\"phone\": \"xxx\", \"password\": \"xxx\", \"confirmPassword\": \"xxx\", \"code\": \"xxx\"}`\n- **示例**:\n  ```bash\n  curl -X POST \"${STOCKBOOT_API_URL}/auth/register\" \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\"phone\": \"13800138000\", \"password\": \"test123\", \"confirmPassword\": \"test123\", \"code\": \"123456\"}'\n  ```\n\n### 1.3 发送验证码\n- **接口**: `POST ${STOCKBOOT_API_URL}/auth/sms/send`\n- **说明**: 发送短信验证码（用于注册/登录）\n- **Body**: `{\"phone\": \"xxx\", \"type\": \"register/login\"}`\n- **示例**:\n  ```bash\n  curl -X POST \"${STOCKBOOT_API_URL}/auth/sms/send\" \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\"phone\": \"13800138000\", \"type\": \"register\"}'\n  ```\n\n### 1.4 刷新 Token\n- **接口**: `POST ${STOCKBOOT_API_URL}/auth/refresh`\n- **说明**: 使用 refreshToken 刷新 access token\n- **Header**: `Authorization: Bearer ${refreshToken}`\n- **示例**:\n  ```bash\n  curl -X POST \"${STOCKBOOT_API_URL}/auth/refresh\" \\\n    -H \"Authorization: Bearer ${refreshToken}\"\n  ```\n\n### 1.5 退出登录\n- **接口**: `POST ${STOCKBOOT_API_URL}/auth/logout`\n- **说明**: 退出登录，Token失效\n- **Header**: `Authorization: Bearer ${token}`\n- **示例**:\n  ```bash\n  curl -X POST \"${STOCKBOOT_API_URL}/auth/logout\" \\\n    -H \"Authorization: Bearer ${token}\"\n  ```\n\n---\n\n## 二、行情接口 (/quote)\n\n> **注意**: 带 Token 访问行情接口会返回 Level2 数据（VIP功能）\n\n### 2.1 获取单只股票行情\n- **接口**: `GET ${STOCKBOOT_API_URL}/quote/{stockCode}`\n- **说明**: 获取股票实时行情，包括五档买卖\n- **Header**: 无需认证（普通行情）；带 Token 返回 Level2 数据\n- **示例**:\n  ```bash\n  # 普通行情\n  curl \"${STOCKBOOT_API_URL}/quote/600519\"\n  \n  # Level2 数据（需要 Token）\n  curl \"${STOCKBOOT_API_URL}/quote/600519\" \\\n    -H \"Authorization: Bearer ${token}\"\n  ```\n- **返回字段**:\n  - 基础字段: stockCode, stockName, currentPrice, changeRate, volume, amount, 五档买卖等\n  - **Level2 字段** (VIP):\n    - `mainNetInflow`: 大单净额（主力净额，单位：元）\n    - `mainNetInflowRate`: 大单净量占比（主力净量占比，百分比）\n\n### 2.2 批量获取股票行情\n- **接口**: `POST ${STOCKBOOT_API_URL}/quote/batch`\n- **说明**: 批量获取多只股票实时行情（优化传输格式）\n- **Body**: `[\"600519\", \"000001\", \"300750\"]`\n- **Header**: 带 Token 返回 Level2 数据\n- **示例**:\n  ```bash\n  # 普通行情\n  curl -X POST \"${STOCKBOOT_API_URL}/quote/batch\" \\\n    -H \"Content-Type: application/json\" \\\n    -d '[\"600519\", \"000001\", \"300750\"]'\n  \n  # Level2 数据\n  curl -X POST \"${STOCKBOOT_API_URL}/quote/batch\" \\\n    -H \"Authorization: Bearer ${token}\" \\\n    -H \"Content-Type: application/json\" \\\n    -d '[\"600519\", \"000001\", \"300750\"]'\n  ```\n- **返回字段**: fields（字段名数组，含 mainNetInflow、mainNetInflowRate）, items（数据二维数组）\n\n### 2.3 搜索股票\n- **接口**: `POST ${STOCKBOOT_API_URL}/quote/search`\n- **说明**: 根据股票代码、简称或名称搜索股票\n- **Body**: `{\"keyword\": \"xxx\"}`\n- **示例**:\n  ```bash\n  curl -X POST \"${STOCKBOOT_API_URL}/quote/search\" \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\"keyword\": \"茅台\"}'\n  ```\n\n### 2.4 获取分时数据\n- **接口**: `GET ${STOCKBOOT_API_URL}/quote/minute/{stockCode}?tradeDate=xxx`\n- **说明**: 获取股票分时行情数据，不指定日期则获取当天\n- **示例**:\n  ```bash\n  curl \"${STOCKBOOT_API_URL}/quote/minute/600519\"\n  ```\n- **返回字段**: time, volume, amount, avgPrice, cumulativeAvgPrice, changeRate, close\n\n### 2.5 获取分时数据（优化传输）\n- **接口**: `GET ${STOCKBOOT_API_URL}/quote/minute/{stockCode}/optimized?tradeDate=xxx`\n- **说明**: 获取分时数据，字段名和数据分离，减少网络传输量\n\n### 2.6 获取集合竞价数据\n- **接口**: `GET ${STOCKBOOT_API_URL}/quote/call-auction/{stockCode}?tradeDate=xxx`\n- **说明**: 获取早盘集合竞价数据（9:15-9:25）\n- **示例**:\n  ```bash\n  curl \"${STOCKBOOT_API_URL}/quote/call-auction/600519\"\n  ```\n- **返回字段**: time, price, bid1-5, ask1-5, bidSize1-5, askSize1-5, volume, amount\n\n### 2.7 获取集合竞价数据（优化传输）\n- **接口**: `GET ${STOCKBOOT_API_URL}/quote/call-auction/{stockCode}/optimized?tradeDate=xxx`\n\n### 2.8 获取股票基础数据\n- **接口**: `GET ${STOCKBOOT_API_URL}/quote/basic-data/{stockCode}`\n- **说明**: 获取融资融券、次新、市盈率、市净率、板块、概念等基础数据\n- **示例**:\n  ```bash\n  curl \"${STOCKBOOT_API_URL}/quote/basic-data/600519\"\n  ```\n\n### 2.9 获取历史K线数据\n- **接口**: `GET ${STOCKBOOT_API_URL}/quote/kline/{stockCode}?interval=D&startDate=xxx&endDate=xxx&appendToday=false`\n- **参数**:\n  - `interval`: K线周期 (D=日, W=周, M=月, Q=季, Y=年)\n  - `startDate`: 开始日期\n  - `endDate`: 结束日期\n  - `appendToday`: 是否包含今天\n- **示例**:\n  ```bash\n  curl \"${STOCKBOOT_API_URL}/quote/kline/600519?interval=D&appendToday=true\"\n  ```\n\n### 2.10 获取历史K线数据（优化传输）\n- **接口**: `GET ${STOCKBOOT_API_URL}/quote/kline/{stockCode}/optimized`\n\n---\n\n## 三、账户接口 (/account)\n\n> **需要 Token 认证**\n\n### 3.1 获取账户列表\n- **接口**: `GET ${STOCKBOOT_API_URL}/account/list`\n- **说明**: 获取用户绑定的所有交易账户\n- **Header**: `Authorization: Bearer ${token}`\n- **示例**:\n  ```bash\n  curl \"${STOCKBOOT_API_URL}/account/list\" \\\n    -H \"Authorization: Bearer ${token}\"\n  ```\n- **返回字段**:\n  - `id`: 账户ID\n  - `accountName`: 账户名称\n  - `brokerType`: 券商类型（0=东方财富, 7=国金证券）\n  - `brokerTypeName`: 券商名称\n  - `brokerAccount`: 券商账号\n  - `isCreditAccount`: 是否信用账户\n  - `availableBalance`: 可用余额\n  - `totalAssets`: 总资产\n  - `positionValue`: 持仓市值\n  - `todayProfit`: 今日盈亏\n  - `deviceOnline`: 设备在线状态\n  - `isPrimary`: 是否主账户\n  - `status`: 账户状态（1=正常）\n\n---\n\n## 四、交易接口 (/trade)\n\n> **需要 Token 认证 + VIP等级 >= 2**\n\n### 4.1 下单\n- **接口**: `POST ${STOCKBOOT_API_URL}/trade/order`\n- **说明**: 买入或卖出股票\n- **Header**: `Authorization: Bearer ${token}`\n- **Body**:\n  ```json\n  {\n    \"accountId\": 1001,           // 账户ID（从账户列表获取）\n    \"stockCode\": \"600666\",       // 股票代码\n    \"stockName\": \"奥瑞德\",       // 股票名称\n    \"price\": 6.00,               // 价格（市价单可忽略）\n    \"quantity\": 100,             // 数量（股）\n    \"orderType\": 0,              // 0=买入, 1=卖出\n    \"priceType\": \"LIMIT\"         // LIMIT=限价, MARKET=市价\n  }\n  ```\n- **示例**:\n  ```bash\n  # 限价买入\n  curl -X POST \"${STOCKBOOT_API_URL}/trade/order\" \\\n    -H \"Authorization: Bearer ${token}\" \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\"accountId\":1001,\"stockCode\":\"600666\",\"stockName\":\"奥瑞德\",\"price\":6.00,\"quantity\":100,\"orderType\":0,\"priceType\":\"LIMIT\"}'\n  \n  # 市价卖出\n  curl -X POST \"${STOCKBOOT_API_URL}/trade/order\" \\\n    -H \"Authorization: Bearer ${token}\" \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\"accountId\":1001,\"stockCode\":\"600666\",\"stockName\":\"奥瑞德\",\"quantity\":100,\"orderType\":1,\"priceType\":\"MARKET\"}'\n  ```\n- **返回字段**:\n  - `id`: 订单ID\n  - `status`: 状态（5=失败，其他状态待补充）\n  - `errorMessage`: 错误信息（如\"委托价格超过跌停价格\"）\n\n---\n\n## 五、动态选股接口 (/dynamic-select)\n\n- **接口**: `POST ${STOCKBOOT_API_URL}/dynamic-select/execute`\n- **说明**: 使用自然语言选股\n- **Body**: `{\"sentence\": \"选股条件\"}`\n- **示例**:\n  ```bash\n  curl -X POST \"${STOCKBOOT_API_URL}/dynamic-select/execute\" \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\"sentence\": \"涨停\"}'\n  ```\n\n---\n\n## 六、动态选股查询语法\n\n当用户提出选股需求时，将自然语言转换为查询条件。\n\n### 支持的查询模式\n\n1. **涨跌停类**:\n   - `涨停` / `跌停`\n   - `涨幅大于8%未涨停非ST`\n   - `非一字涨停非ST`\n\n2. **涨幅类**:\n   - `涨幅大于5%` / `涨幅小于-3%`\n   - `连续3天上涨`\n   - `前5日平均涨幅大于20%`\n\n3. **财务指标**:\n   - `市盈率小于20` / `市净率小于2`\n   - `流通市值小于50亿`\n\n4. **组合条件** (分号分隔):\n   - `涨幅大于5%;非ST`\n   - `前5日平均涨幅大于20%;前10日涨停次数大于1`\n   - `连续5日净买入且主力净流入占比大于10%非ST`\n\n5. **排除条件**:\n   - `非ST` / `非新股`\n\n---\n\n## 七、使用流程\n\n### 7.1 基础行情（无需登录）\n\n```bash\n# 查询股票行情\ncurl \"${STOCKBOOT_API_URL}/quote/600519\"\n\n# 动态选股\ncurl -X POST \"${STOCKBOOT_API_URL}/dynamic-select/execute\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"sentence\": \"涨停\"}'\n```\n\n### 7.2 VIP 用户（Level2数据）\n\n```bash\n# 1. 登录获取 Token\nRESPONSE=$(curl -s -X POST \"${STOCKBOOT_API_URL}/auth/login\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"username\":\"18680859800\",\"password\":\"abcd1234\"}')\nTOKEN=$(echo $RESPONSE | jq -r '.data.token')\n\n# 2. 获取 Level2 数据\ncurl \"${STOCKBOOT_API_URL}/quote/600519\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n# 返回: mainNetInflow（主力净额）, mainNetInflowRate（主力净量占比）\n```\n\n### 7.3 超级VIP（交易功能）\n\n```bash\n# 1. 登录\nTOKEN=$(...)\n\n# 2. 获取账户列表\ncurl \"${STOCKBOOT_API_URL}/account/list\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n\n# 3. 下单交易\ncurl -X POST \"${STOCKBOOT_API_URL}/trade/order\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"accountId\":1001,\"stockCode\":\"600666\",\"stockName\":\"奥瑞德\",\"price\":6.00,\"quantity\":100,\"orderType\":0,\"priceType\":\"LIMIT\"}'\n```\n\n---\n\n## 八、示例对话\n\n**用户**: 帮我找今天涨停的股票\n**助手**: 调用 `/dynamic-select/execute` 查询\"涨停\"，返回涨停股票列表\n\n**用户**: 查询茅台的行情，我要看主力净额\n**助手**: 需要先登录获取 Token，然后调用 `/quote/600519` 带 Authorization header，返回包含 mainNetInflow 的数据\n\n**用户**: 我要买入奥瑞德100股，价格6元\n**助手**: \n1. 确认用户已登录且有交易权限\n2. 获取账户列表确认 accountId\n3. 调用 `/trade/order` 下单\n\n**用户**: 市盈率低的小盘股有哪些？\n**助手**: 调用 `/dynamic-select/execute` 查询\"市盈率小于20;流通市值小于50亿\"\n\n---\n\n## 九、错误处理\n\n| 错误码 | 说明 | 处理建议 |\n|--------|------|----------|\n| 9001 | 参数错误 | 检查请求参数格式 |\n| 403 | 未授权/Token失效 | 重新登录获取 Token |\n| 500 | 系统异常 | 稍后重试或联系管理员 |\n\n---\n\n## 十、更新日志\n\n### v2.0.0 (2026-04-20)\n- ✨ 新增用户认证接口（登录、注册、验证码、刷新Token、退出）\n- ✨ 新增 Level2 数据支持（主力净额、主力净量）- VIP功能\n- ✨ 新增账户接口（获取账户列表）\n- ✨ 新增交易接口（下单买入/卖出）- 超级VIP功能\n- 📝 完善接口文档和使用示例\n\n### v1.5.1 (2026-03-21)\n- 基础行情查询\n- 动态选股功能","tags":{"latest":"2.0.2"},"stats":{"comments":0,"downloads":1490,"installsAllTime":7,"installsCurrent":7,"stars":2,"versions":13},"createdAt":1773489506626,"updatedAt":1779078106174},"latestVersion":{"version":"2.0.2","createdAt":1776655444233,"changelog":"更新API域名到api.stockbot.me，添加官网地址stockbot.me","license":"MIT-0"},"metadata":{"setup":[],"os":null,"systems":null},"owner":{"handle":"wanghl-cn","userId":"s174z4esce0m33mx2e443a6qrs857rss","displayName":"Hailong Wang","image":"https://avatars.githubusercontent.com/u/24849120?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780090486335}}