前言¶
在 DSH 裏做量化相關任務,常見做法是零散腳本:拉行情一套、回測一套、報表又一套,智能體很難在一個閉環裏自檢、復現和對比結果。商品期貨還涉及合約乘數、保證金、平今手續費等會計口徑,若用收盤價成交或未建模成本,回測結論容易系統性失真。
下面介紹維護者 yichuan1123 發佈的 DSH 插件 dsh-quant-cta(npm 包名 dsh-quant-cta,當前版本 0.11.0,MIT 許可證)。它以工作流形態把 研究 → 回測 → 模擬盤 串成一條可在對話、命令行與本地面板中操作的鏈路;行情優先走天勤 TqSdk 真實數據,無憑據時退化爲確定性合成數據並在報告中顯式標註。本插件不發任何真實委託,沒有 CTP 下單路徑,paper 模式只寫內部賬本。
- 目錄頁:https://www.skillhub.cn/plugins/yichuan1123/dsh-quant-cta
- 源碼:https://github.com/yichuan1123/dsh-quant-cta
這是什麼¶
dsh-quant-cta 是商品期貨 CTA 的全鏈路工作臺:引擎用 Python 實現,通過 DSH 暴露 qcta_doctor、qcta_data、qcta_backtest 等工具,並提供 Web 面板與客戶端側欄入口。目標用戶是需要在本地用真實(或標註爲 synthetic)日線驗證策略流程、成本與風控約束的開發者或研究者,而不是要直接掛實盤下單的場景。
鏈路裏每一環落在哪¶
README 用表格說明各環節不是示意代碼,而是對應倉庫內模塊:
| 環節 | 實現位置 | 說明 |
|---|---|---|
| 行情獲取 | python/qcta/data.py |
天勤主連日線(復權)/ 本地 CSV 緩存 / 確定性合成數據 |
| 合約規格 | python/qcta/specs.py |
28 個品種的乘數、跳價、保證金率、手續費 |
| 策略信號 | python/qcta/strategies/ |
唐奇安突破、橫截面動量 |
| 倉位換算 | python/qcta/sizing.py |
ATR 波動率預算 → 手數,按 sqrt(Σw²) 歸一 |
| 撮合與賬本 | python/qcta/account.py |
期貨會計口徑、手續費攤分、滑點、保證金校驗 |
| 事件循環 | python/qcta/engine.py |
t 收盤決策 → t+1 開盤成交,逐日盯市、熔斷、止損 |
| 績效歸因 | python/qcta/metrics.py |
CAGR/夏普/回撤/卡瑪/PF/月度矩陣等 |
| 報告輸出 | python/qcta/report.py |
Markdown + JSON + 手寫 SVG 曲線 |
| 模擬盤 | python/qcta/paper.py |
逐日推進的可斷點賬本 |
| DSH 工具 | lib/index.js |
doctor / data / backtest / report / paper / sim 等 |
| 最優配比 | python/qcta/optimizer.py |
等權、波動率倒數、ERC、最小方差、均值方差等 |
| 滾動模型 | python/qcta/model.py |
walk-forward 調倉,狀態落盤可追溯 |
DSH 還可按間隔定時推進 paper 賬本;面板路由爲 /dsh-quant-cta/panel,客戶端在「開始」列表註冊「量化 CTA 工作臺」入口。
安裝與啓用¶
插件要求 Node >= 20,peer 依賴 @deepseek-ai/cordis 與 @deepseek-ai/dsh。安裝分三步:掛接 DSH 插件、裝 Python 依賴、可選配置天勤賬號。
1. 裝成本地 DSH 插件¶
README 給出已驗證的本地目錄安裝(不動 pnpm 鎖文件):
# 1) 把插件目錄聯接進 profile 的 node_modules
powershell -NoProfile -Command "New-Item -ItemType Junction -Path '<profile>\node_modules\dsh-quant-cta' -Target '<repo>'"
# 2) 在 profile 的 cordis.patch.yml 末尾追加(config 裏寫本機 Python 路徑)
# - insert:
# - id: dsh-quant-cta
# name: dsh-quant-cta
# config:
# pythonPath: <repo>/.venv/Scripts/python.exe
# engineRoot: <repo>
# 3) 重啓 DSH
其中 <profile> 一般爲 %USERPROFILE%\.dsh\profiles\desktop。
發佈到 npm 後,也可用:
dsh plugin add dsh-quant-cta
插件自帶 cordis.patch.yml 會插入插件名單;本機 Python 路徑仍需在 profile 的 patch 層配置。
2. 安裝 Python 依賴¶
在倉庫根目錄創建虛擬環境並安裝依賴:
python -m venv .venv
.venv/Scripts/python.exe -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas tqsdk
解析 Python 可執行文件的順序:config.pythonPath → 環境變量 QCTA_PYTHON → <插件目錄>/.venv → PATH 中的 python。
3. 天勤賬號(可選,建議配置)¶
推薦在面板「數據源賬號」卡片填寫快期賬號並「保存並測試」。命令行等價:
echo '{"user":"手機號","password":"密碼"}' | python -m qcta auth login --stdin --verify
python -m qcta auth status
無憑據時引擎仍可運行,但僅使用合成數據,報告頂部有醒目標註。憑據在 Windows 上可用 DPAPI 加密存本機;密碼不會出現在 API 返回值中。
注意:插件以當前 DSH 進程權限運行,安裝前請閱讀源碼與 MIT 許可證,自行判斷憑據與本地 API 路由(僅本機迴環)是否符合你的安全要求。
典型用法¶
在 DSH 對話裏¶
先自檢,再按數據 → 回測 → 報告 → 模擬盤順序調用:
qcta_doctor
qcta_sim action="status"
qcta_sim action="advance"
qcta_data action="sync" live=true
qcta_backtest pool="default" start="2019-01-01" live=true
qcta_report action="get"
qcta_paper action="init"; qcta_paper action="step"
面板可直接訪問 http://127.0.0.1:58080/dsh-quant-cta/panel,或與右側欄入口打開同一頁面。
命令行¶
cd python
python -m qcta doctor
python -m qcta data sync --live --pool default
python -m qcta backtest --pool default --start 2019-01-01 --json
python -m qcta backtest --pool starter --sleeves trend:0.6,xsec:0.4 --vol 0.10
python -m qcta paper init --pool starter --capital 300000
python -m qcta paper step --live
回測結束後可用 python -m qcta report --run <run_id> 查看報告;python -m qcta stats --run <run_id> --trials 12 做統計體檢。
回測與風控口徑(寫死)¶
下列規則不是可選項,用於避免未來函數與成本低估:
- 信號在 t 日收盤產生,t+1 日開盤成交。
- 手數按波動率預算換算;等權時按
sqrt(Σw²)歸一。 - 手續費按合約規格(按額/按手取大,含平今倍率),滑點默認 1 跳/筆。
- 開倉前做保證金校驗,不足則縮減手數並記拒單。
- 風控含單品種上限、名義槓桿上限、組合回撤熔斷、可選 ATR 止損。
- 期末強制平倉,保證權益變動與交易淨盈虧恆等(有單測約束)。
設計細節見倉庫 docs/DESIGN.md。
面板與本地 API¶
面板提供權益/回撤雙摺線圖、最優配比環形圖、逐日收益與波動副軸等(純 SVG,無圖表庫)。頂部可填模擬投入、期望年化與回撤閾值,僅做可視化換算與告警,不改變歷史回測結果。
同源只讀/管理路由(README 列舉)包括:GET /dsh-quant-cta/api/overview、GET /dsh-quant-cta/api/report?run=<id>、憑據相關 GET/POST/DELETE、以及 GET/POST /dsh-quant-cta/api/sim 用於模擬調度。均無鑑權,限本機迴環使用。
適用場景與侷限¶
適合:在 DSH 或本地把 CTA 日線策略跑通;用天勤真實主連檢驗成本與風控;需要 Markdown/JSON/SVG 報告與 walk-forward 配比的研發流程。
不適合或未提供:實盤 CTP 下單;真實盤中滑點(日頻爲開盤價 ± 固定跳數);將歷史回測當作投資建議。README 明確:合成數據僅驗證流程;合約規格需與交易所公告覈對;跨策略腿在同一品種上不對淨額對沖(歸因清晰,但可能多付手續費與保證金)。
維護者在 README 中給出 2016 至今與 2021 至今等窗口的真實數據回測表,並附統計體檢(PSR、DSR、MinTRL 等),強調長窗口下基線策略與噪聲難以區分——使用時應結合 report.md 末尾體檢章節自行判讀,而非只看年化或夏普。
結尾¶
dsh-quant-cta 把商品期貨 CTA 從行情、規格、信號、撮合到報告與 paper 賬本收進一條可自檢、可復現的工作流,並通過 DSH 工具與本地面板接入智能體日常操作;全程不發真實委託。若要安裝或貢獻代碼,以 GitHub 倉庫 README 爲準。