sngyai

    sngyai/Sequoia-X

    #199 this week

    A股自动选股系统 — 多种技术形态自动扫描,收盘后自动运行并推送飞书

    backend
    a-shares
    akshare
    baostock
    pandas
    python
    Python
    7.3K stars
    1.5K forks
    7.3K GitHub watchers
    Updated 9/16/2026
    View on GitHub

    Build with Backblaze B2

    SDKs, agent skills, IDE extensions, and reference pipelines from Backblaze Labs. All open source.

    Explore Backblaze Labs

    Loading star history...

    Use Cases & Benefits

    • Implements an automated quantitative stock selection system for China's A-share market using multiple technical analysis strategies.
    • Provides fast, incremental data updates with local SQLite storage and automated daily notifications via Feishu webhook.
    • Use for automating end-of-day stock screening and push notifications to trading teams or individual investors.
    • Use for backfilling and maintaining a comprehensive historical A-share dataset with efficient multi-process data fetching.
    • Use for developing or testing custom quantitative trading strategies based on established technical patterns in Python.

    About Sequoia-X

    Sequoia-X: 王者回归 | The King Returns

    A 股量化选股系统 V2 | A-Share Quantitative Stock Selection System V2


    简介 | Introduction

    Sequoia-X V2 是面向 A 股市场的量化选股系统,基于现代 Python 工程化标准从零重构。 系统以 OOP 架构、向量化计算和增量数据更新为核心设计原则,每日收盘后自动选股并推送至飞书群。

    数据层使用 baostock(免费、无需注册、无限流)拉取历史及增量日 K 数据(后复权), 存储于本地 SQLite,彻底规避东方财富反爬问题。


    两种运行模式

    python main.py               # 日常模式:8进程增量补数据 + 跑策略 + 飞书推送(2~3分钟)
    python main.py --backfill     # 回填模式:全市场历史K线一次性灌入(约12分钟)
    

    内置策略 | Strategies

    策略说明
    TurtleTrade海龟突破:20日新高 + 成交额过亿 + 阳线防诱多,按涨幅排序
    MaVolume均线+放量突破
    HighTightFlag高而窄的旗形整理突破
    LimitUpShakeout涨停洗盘回踩确认
    UptrendLimitDown上升趋势中的跌停反包
    RpsBreakout欧奈尔 RPS 相对强度突破

    快速开始 | Quick Start

    环境要求

    • Python >= 3.10

    1. 安装依赖

    # 推荐使用 uv(快速包管理器)
    uv sync
    
    # 或者 pip
    pip install .
    

    2. 配置环境变量

    cp .env.example .env
    # 编辑 .env,填写飞书 Webhook URL
    

    3. 首次回填历史数据

    python main.py --backfill
    

    约 12 分钟完成 ~5200 只 A 股历史后复权日 K 数据回填。

    4. 日常运行

    python main.py
    

    建议配合 crontab 每个交易日收盘后自动执行:

    15 19 * * 1-5 cd /root/Sequoia-X && .venv/bin/python main.py >> log.txt 2>&1
    

    目录结构 | Project Structure

    Sequoia-X/
    ├── main.py                      # 入口:argparse 分发日常/回填模式
    ├── pyproject.toml               # 依赖声明 + ruff/pytest 配置
    ├── .env.example                 # 环境变量模板
    ├── data/                        # SQLite 数据库(运行时生成,不入 git)
    ├── sequoia_x/
    │   ├── core/
    │   │   ├── config.py            # Pydantic-settings 配置管理
    │   │   └── logger.py            # rich 结构化日志
    │   ├── data/
    │   │   └── engine.py            # 数据引擎(baostock 回填 + 增量同步 + SQLite)
    │   ├── strategy/
    │   │   ├── base.py              # 策略抽象基类
    │   │   ├── turtle_trade.py      # 海龟交易策略
    │   │   ├── ma_volume.py         # 均线放量策略
    │   │   ├── high_tight_flag.py   # 高窄旗形策略
    │   │   ├── limit_up_shakeout.py # 涨停洗盘策略
    │   │   ├── uptrend_limit_down.py # 上升跌停策略
    │   │   └── rps_breakout.py      # RPS 突破策略
    │   └── notify/
    │       └── feishu.py            # 飞书 Webhook 推送
    └── tests/                       # 属性测试(hypothesis)
    

    数据说明

    • 数据源baostock(免费、无需注册、无限流)
    • 复权方式:后复权(hfq)— 历史价格不变,适合增量存储,避免除权导致数据错乱
    • 存储:本地 SQLite(data/sequoia_v2.db),可直接拷贝到其他机器使用
    • 日常增量:8 进程并行通过 baostock 拉取,2~3 分钟完成全市场更新

    许可证 | License

    MIT

    Discover Repositories

    Search across tracked repositories by name or description