Security warning — review recommended

ClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.

Stock Select

AI驱动的智能选股与交易助手。自然语言选股(如"涨停股"、"主力净流入>10%"),Level2主力资金数据,集合竞价异动监控,多券商账户管理与AI辅助下单。让选股→分析→交易一站式完成。触发词:选股、问财、股票查询、主力资金、大单净额、涨停、集合竞价、股票行情、交易下单。

Audits

Warn

Install

openclaw skills install stock-select

智能选股技能

基于自然语言的智能选股工具,类似同花顺问财。支持行情查询、动态选股、用户认证、Level2数据、交易下单。

官网: https://stockbot.me

外部依赖声明

本技能依赖以下外部 API 服务:

服务地址用途认证
Stockboot APIhttps://api.stockbot.me股票行情查询、动态选股、用户认证、交易部分接口需要 Token

隐私与数据安全

  • 数据流向:仅向 Stockboot API 发送请求
  • 数据类型:股票代码、选股条件、用户认证信息
  • 传输安全:所有请求使用 HTTPS 加密传输
  • Token 存储:建议在会话中使用,不要持久化存储

自托管选项

本技能的 API 服务可自行部署。如需自托管,请参考:

  • 后端源码:私有仓库
  • 部署后修改环境变量 STOCKBOOT_API_URL 指向您的服务地址

环境配置

默认 API 地址:https://api.stockbot.me

可通过环境变量自定义:

export STOCKBOOT_API_URL="https://your-server/api"

一、用户认证接口 (/auth)

1.1 用户登录

  • 接口: POST ${STOCKBOOT_API_URL}/auth/login
  • 说明: 用户登录,返回 Token 和账户列表
  • Body: {"username": "xxx", "password": "xxx"}
  • 返回字段:
    • userInfo: 用户信息(vipLevel, role, phone, nickname, vipExpireTime)
    • accounts: 账户列表(id, accountName, brokerType, brokerAccount, availableBalance 等)
    • token: JWT Token(有效期7天)
    • refreshToken: 刷新 Token(有效期14天)
  • 示例:
    curl -X POST "${STOCKBOOT_API_URL}/auth/login" \
      -H "Content-Type: application/json" \
      -d '{"username": "18680859800", "password": "abcd1234"}'
    
  • VIP等级说明:
    • vipLevel=0: 普通用户,仅基础行情
    • vipLevel=1: VIP用户,Level2数据
    • vipLevel=2: 超级VIP,Level2数据 + 交易功能

1.2 用户注册

  • 接口: POST ${STOCKBOOT_API_URL}/auth/register
  • 说明: 用户注册(需要短信验证码)
  • Body: {"phone": "xxx", "password": "xxx", "confirmPassword": "xxx", "code": "xxx"}
  • 示例:
    curl -X POST "${STOCKBOOT_API_URL}/auth/register" \
      -H "Content-Type: application/json" \
      -d '{"phone": "13800138000", "password": "test123", "confirmPassword": "test123", "code": "123456"}'
    

1.3 发送验证码

  • 接口: POST ${STOCKBOOT_API_URL}/auth/sms/send
  • 说明: 发送短信验证码(用于注册/登录)
  • Body: {"phone": "xxx", "type": "register/login"}
  • 示例:
    curl -X POST "${STOCKBOOT_API_URL}/auth/sms/send" \
      -H "Content-Type: application/json" \
      -d '{"phone": "13800138000", "type": "register"}'
    

1.4 刷新 Token

  • 接口: POST ${STOCKBOOT_API_URL}/auth/refresh
  • 说明: 使用 refreshToken 刷新 access token
  • Header: Authorization: Bearer ${refreshToken}
  • 示例:
    curl -X POST "${STOCKBOOT_API_URL}/auth/refresh" \
      -H "Authorization: Bearer ${refreshToken}"
    

1.5 退出登录

  • 接口: POST ${STOCKBOOT_API_URL}/auth/logout
  • 说明: 退出登录,Token失效
  • Header: Authorization: Bearer ${token}
  • 示例:
    curl -X POST "${STOCKBOOT_API_URL}/auth/logout" \
      -H "Authorization: Bearer ${token}"
    

二、行情接口 (/quote)

注意: 带 Token 访问行情接口会返回 Level2 数据(VIP功能)

2.1 获取单只股票行情

  • 接口: GET ${STOCKBOOT_API_URL}/quote/{stockCode}
  • 说明: 获取股票实时行情,包括五档买卖
  • Header: 无需认证(普通行情);带 Token 返回 Level2 数据
  • 示例:
    # 普通行情
    curl "${STOCKBOOT_API_URL}/quote/600519"
    
    # Level2 数据(需要 Token)
    curl "${STOCKBOOT_API_URL}/quote/600519" \
      -H "Authorization: Bearer ${token}"
    
  • 返回字段:
    • 基础字段: stockCode, stockName, currentPrice, changeRate, volume, amount, 五档买卖等
    • Level2 字段 (VIP):
      • mainNetInflow: 大单净额(主力净额,单位:元)
      • mainNetInflowRate: 大单净量占比(主力净量占比,百分比)

