Sequoia-X V2 是面向 A 股市場的 Python 量化選股系統。它把日 K 行情寫入本地 SQLite,依序執行技術形態與公告掃描策略,再將命中結果路由至飛書 Webhook。
Sequoia-X V2 將 A 股收盤後選股拆成資料、策略與通知三層。資料引擎從 baostock 取得後復權日 K,寫入 data/sequoia_v2.db;策略讀取本地行情後回傳股票代碼。
日常模式先補齊最新行情,再執行主程式登錄的策略。策略有結果時,FeishuNotifier 產生互動卡片,並依 webhook_key 選擇策略專屬 Webhook;未設定專屬值時使用預設 Webhook。
回填模式用於首次建立或補齊歷史資料;日常模式處理增量同步、策略運算與通知。兩種模式共用同一份設定與 SQLite 資料庫。
準備 Python 3.10 以上環境。複製 repository 後,使用 uv sync 或 pip install . 安裝 pyproject.toml 宣告的依賴。
複製範例設定並編輯 .env。FEISHU_WEBHOOK_URL 是必填 fallback;策略專屬值使用 STRATEGY_WEBHOOK_* 前綴。
python main.py --backfill。不要把真實 Webhook token 提交至版本控制。
main.py 目前建立七個 BaseStrategy 子類。README 的策略表列出六個技術策略;目前程式碼另載入 PrivatePlacementStrategy,用 akshare 查詢近期定向增發資料。
| 觀察目標 | 策略 | 資料需求 |
|---|---|---|
| 均線、成交量與價格突破 | MaVolume、TurtleTrade | 至少 20–21 根日 K |
| 整理、洗盤與跌停型態 | HighTightFlag、LimitUpShakeout、UptrendLimitDown | 依策略為 3–60 根日 K |
| 全市場相對強度 | RpsBreakout | 120 日價格序列 |
| 近期定向增發 | PrivatePlacement | akshare 公告資料 |
系統以本地資料庫作為策略共同輸入。回填、增量更新、策略掃描與通知分別由獨立模組負責。
--backfill 逐一補齊股票日 K;已更新至當日的股票會跳過,因此中斷後可以重新執行。
baostock 查詢使用 adjustflag="1"。OHLCV 與成交額寫入 SQLite 的 stock_daily 表。
日常模式比較每檔股票的最後日期,只為缺少的區間建立任務,最多使用八個 worker。
來源 · sequoia_x/data/engine.py新增策略時繼承 BaseStrategy、實作 run() 並設定 webhook_key,再加入 main.py 的策略清單。
設定 STRATEGY_WEBHOOK_* 可將不同策略送至不同機器人;缺少專屬值時回退至 FEISHU_WEBHOOK_URL。
資料查詢、策略計算與飛書請求各自捕捉錯誤。飛書 HTTP 200 之外,回應內的 code 也必須為 0。
以下流程沿用 README 的安裝與執行命令。先完成一次回填,再測試日常模式與 crontab。
data/sequoia_v2.db 已建立且含有 stock_daily 資料;日常模式完成後,日誌顯示各策略的命中數。只有策略回傳非空清單時才會送出飛書卡片。
Settings 缺少 FEISHU_WEBHOOK_URL 時會產生驗證錯誤;只想本地掃描仍需調整程式或提供有效設定。.env,不要貼入報告、日誌或 commit。/root/Sequoia-X 與 Python 路徑改成部署機器的實際位置,並確認時區與交易日安排。先以現有策略完成資料與通知驗證,再新增選股邏輯。每個策略維持單一 run() 入口,輸出股票代碼清單。
1. 建立策略子類。繼承 BaseStrategy,注入 DataEngine 與 Settings,實作 run()。
2. 設定通知路由。為策略指定 webhook_key,並在 .env 加入相符的 STRATEGY_WEBHOOK_*。
3. 登錄主程式。在 main.py 匯入並加入策略清單;空結果會略過通知。
4. 補齊測試。使用 pytest 驗證策略、資料引擎、設定與通知;開發依賴另含 Hypothesis 與 pytest-mock。
5. 監控排程。保留 stdout 與 stderr 日誌,檢查行情寫入數、各策略命中數及飛書回應。
① README.md:運行模式、安裝步驟、資料來源與排程範例。
② data/engine.py:SQLite schema、回填與增量同步。
③ strategy/base.py:策略擴充介面與回傳契約。