把翻 K 线找形态变成一次全市场扫描
七个策略共用同一份本地日 K:海龟突破看 20 日新高与成交额,均线放量看 MA5 与 MA20 金叉,高窄旗形看 40 日动量与 10 日收敛,涨停洗盘与上升趋势跌停看反转结构,RPS 突破看 120 日相对强度排序,另有定增公告监控。阈值写死在源码里,改哪个数值对应哪条判定都能对着文件改。
Sequoia-X · sngyai 开源的 A 股自动选股系统
它是一套命令行选股程序:python main.py --backfill 先把全市场历史日 K(后复权)灌进本地 SQLite,python main.py 每天补当日增量并依次跑七个技术形态策略,命中结果按策略路由推送飞书卡片。数据来自免费的 baostock,不需要注册、不需要 API Key,代价是你要自己维护 Python 环境与一台能定时执行任务的机器。
仓库页面显示 7.3k Star、1.5k Fork、202 次提交;数字随社区变化,采集日期为 2026-09-15。
查看源码
不是又一个行情客户端,而是把「收盘后找形态」变成一条可定时的流水线。
七个策略共用同一份本地日 K:海龟突破看 20 日新高与成交额,均线放量看 MA5 与 MA20 金叉,高窄旗形看 40 日动量与 10 日收敛,涨停洗盘与上升趋势跌停看反转结构,RPS 突破看 120 日相对强度排序,另有定增公告监控。阈值写死在源码里,改哪个数值对应哪条判定都能对着文件改。
数据层取 baostock 的日 K(后复权),落进本地 SQLite 的 stock_daily 表。日常模式八个进程并行补当日增量,首次用回填模式一次性灌入全市场历史。数据库是一个文件,可以直接拷贝到别的机器继续用——这是它和「在线接口每次现取」最本质的差别。
每个策略有独立的 webhook_key,可用 STRATEGY_WEBHOOK_<KEY> 环境变量把不同策略的结果送进不同的飞书群;没配的策略自动回落默认 Webhook。配合 crontab 在工作日收盘后执行,你只在飞书里看结果。
命令全部来自官方 README 与 main.py 的 argparse 定义。
uv sync(官方推荐)或 pip install .;把 .env.example 复制为 .env,至少填 FEISHU_WEBHOOK_URL——这一项是必填,缺失时配置校验直接抛错、程序不启动。
python main.py --backfill:单线程逐只拉取,README 称约 12 分钟完成 ~5200 只 A 股。中途失败会重试三次并跳过已入库的股票,所以中断后可以再跑一次续传。
python main.py:先读本地已有股票清单,按 tasks[i::n] 切成最多 8 份并行拉取当日数据,写入前会先删掉当日旧记录再追加,避免重复行。
策略在 main.py 的列表里顺序执行,每个策略独立返回股票代码清单;命中为空时记一行日志跳过推送,不会发空消息。
命中的策略把结果组装成飞书交互卡片(日期 / 策略名 / 数量 / 带雪球链接的标的列表)POST 到对应 Webhook;整个过程用 rich 输出带时间戳的日志。
按官方 README、main.py 与 sequoia_x/ 源码整理;每一行都指向本页之外的具体页面。
| 栏目 | 内容 | 来源依据 | 入口 |
|---|---|---|---|
| 安装与回填 | 环境要求、两种依赖安装方式、.env 四个字段、首次回填与断点续跑、装完自检 | README 快速开始、pyproject、.env.example | 安装与回填 |
| 日常运行 | 八进程增量机制、crontab 定时、耗时影响因素、日志怎么读、非 Linux 调度说明 | main.py、data/engine.py、README | 日常运行 |
| 突破信号 | 海龟突破、均线放量、高窄旗形、RPS 突破四套条件的逐条阈值与最小 K 线要求 | 四个策略源码 | 突破信号 |
| 反转信号 | 涨停洗盘、上升趋势跌停、定增公告监控三套条件,以及 README 与代码策略数不一致的说明 | 三个策略源码 vs README 表 | 反转信号 |
| 数据层 | baostock 与后复权口径、stock_daily 表结构、UNIQUE 约束、两条写入路径差异、数据边界 | data/engine.py | 数据层 |
| 飞书播报 | 卡片结构、七个 webhook 标识与路由规则、fallback 逻辑、推送成功判定与失败排查 | notify/feishu.py、core/config.py | 飞书播报 |
| 新增策略 | 策略基类契约、五步接自己的逻辑、向量化写法约定、两条取数路径、测试与代码规范 | strategy/base.py、tests/、pyproject | 新增策略 |
| 排障续传 | 八类常见报错的现象与处理、断点续传机制、日志定位、数据体检、何时该重跑回填 | 源码日志文案与容错分支 | 排障续传 |
| 路线对比 | 自建选股系统与 EasyClaw 本机技能路线在选股方式、数据、调度、前置成本上的逐项对照与决策清单 | 本机 .easyclaw\skills 16 个技能核验 |
两条路线的准备成本差别很大,先看你怎么用。
换来的是完全可控的流水线:阈值在源码里、数据在本地库里、推送路由自己配,结果可复现、可二次开发;代价是要维护 Python 环境、准备必填的飞书 Webhook,并承担首次回填的等待。
本机已核验的 mx_select_stock 覆盖自然语言条件选股、stock-technical-mastery 覆盖单只 K 线技术指标、stock-monitor-skill 覆盖已选标的的预警、akshare-finance 覆盖行情取数;但没有任何证据表明 Sequoia-X 已集成 EasyClaw,不能把它当作本项目的另一种安装方式。
以下为 EasyClaw 本机对话的真实截图(点击左右箭头翻页),用于对照「自建流水线:装环境 + 回填数据 + 等收盘后跑」的准备成本。截图演示的是 EasyClaw 技能路线,不是本项目的运行结果;本项目与 EasyClaw 无已证实集成,仅供研究。
它的边界比功能更需要先确认。
你能接受命令行操作、愿意维护一台常开的机器跑定时任务,并且想要「固定阈值 + 全市场扫描 + 本地库可复现」的工作方式。它不追求预测,只负责把符合条件的标的按同一套规则筛出来。
你想要图形界面、想要分钟级或基本面数据、想要回测验证策略收益、或者希望有买卖点提示。本项目不开箱即用:必须装 Python 环境、必须准备飞书 Webhook,首次还要等回填完成。
README 写的是 MIT,但仓库里没有 LICENSE 文件,GitHub 也没有识别到许可证。要以 MIT 复用或用于商业场景前,请先向仓库作者确认,不要直接按 README 的一行声明判断。
它是 sngyai 开源的 A 股自动选股系统,形态是 Python 命令行程序:本地存日 K、按固定阈值扫描全市场、把命中结果推送到飞书。行情软件给你看盘工具,它给你一套可定时的筛选流水线。细节以官方 README 与源码为准。
不需要。数据来自 baostock(README 称其免费、无需注册、无限流),推送用飞书自定义机器人的 Webhook。必须配置的凭据只有一个——FEISHU_WEBHOOK_URL,它同时是配置校验的必填项。除定增公告策略走 akshare 的公开接口外,其余策略都只读本地 SQLite。
源码里注册了七个策略:海龟突破、均线放量、高窄旗形、涨停洗盘、上升趋势跌停、RPS 相对强度突破,以及定增公告监控。README 的策略表只列了前六个——定增公告策略没有出现在表里,这是代码与文档的真实差异,本站把它如实标出,具体以源码为准。
不能。项目里没有回测引擎、没有撮合与费率模型,也不提供任何收益、胜率或回撤数据。它输出的是收盘后的候选清单,是否有效需要通过你自己的研究去验证;本站不发布任何绩效数字。
没有已证实集成。它通过 Python 包管理安装(uv sync 或 pip install .),EasyClaw 本机技能目录里也没有对应技能。EasyClaw 侧可用的是自然语言选股、技术指标、盯盘预警、行情取数等独立技能,属于并列的另一条路线,详见对比页。
README 自述日常模式约 2~3 分钟、首次回填约 12 分钟(全市场约 5200 只)。实际耗时取决于机器性能、网络与当日是否为交易日,非交易日会输出「无新数据」并正常结束——这是预期行为,不是故障。