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