GS Quant(gs-quant)研究筆記¶
資料來源¶
| 項目 | 連結 |
|---|---|
| GitHub repo | https://github.com/goldmansachs/gs-quant |
| 官方開發者文件 | https://developer.gs.com/docs/gsquant/ |
| Marquee 平台頁 | https://marquee.gs.com/welcome/our-platform/gs-quant |
| PyPI | pip install gs-quant |
| DeepWiki(社群整理) | https://deepwiki.com/goldmansachs/gs-quant/2-getting-started |
| 第三方介紹 | Medium — Coding Nexus |
Metadata(研究當下):11,773 stars / 1,595 forks · Python · Apache 2.0 · 建立於 2018-12-14(老牌、非新專案)· 最新 release
release-2.1.2(2026-08-03)。Python 3.9+(MCP 功能需 3.10+)。
專案概述¶
GS Quant 是 Goldman Sachs 官方維護的量化金融 Python 工具包——由 GS 內部的 quant developers 打造、跑在「全球最強風險轉移平台之一」(GS Marquee)之上,號稱累積 25 年市場經驗。它的核心價值主張是:把投行內部 sales / strategists / risk managers 每天在用的衍生品定價模型與分析工具,用統一的 Python API 開放出來。
用途涵蓋:衍生品結構化(structuring)、交易、風險管理,以及純粹當統計/資料分析套件。功能面主要有四大塊——時間序列分析、投資組合操作、風險與情境分析、回測。
它跟本站量化交易分類裡多數專案的定位完全不同:這裡收錄的大多是學術論文實作(Kelly、DLP、drawdown control)或社群開源 agent(AI Hedge Fund、TradingAgents)。GS Quant 則是唯一一個「機構券商把自家 production 定價引擎商品化」的工具包——它不是在你本機重造一個定價模型,而是當作「GS 分析服務的 Python 前端」。
⚠️ 最關鍵前提:大部分定價與風險計算並非在本機跑,而是把 instrument 送到 GS 的 analytics service 計算。要用這些 API 需要 client id / secret,而這些只發給 Goldman Sachs 的機構客戶。沒有 GS 帳號,能用的主要是不需連線的本地工具(部分 timeseries、資料結構),定價/風險/回測的核心價值拿不到。
核心架構與模組¶
gs_quant/ 下的主要子模組:
| 模組 | 職責 |
|---|---|
instrument |
各類衍生品物件(IRSwap、IRSwaption、FX、equity vol…),cross-asset |
markets |
Portfolio(把多個 instrument 當單一單位定價/分析)、PricingContext(定價脈絡:日期、市場資料、情境) |
risk |
風險量測(measures)、敏感度、情境/shock 分析 |
backtests |
回測引擎(generic_engine、equity_vol_engine、predefined_asset_engine)+ strategy / triggers / actions 的宣告式框架 |
timeseries |
時間序列分析函式庫(可獨立當統計套件用) |
analytics / models / data |
分析元件、模型、Marquee 資料集存取 |
markets + entities |
資產/實體抽象 |
mcp ★ |
新增:FastMCP 打造的 MCP server + client,把 gs_quant 功能開放給 LLM agent |
skills ★ |
新增:內建 agent skills(SKILL.md 套件),可安裝進 .claude/skills/ |
兩個招牌設計模式¶
1. resolve() — 部分指定 → 服務端補完
from gs_quant.instrument import IRSwap
swap = IRSwap('Pay', '10y', 'USD') # 只給方向/年期/幣別
swap.resolve() # 把 instrument 送到 GS 定價服務
print(swap.fixed_rate) # 服務算出當前 par rate,例如 0.0345
你只指定 instrument 的一部分參數,resolve() 把其餘欄位(par rate、premium、forward points…)交給 GS analytics service 依當前 PricingContext 補齊。預設 in-place 改寫,in_place=False 回傳新副本。
2. PricingContext — 用 context manager 控制「在什麼市場條件下定價」
定價、風險、情境全部繞著 PricingContext(日期、市場資料快照、shock/scenario)運作,配合 Portfolio 可把一籃子 instrument 當單一單位一次定價、算風險。
回測框架:「一種描述回測的語言」¶
官方把 backtesting 定位成一個 描述回測的 language,強調三個特性:(1) 直覺 (2) 跨資產、與 instrument 無關 (3) python native 可自由改寫擴充。用 strategy + triggers(何時動作)+ actions(做什麼,如加倉/避險)宣告式組合,再交給對應 engine 跑歷史回放。
★ 新亮點:投行把量化平台接上 AI Agent¶
2026 年版本最值得注意的是 gs_quant/mcp 與 gs_quant/skills 兩個(標註 Experimental 的)新套件——這是一家投資銀行主動把自家 quant 工具開放給 LLM agent 的訊號。
MCP server(pip install gs-quant[mcp],需 Python 3.10+)
- 用 FastMCP 打造,自動探索 (auto-discover) tools、支援 tag-based 過濾、兩種認證策略(
local/passthrough)。 - 附一個 client(one-shot CLI + 互動 REPL,走 streamable-HTTP transport),單一進入點
python -m gs_quant.mcp <server|client|discover>。 - 目前 tools 分三組:
data、marketview、users(例:current_user_info、whois)。可用gs_quant的 Marquee OAuth 憑證啟動。 - 支援「寫自己的 tool」與「從別的 package 載入 tool」——是可延伸的 tool registry,不是寫死的一組。
Agent skills(python -m gs_quant.skills install)
- 內建 SKILL.md 套件,可裝進
.claude/skills/(--global→~/.claude/skills/;--project→ 當前專案),供 Claude Code、GitHub Copilot 等讀取。 - Linux/macOS 用 symlink 指回 package 源碼——升級 gs_quant 就自動更新 skill;Windows 用複製、升級後要重跑 install。
- 目前隨附
gs-quant-overviewskill,拆成pricing.md/measure.md/instruments.md/backtesting.md/datasets.md/results.md等漸進式檔案,教 agent 正確用GsSession、建 portfolio、resolve instrument——本質是把「怎麼正確呼叫這個 SDK」的知識打包給 agent,降低 agent 亂用 API 的機率。
目前限制 / 注意事項¶
- 核心功能綁定 GS 機構帳號:沒有 client id/secret,定價、風險、回測(需市場資料)、Marquee 資料集全都拿不到。這是它跟本站其他「開箱即跑」量化專案最大的差別——對零售/個人開發者而言,可玩的部分有限。
- 是「GS 服務的前端」而非獨立引擎:定價邏輯在 GS 伺服器端,你看不到也改不了模型內部;可重現性、離線性、審計性都受此限制。
- MCP / skills 標註 Experimental:API、CLI、設定在未來版本可能變動,別押在 production。
- 資料/計算送到 GS:instrument 與市場觀點會送到 GS analytics service,機密部位資訊的傳輸與合規須自行評估。
- 文件雙軌:GitHub README 極簡,真正的 examples/tutorials 在
developer.gs.com,且很多要登入機構帳號才看得到完整內容。
研究價值與啟示¶
關鍵洞察¶
-
「production 引擎商品化」是一條與開源重造不同的路——本站量化分類多數專案在「用開源工具重造一個定價/優化模型」;GS Quant 反其道,把已在跑真實交易的內部引擎包成 API 賣給機構客戶。對比之下能看清:學術/社群專案的價值在透明可改,券商工具的價值在權威市場資料 + production 級模型,兩者受眾與信任來源完全不同。
-
resolve()模式體現「薄客戶端、厚服務端」的量化架構——client 只描述 instrument 的意圖,真正的 par rate / 定價交給服務端。這跟 [[headroom]] 那種「本地優先、資料不外流」的哲學正好相反,反映機構量化的現實:定價模型與市場資料是券商的核心資產,不可能下放到客戶端。要學的是這個責任邊界的切法。 -
回測被設計成一種「語言」而非一個函式——用 strategy / triggers / actions 宣告式組合、cross-asset、可 python 擴充,這個「把回測當 DSL」的思路,比多數把回測寫死成一支迴圈的社群專案(如本站 [[quantdinger]]、[[stockstats]] 類)更有延展性,值得任何要做通用回測框架的人參考。
-
★ 投行出官方 MCP + skills,是「機構級能力接上 agent 生態」的早期訊號——把定價/資料能力包成 MCP tools、把「怎麼正確用 SDK」包成 agent skill,等於承認未來很多量化操作會由 LLM agent 發起。這跟本站 [[mattpocock-skills]]、[[claude-agent-sdk]] 記錄的 skill/agent 浪潮在完全不同的產業匯流,是「skills 不只是給 coding agent,也給 domain 專業工具」的具體案例。
-
skill 用 symlink 隨套件版本走,是可抄的維運細節——skill 檔 symlink 回 package 源碼,SDK 一升級 skill 自動同步,避免「文件與程式碼版本漂移」。對照 [[mattpocock-skills]] 的「subscribe vs fork」,GS 這招是第三種:skill 生命週期綁定 SDK 版本——最適合「skill 就是該套件的一部分」的情境。
-
它同時是提醒:量化的護城河是資料與模型,不是程式碼——gs-quant 程式碼全開源(Apache 2.0),但沒帳號幾乎沒用。這對想做量化工具的人是一記警鐘:開源工具鏈很容易,難的是背後那個 25 年市場經驗的定價服務與資料。
與其他專案的關聯¶
- 與本站量化交易分類多數專案的對照:[[ai-hedge-fund]]、[[tradingagents]]、[[stockagent]] 是 agent 驅動的策略;[[quantdinger]]、[[stockstats]]、[[tejapi_python_medium_quant]] 是開源分析/回測;Kelly/DLP 系列是學術實作。GS Quant 是唯一的「機構券商 production 工具包」,補上了這個光譜缺的一角。
- 與 AI agent / skills 生態的交會:
gs_quant/skills的 SKILL.md 機制與 [[mattpocock-skills]]、[[microsoft-skills]]、[[claude-skills-guide]] 同源;gs_quant/mcp的 FastMCP 用法可與 [[mcp-for-beginners]] 對讀。這是「傳統金融基礎設施」與「agent 工具鏈」交會的鮮活樣本。 - 與 [[headroom]] 的架構哲學對比:一個把運算/資料留在本地(隱私優先),一個把定價留在服務端(資產保護優先)——兩種截然不同的信任與責任邊界,適合並讀理解「什麼該放本地、什麼該放遠端」。
- 對台灣/零售開發者的現實提醒:相較本站可直接跑的 [tejapi_python_medium_quant]等,GS Quant 對沒有機構帳號者門檻極高,列此以標明「機構工具 ≠ 個人可用」。