SQL选股:用代码自由组装你的股票筛选逻辑
为什么要用 SQL 选股
常见的股票筛选器给你一堆下拉框和滑块,你只能在它划定的范围内选。简单筛选够用,但需求一复杂就捉襟见肘。
比如你想找:
- RPS 大于 70,同时 SCTR 大于 60 的股票
- 出现 VCP 形态,但 RPS 要在 70 到 90 之间
- 市值 50-100 亿,当日涨幅超过 3%
这些需求用传统筛选器要么得反复筛好几轮,要么干脆做不了。条件选股的痛点就在这——你想组合的条件越多,工具越跟不上。今天大虾皮退出的 SQL 选股Skill 的想法很直接:股票数据本身就是结构化的,直接写选股公式不就行了?把它当成一个选股神器,你写公式,它出结果。
使用这个skill,你可以直接在agent工具中让AI帮你写出SQL语句,然后直接运行,得到想要的选股结果。
具体下载可以参考页面:http://daxiapi.com/skills.html ,下面来介绍下具体的用法。
基本用法
这个SQL选股Skill,本质上是使用了daxiapi-cli来实现的,比如下面一行命令搞定某天RPS大于70的股票:
daxiapi sql "date='2026-06-17' AND rps_score>70 LIMIT 10"
意思是:找出 2026-06-17 这天,RPS 大于 70 的股票,最多返回 10 条。
条件组合方式
条件选股的核心在于灵活组合,SQL 语法天然支持这一点,你可以使用更多的选股条件,包括AND、OR、甚至还可以IN和ORDER BY。
多个条件同时满足,用 AND:
daxiapi sql "date='2026-06-17' AND rps_score>70 AND sctr>60 LIMIT 20"
满足其一就行,用 OR:
daxiapi sql "date='2026-06-17' AND (isVCP=1 OR isSOS=1) LIMIT 20"
逻辑更复杂就加括号:
daxiapi sql "date='2026-06-17' AND (rps_score>70 OR sctr>60) AND cs>0 LIMIT 20"
要卡一个精确区间,用 in:
daxiapi sql "date='2026-06-17' AND rps_score in [70, 90] AND shizhi in [50, 100] LIMIT 20"
排序也能指定多个字段:
daxiapi sql "date='2026-06-17' AND rps_score>70 ORDER BY rps_score DESC, sctr DESC LIMIT 20"
支持的选股指标
下面介绍下我们的SQL选股Skill中支持的选股指标有哪些。分为强度指标、技术形态、涨跌幅、市值、成交量、成交额、RSI、IBS 等。
强度指标
- RPS(相对强度):欧奈尔选股体系的核心选股指标,0-100,70 以上算强势
- SCTR(技术排名):综合技术排名,0-100,60 以上技术面偏强
- CS(强度值):正值强势,负值弱势
RPS 选股用得最多,很多投资者第一步就筛 RPS 大于 70 的票。
技术形态
- VCP 形态:Mark Minervini 的波动收缩形态
- SOS 形态:威科夫强势上涨信号
- Spring弹簧:威科夫弹簧形态
- 新高形态:是否创近期新高
熟悉威科夫或欧奈尔方法的,直接用 SQL 条件筛形态,省去肉眼逐个翻的麻烦。
涨跌幅指标
- 当日涨跌幅(zdf)
- 5 日涨跌幅(zdf_5d)
- 10 日涨跌幅(zdf_10d)
- 20 日涨跌幅(zdf_20d)
组合起来筛短期动量股:
daxiapi sql "date='2026-06-17' AND zdf>3 AND zdf_5d>10 AND zdf_10d>15 LIMIT 20"
其他维度
- 总市值(shizhi)
- 成交量(vol)
- 成交额(amount)
- RSI 指标
- IBS 强度
实际应用场景
下面看几个用选股公式组合选股指标的实际例子。配合选股skill,这些公式可以直接在命令行里跑。
欧奈尔 CANSLIM 选股
RPS + VCP 形态组合:
daxiapi sql "date='2026-06-17' AND rps_score>70 AND isVCP=1 ORDER BY rps_score DESC LIMIT 20"
找出 RPS 大于 70 且出现 VCP 形态的股票,按 RPS 降序排。
威科夫选股
关注 Spring 和 SOS 形态:
daxiapi sql "date='2026-06-17' AND (isSpring=1 OR isSOS=1) AND rps_score>60 ORDER BY sctr DESC LIMIT 20"
动量选股
短期涨幅 + 强度指标:
daxiapi sql "date='2026-06-17' AND zdf>3 AND zdf_5d>10 AND rps_score>70 AND sctr>60 LIMIT 20"
市值筛选
市值区间 + 技术指标:
daxiapi sql "date='2026-06-17' AND shizhi in [50, 200] AND rps_score>70 ORDER BY shizhi DESC LIMIT 20"
使用限制
每次查询必须带 date 条件;日期只支持最近 10 天;不支持完整的 SQL 语法(没有 SELECT、FROM、GROUP BY、JOIN),只有 WHERE 条件、ORDER BY 和 LIMIT。
快速上手
配置 Token
先去 daxiapi.com 拿 API Token:
npx daxiapi-cli@latest config set token YOUR_TOKEN
验证
npx daxiapi-cli@latest sql "date='2026-06-17' LIMIT 5"
返回数据就说明配好了。
开始筛选
npx daxiapi-cli@latest sql "date='2026-06-17' AND rps_score>70 AND sctr>60 ORDER BY rps_score DESC LIMIT 20"
和传统筛选工具对比
| 特性 | 传统筛选工具 | SQL 选股器 |
|---|---|---|
| 条件组合 | 预设模板 | 自由组合 |
| 逻辑表达 | 通常只有”且” | AND/OR/括号嵌套 |
| 区间控制 | 滑块或固定档位 | 精准区间 |
| 排序方式 | 单一维度 | 多维度排序 |
| 学习成本 | 熟悉界面 | 会 SQL 就行 |
适合谁用
- 量化交易者——用代码表达选股策略
- 技术分析爱好者——组合多种指标筛选
- 专业投资者——需要复杂筛选逻辑
- 程序员——SQL 上手零门槛
- 策略研究员——快速验证选股思路
使用方式
进入 http://daxiapi.com/skills.html 选择【xiapi-stock-sql-screener】这个Skill,下载到本地交给你的AI Agent,或者复制下面的prompt让你的龙虾工具自己配置:
帮我从下面的地址安装技能(skill):https://daxiapi.com/xiapi-stock-sql-screener.zip