Sequoia-X 是一个面向 A 股市场的自动化选股系统
Sequoia-X 详细部署教程
Sequoia-X 是一个面向 A 股市场的自动化选股系统,基于 Python 构建,能够每天收盘后自动运行多种技术形态策略,并将选股结果推送至飞书。本教程将指导您完成从环境准备到日常运行的完整部署流程。
1. 系统要求与准备工作
环境要求
- Python:版本 ≥ 3.10
- 操作系统:Windows、macOS 或 Linux(建议使用 Linux 服务器以实现自动化运行)
- 网络:能够访问互联网以下载数据
核心依赖说明
项目基于以下组件构建:
- 数据源:baostock —— 免费、无需注册、无请求限制。
- 数据处理:使用 SQLite 进行本地数据存储。
- 依赖管理:推荐使用
uv(快速 Python 包管理器),也可使用pip。
2. 安装步骤
第一步:克隆项目
打开终端,执行以下命令将项目克隆到本地:
1 | git clone https://github.com/sngyai/Sequoia-X.git |
第二步:安装 Python 依赖
项目提供了两种依赖安装方式,推荐使用 uv,速度更快。
方式一:使用 uv(推荐)
1 | # 安装 uv(如果尚未安装) |
方式二:使用 pip
1 | # 安装项目及其依赖 |
注意:建议在 Python 虚拟环境中执行上述命令,以避免包冲突。
第三步:配置环境变量
项目依赖环境变量进行配置,需复制示例文件并修改。
1 | cp .env.example .env |
然后编辑 .env 文件,至少需要填写飞书 Webhook URL,这是接收选股结果的通知渠道。
飞书 Webhook 获取方式:
- 在飞书群组中,点击群设置 → 群机器人 → 添加机器人 → 自定义机器人。
- 创建后,复制机器人的 Webhook 地址。
- 将复制的地址填入
.env文件中的FEISHU_WEBHOOK_URL变量。
3. 初始化数据
Sequoia-X 需要本地存储全市场股票的历史日K线数据,首次运行前必须执行**回填(Backfill)**操作。
执行历史数据回填
1 | python main.py --backfill |
- 耗时:约 12 分钟,会拉取约 5200 只 A 股的历史后复权日K线数据。
- 存储:数据将存储在本地
data/sequoia_v2.dbSQLite 数据库中。此步骤仅在首次部署时执行一次。 - 注意:过程中请保持网络稳定。代码已包含重试机制,若因网络问题中断可重新运行。
4. 日常运行
数据回填完成后,即可执行日常选股操作。
手动运行
在项目根目录下执行:
1 | python main.py |
系统将自动执行以下流程(约 2-3 分钟):
- 增量更新:使用 8 个进程并行拉取当天最新的日K线数据。
- 运行策略:依次执行所有内置策略进行选股。
- 推送通知:将筛选出的股票列表通过飞书 Webhook 发送到您的群组。
自动运行(推荐)
您可以设置计划任务,让系统在每个交易日的收盘后自动运行。
使用 Crontab(Linux/macOS):
编辑 crontab 文件(crontab -e),添加以下内容,设置在交易日(周一至周五)的 19:15 执行:
1 | 15 19 * * 1-5 cd /root/Sequoia-X && /usr/bin/python main.py >> logs.txt 2>&1 |
- 请将
/root/Sequoia-X替换为您的项目实际路径。 - 将
/usr/bin/python替换为您实际 Python 的路径(可使用which python查看)。 - 日志会追加到
logs.txt文件中,方便排查问题。
5. 策略与模式说明
内置策略
项目内置了6种技术形态选股策略,您无需配置即可全部运行:
| 策略名称 | 简要说明 |
|---|---|
| TurtleTrade | 海龟突破策略:20日新高 + 成交额过亿 + 阳线确认。 |
| MaVolume | 均线放量突破策略。 |
| HighTightFlag | “高而窄的旗形”整理突破形态。 |
| LimitUpShakeout | 涨停后洗盘回踩确认。 |
| UptrendLimitDown | 上升趋势中的跌停反包形态。 |
| RpsBreakout | 欧奈尔RPS相对强度突破。 |
- 选股结果会按涨幅或流通市值等指标排序。
两种运行模式
- 日常模式 (
python main.py):增量更新数据 + 运行策略 + 推送结果。 - 回填模式 (
python main.py --backfill):全市场历史数据一次性灌入,用于初始化。
6. 常见问题与故障排查
- Q: 执行
--backfill时中断或报错怎么办?- A: 代码已内置重试和自动重连机制。如果因网络问题中断,可以直接重新运行
python main.py --backfill命令,它会自动继续未完成的部分。
- A: 代码已内置重试和自动重连机制。如果因网络问题中断,可以直接重新运行
- Q: 如何更新到最新版本?
- A: 进入项目目录,执行
git pull拉取最新代码,然后根据更新说明决定是否需要重新安装依赖(uv sync或pip install .)。
- A: 进入项目目录,执行
- Q: 选股结果没有推送到飞书?
- A: 请检查:
.env文件中的FEISHU_WEBHOOK_URL是否正确。- 网络是否可以访问飞书 Webhook 地址。
- 查看运行日志(终端输出或
logs.txt)中是否有相关错误信息。
- A: 请检查:
- Q: 数据库文件可以迁移吗?
- A: 可以。
data/sequoia_v2.db是标准 SQLite 文件,您可以直接将其拷贝到其他机器上使用,无需重新回填。
- A: 可以。
7. 总结与建议
通过以上步骤,您已成功部署了一个全自动的A股选股系统。它每天在收盘后默默运行,将符合技术形态的股票准时推送到您的飞书,大大节省了复盘筛选时间。
进阶建议:
- 定制策略:您可以参考
sequoia_x/strategy/目录下的策略基类 (base.py),编写并添加自定义的选股策略。 - 优化触发:除了飞书,您也可以修改
sequoia_x/notify/模块,接入钉钉、企业微信等其他通知渠道。
许可证:本项目采用 MIT 许可证,可自由使用和修改。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 极客的赛博空间 | 专注 AI 与技术分享!
评论