2.2 批量获取股票行情

  • 接口: POST ${STOCKBOOT_API_URL}/quote/batch
  • 说明: 批量获取多只股票实时行情(优化传输格式)
  • Body: ["600519", "000001", "300750"]
  • Header: 带 Token 返回 Level2 数据
  • 示例:
    # 普通行情
    curl -X POST "${STOCKBOOT_API_URL}/quote/batch" \
      -H "Content-Type: application/json" \
      -d '["600519", "000001", "300750"]'
    
    # Level2 数据
    curl -X POST "${STOCKBOOT_API_URL}/quote/batch" \
      -H "Authorization: Bearer ${token}" \
      -H "Content-Type: application/json" \
      -d '["600519", "000001", "300750"]'
    
  • 返回字段: fields(字段名数组,含 mainNetInflow、mainNetInflowRate), items(数据二维数组)

2.3 搜索股票

  • 接口: POST ${STOCKBOOT_API_URL}/quote/search
  • 说明: 根据股票代码、简称或名称搜索股票
  • Body: {"keyword": "xxx"}
  • 示例:
    curl -X POST "${STOCKBOOT_API_URL}/quote/search" \
      -H "Content-Type: application/json" \
      -d '{"keyword": "茅台"}'
    

2.4 获取分时数据

  • 接口: GET ${STOCKBOOT_API_URL}/quote/minute/{stockCode}?tradeDate=xxx
  • 说明: 获取股票分时行情数据,不指定日期则获取当天
  • 示例:
    curl "${STOCKBOOT_API_URL}/quote/minute/600519"
    
  • 返回字段: time, volume, amount, avgPrice, cumulativeAvgPrice, changeRate, close

2.5 获取分时数据(优化传输)

  • 接口: GET ${STOCKBOOT_API_URL}/quote/minute/{stockCode}/optimized?tradeDate=xxx
  • 说明: 获取分时数据,字段名和数据分离,减少网络传输量

2.6 获取集合竞价数据

  • 接口: GET ${STOCKBOOT_API_URL}/quote/call-auction/{stockCode}?tradeDate=xxx
  • 说明: 获取早盘集合竞价数据(9:15-9:25)
  • 示例:
    curl "${STOCKBOOT_API_URL}/quote/call-auction/600519"
    
  • 返回字段: time, price, bid1-5, ask1-5, bidSize1-5, askSize1-5, volume, amount

2.7 获取集合竞价数据(优化传输)

  • 接口: GET ${STOCKBOOT_API_URL}/quote/call-auction/{stockCode}/optimized?tradeDate=xxx

2.8 获取股票基础数据

  • 接口: GET ${STOCKBOOT_API_URL}/quote/basic-data/{stockCode}
  • 说明: 获取融资融券、次新、市盈率、市净率、板块、概念等基础数据
  • 示例:
    curl "${STOCKBOOT_API_URL}/quote/basic-data/600519"
    

2.9 获取历史K线数据

  • 接口: GET ${STOCKBOOT_API_URL}/quote/kline/{stockCode}?interval=D&startDate=xxx&endDate=xxx&appendToday=false
  • 参数:
    • interval: K线周期 (D=日, W=周, M=月, Q=季, Y=年)
    • startDate: 开始日期
    • endDate: 结束日期
    • appendToday: 是否包含今天
  • 示例:
    curl "${STOCKBOOT_API_URL}/quote/kline/600519?interval=D&appendToday=true"
    

2.10 获取历史K线数据(优化传输)

  • 接口: GET ${STOCKBOOT_API_URL}/quote/kline/{stockCode}/optimized

三、账户接口 (/account)

需要 Token 认证

3.1 获取账户列表

  • 接口: GET ${STOCKBOOT_API_URL}/account/list
  • 说明: 获取用户绑定的所有交易账户
  • Header: Authorization: Bearer ${token}
  • 示例:
    curl "${STOCKBOOT_API_URL}/account/list" \
      -H "Authorization: Bearer ${token}"
    
  • 返回字段:
    • id: 账户ID
    • accountName: 账户名称
    • brokerType: 券商类型(0=东方财富, 7=国金证券)
    • brokerTypeName: 券商名称
    • brokerAccount: 券商账号
    • isCreditAccount: 是否信用账户
    • availableBalance: 可用余额
    • totalAssets: 总资产
    • positionValue: 持仓市值
    • todayProfit: 今日盈亏
    • deviceOnline: 设备在线状态
    • isPrimary: 是否主账户
    • status: 账户状态(1=正常)

四、交易接口 (/trade)

需要 Token 认证 + VIP等级 >= 2

