
我開源了 QQQ 末日期權自動交易系統

基於長橋 Python SDK,全自動交易 QQQ 0DTE 虛值期權。回測 761 筆/2.3 年,勝率 75.8%。
本系統僅供參考學習部署,具體交易策略還需要自己優化。
一、策略説明
做什麼
全自動交易 QQQ 當日到期(0DTE)虛值期權,每天美東 09:35-15:50 期間自動檢測信號、下單、持倉管理、平倉。
怎麼做
兩條信號路徑同時運行:
1. 趨勢突破(順勢)
- 價格突破前 5 根 1 分鐘 K 線的高點 → 買入 Call(做多)
- 價格跌破前 5 根 1 分鐘 K 線的低點 → 買入 Put(做空)
- 4 層過濾:SMA20 趨勢 + 量能確認 + 動量確認 + K 線實體
2. 衰竭反轉(逆勢)
- 從日內高點回落≥0.2% → 買入 Call(抄底)
- 從日內低點反彈≥0.2% → 買入 Put(逃頂)
- 每天最多 1 次,防止頻繁抄底
怎麼管
動態止盈:
- 虧損 25% → 止損全部平倉
- 盈利 100% → 平倉一半(鎖定利潤)
- 從最高盈利回撤 30% → 全部平倉
- 持倉超過 15 分鐘 → 超時平倉
風控:
- 每筆最小 10 張期權
- 日最大交易 8 筆
- 日虧損達 5% 停止交易
回測結果
| 指標 | 數值 |
|---|---|
| 總交易 | 761 筆 / 2.3 年 |
| 勝率 | 75.8% |
| 總收益 | +3111% |
| 年化收益 | 354.8% |
| 最大回撤 | 25.19% |
二、環境準備
1. 系統要求
- Python 3.10+
- Linux 或 WSL(Windows 原生不推薦)
- 長橋 API 密鑰(需開通美股期權權限)
2. 安裝依賴
pip install longbridge flask numpy scipy
三、獲取代碼
git clone https://github.com/1797346220/qqq-trading-system.git cd qqq-trading-system
四、配置密鑰
1. 申請長橋 API
- 訪問 https://open.longportapp.com 註冊賬號
- 創建應用,獲取以下三個密鑰:
APP_KEYAPP_SECRETACCESS_TOKEN
- 確保賬户已開通美股期權交易權限
2. 創建 .env 文件
在項目目錄創建 .env 文件,填入你自己的密鑰:
LONGPORT_APP_KEY=你的 APP_KEY LONGPORT_APP_SECRET=你的 APP_SECRET LONGPORT_ACCESS_TOKEN=你的 ACCESS_TOKEN
⚠️ 重要:.env 文件絕對不能提交到 Git!
3. 驗證密鑰
import os with open('.env') as f: for line in f: line = line.strip() if '=' in line and not line.startswith('#'): k, v = line.split('=', 1) os.environ.setdefault(k.strip(), v.strip().strip('"')) from longbridge.openapi import Config, QuoteContext config = Config.from_apikey_env() ctx = QuoteContext(config) quotes = ctx.quote(['QQQ.US']) print(f"QQQ: ${float(quotes[0].last_done):.2f}")
如果輸出 QQQ 價格,説明密鑰配置成功。
五、啓動系統
方式一:直接啓動
# 終端 1:啓動交易引擎 PYTHONUNBUFFERED=1 python live_trader.py # 終端 2:啓動 Web 儀表盤 PYTHONUNBUFFERED=1 python trader_web.py
方式二:後台啓動
# 後台啓動交易引擎 nohup PYTHONUNBUFFERED=1 python live_trader.py > trader.log 2>&1 & # 後台啓動 Web 儀表盤 nohup PYTHONUNBUFFERED=1 python trader_web.py > web.log 2>&1 &
方式三:watchdog 守護(推薦)
python watchdog.py
watchdog 會自動管理 live_trader.py 的生命週期,崩潰後自動重啓。
六、驗證部署
1. 檢查進程
ps aux | grep -E 'live_trader|trader_web' | grep -v grep
應該看到兩個 Python 進程在運行。
2. 檢查狀態文件
python -c " import json d = json.load(open('state.json')) print(f'連接: {d[\"connected\"]}') print(f'運行: {d[\"running\"]}') print(f'K 線數: {d[\"candle_count\"]}') "
3. 訪問 Web 儀表盤
瀏覽器打開 http://127.0.0.1:8080
七、文件説明
| 文件 | 説明 |
|---|---|
live_trader.py | 核心交易引擎 |
trader_web.py | Web 儀表盤 |
watchdog.py | 守護進程 |
update_gist.py | 同步交易記錄 |
.env | 密鑰配置(不入庫) |
state.json | 實時狀態(自動生成) |
today.csv | 當日 K 線(自動生成) |
records/*.json | 交易記錄(自動生成) |
八、常見問題
Q: ImportError: No module named 'longbridge'
pip install longbridge
Q: 長橋 API 連接失敗
檢查:
.env文件是否存在且格式正確- 環境變量名是
LONGPORT_*不是LONGBRIDGE_* - 使用
Config.from_apikey_env()不是Config.from_env()
Q: 信號檢測無輸出
檢查:
- state.json 的 candle_count 是否>0
- 當前時間是否在交易窗口內(美東 09:35-15:50)
- 是否有持倉阻塞
Q: 期權下單失敗
檢查:
- 期權合約代碼格式是否正確(.US 後綴 + 整數行權價)
- 到期日是否用美東時間生成
- 賬户是否有期權交易權限
九、策略參數
如需調整策略,修改 live_trader.py 中的 CONFIG:
CONFIG = { 'sl': 0.25, # 止損 25% 'lookback': 5, # 突破窗口 5 根 K 線 'vol_mult': 0.8, # 量能倍數 'min_body': 0.0003, # K 線實體 0.03% 'max_trades': 8, # 日最大交易 'start_time': '09:35', # 入場開始(美東) 'end_time': '15:50', # 入場結束(美東) # ... 其他參數見代碼註釋 }
⚠️ 修改後必須同步修改 trader_web.py 中的 CONFIG,然後重啓兩個進程。
開源地址
https://github.com/1797346220/qqq-trading-system
免責聲明
本系統僅供學習研究使用。期權交易具有高風險,可能導致本金損失。作者不對使用本系統產生的任何損失負責。
$小米集團-W(01810.HK) $納指 100 ETF - Invesco(QQQ.US)
本文版權歸屬原作者/機構所有。
當前內容僅代表作者觀點,與本平台立場無關。內容僅供投資者參考,亦不構成任何投資建議。如對本平台提供的內容服務有任何疑問或建議,請聯絡我們。


