YuDong YangandClaude Opus 4.6 444c0db69f fix(backfill): 增加重试和自动重连,解决长连接超时问题 (#91)
- 单只股票查询失败自动重试 3 次(指数退避 2s/4s/8s)
- 每 200 只股票主动重连 baostock,防止长连接被服务端断开
- backfill 写入也加 chunksize=500 防止 SQLite 变量超限
- 中断后重跑可自动续传(已有数据的股票自动 skip)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-09 15:18:30 +08:00
2026-03-13 15:48:56 +08:00

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

S
Languages
Python 100%