4.1 下单

  • 接口: POST ${STOCKBOOT_API_URL}/trade/order
  • 说明: 买入或卖出股票
  • Header: Authorization: Bearer ${token}
  • Body:
    {
      "accountId": 1001,           // 账户ID(从账户列表获取)
      "stockCode": "600666",       // 股票代码
      "stockName": "奥瑞德",       // 股票名称
      "price": 6.00,               // 价格(市价单可忽略)
      "quantity": 100,             // 数量(股)
      "orderType": 0,              // 0=买入, 1=卖出
      "priceType": "LIMIT"         // LIMIT=限价, MARKET=市价
    }
    
  • 示例:
    # 限价买入
    curl -X POST "${STOCKBOOT_API_URL}/trade/order" \
      -H "Authorization: Bearer ${token}" \
      -H "Content-Type: application/json" \
      -d '{"accountId":1001,"stockCode":"600666","stockName":"奥瑞德","price":6.00,"quantity":100,"orderType":0,"priceType":"LIMIT"}'
    
    # 市价卖出
    curl -X POST "${STOCKBOOT_API_URL}/trade/order" \
      -H "Authorization: Bearer ${token}" \
      -H "Content-Type: application/json" \
      -d '{"accountId":1001,"stockCode":"600666","stockName":"奥瑞德","quantity":100,"orderType":1,"priceType":"MARKET"}'
    
  • 返回字段:
    • id: 订单ID
    • status: 状态(5=失败,其他状态待补充)
    • errorMessage: 错误信息(如"委托价格超过跌停价格")

五、动态选股接口 (/dynamic-select)

  • 接口: POST ${STOCKBOOT_API_URL}/dynamic-select/execute
  • 说明: 使用自然语言选股
  • Body: {"sentence": "选股条件"}
  • 示例:
    curl -X POST "${STOCKBOOT_API_URL}/dynamic-select/execute" \
      -H "Content-Type: application/json" \
      -d '{"sentence": "涨停"}'
    

六、动态选股查询语法

当用户提出选股需求时,将自然语言转换为查询条件。

支持的查询模式

  1. 涨跌停类:

    • 涨停 / 跌停
    • 涨幅大于8%未涨停非ST
    • 非一字涨停非ST
  2. 涨幅类:

    • 涨幅大于5% / 涨幅小于-3%
    • 连续3天上涨
    • 前5日平均涨幅大于20%
  3. 财务指标:

    • 市盈率小于20 / 市净率小于2
    • 流通市值小于50亿
  4. 组合条件 (分号分隔):

    • 涨幅大于5%;非ST
    • 前5日平均涨幅大于20%;前10日涨停次数大于1
    • 连续5日净买入且主力净流入占比大于10%非ST
  5. 排除条件:

    • 非ST / 非新股

七、使用流程

7.1 基础行情(无需登录)

# 查询股票行情
curl "${STOCKBOOT_API_URL}/quote/600519"

# 动态选股
curl -X POST "${STOCKBOOT_API_URL}/dynamic-select/execute" \
  -H "Content-Type: application/json" \
  -d '{"sentence": "涨停"}'

7.2 VIP 用户(Level2数据)

# 1. 登录获取 Token
RESPONSE=$(curl -s -X POST "${STOCKBOOT_API_URL}/auth/login" \
  -H "Content-Type: application/json" \
  -d '{"username":"18680859800","password":"abcd1234"}')
TOKEN=$(echo $RESPONSE | jq -r '.data.token')

# 2. 获取 Level2 数据
curl "${STOCKBOOT_API_URL}/quote/600519" \
  -H "Authorization: Bearer $TOKEN"
# 返回: mainNetInflow(主力净额), mainNetInflowRate(主力净量占比)

7.3 超级VIP(交易功能)

# 1. 登录
TOKEN=$(...)

# 2. 获取账户列表
curl "${STOCKBOOT_API_URL}/account/list" \
  -H "Authorization: Bearer $TOKEN"

# 3. 下单交易
curl -X POST "${STOCKBOOT_API_URL}/trade/order" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"accountId":1001,"stockCode":"600666","stockName":"奥瑞德","price":6.00,"quantity":100,"orderType":0,"priceType":"LIMIT"}'

八、示例对话

用户: 帮我找今天涨停的股票 助手: 调用 /dynamic-select/execute 查询"涨停",返回涨停股票列表

用户: 查询茅台的行情,我要看主力净额 助手: 需要先登录获取 Token,然后调用 /quote/600519 带 Authorization header,返回包含 mainNetInflow 的数据

用户: 我要买入奥瑞德100股,价格6元 助手:

  1. 确认用户已登录且有交易权限
  2. 获取账户列表确认 accountId
  3. 调用 /trade/order 下单

用户: 市盈率低的小盘股有哪些? 助手: 调用 /dynamic-select/execute 查询"市盈率小于20;流通市值小于50亿"


九、错误处理

错误码说明处理建议
9001参数错误检查请求参数格式
403未授权/Token失效重新登录获取 Token
500系统异常稍后重试或联系管理员

十、更新日志

v2.0.0 (2026-04-20)

  • ✨ 新增用户认证接口(登录、注册、验证码、刷新Token、退出)
  • ✨ 新增 Level2 数据支持(主力净额、主力净量)- VIP功能
  • ✨ 新增账户接口(获取账户列表)
  • ✨ 新增交易接口(下单买入/卖出)- 超级VIP功能
  • 📝 完善接口文档和使用示例

v1.5.1 (2026-03-21)

  • 基础行情查询
  • 动态选股功能