gs_quant 文档体系全览:数据、定价风控、回测与篮子等 13 大功能模块导航指南

📅 发布时间:2026/9/15 20:05:02
gs_quant 文档体系全览:数据、定价风控、回测与篮子等 13 大功能模块导航指南
gs_quant 文档体系全览数据、定价风控、回测与篮子等 13 大功能模块导航指南【免费下载链接】gs-quantPython toolkit for quantitative finance项目地址: https://gitcode.com/GitHub_Trending/gs/gs-quant本文以 gs_quant/documentation/README.mdDocumentation Overview为核心骨架系统梳理 gs-quant 官方 Notebook 文档库的组织方式、模块划分与学习路径。通过阅读本文你将掌握 gs-quant 文档按核心功能分组 教程tutorials与示例examples双层结构的检索逻辑并了解从数据查询、市场日历、定价与风险度量、组合管理、回测框架、篮子与指数到安全主数据Security Master与 One Delta 对冲等 13 大功能域各自覆盖的技术主题与代表性用例从而快速定位所需代码片段、按正确顺序上手量化工作流。文档库的组织哲学按核心功能分组教程与示例分层gs_quant 的官方文档位于仓库的gs_quant/documentation/目录以 Notebook.ipynb为主要载体其组织原则在 README.md 中明确指出按核心功能分组整个文档库被划分为00_data至12_scenarios共 13 个一级目录每个目录对应 gs_quant 的一项核心能力域编号本身即暗示推荐的学习先后顺序教程tutorials先行每个功能域内的tutorials/子目录收录介绍核心概念与核心函数的 Notebook是最好的起点great place to start示例examples跟进examples/子目录提供大量短小精悍、聚焦单一场景的代码片段库searchable library of short specific snippets便于按需检索与复用。此外文档库根目录还提供两个聚合入口Contents.ipynb 与 Index.ipynb以及本总览文档 README.md。所有示例均依赖已初始化的GsSession及相应权限scope外部用户需以自有client_id/client_secret替换示例中的None占位符内部用户可直接使用。这一约定在绝大多数 Notebook 的开头均可看到例如 Instruments.ipynb 中的GsSession.use(client_idNone, client_secretNone, scopes(run_analytics,))。00_data数据集、分析、工作区、可视化与屏幕00_data是数据获取与分析能力域包含 5 个子目录与 1 个专题目录00_datasets数据集查询与覆盖examples/下共 9 个示例覆盖从查询数据集到访问第三方数据的完整数据接入链路0000_query_dataset.ipynb数据集查询入门。演示通过Dataset(dataset_id)实例化数据集如FXIVOL_STANDARD再用ds.get_data(start_date, end_date, bbid[EURUSD])按日期区间与资产维度拉取数据也可用get_data(dates[...], bbid[...])指定离散日期集对大批量资产或长周期数据示例还给出资产分块 时间分片的双层迭代模板iterate_over_assets/iterate_over_time默认batch_size5、时间步长 6 天以规避 API 查询限制并演示如何用get_coverage(include_historyTrue)结合historyStartDate下载数据集全量历史0001_get_dataset_coverage.ipynb获取数据集资产覆盖范围0002_using_data_contexts.ipynbDataContext使用配合源码gs_quant/data/core.py理解其上下文切换机制0003_get_data_using_coordinate.ipynb基于DataCoordinate精确取数坐标系实现见 gs_quant/data/coordinate.py0004_get_all_assets_from_region.ipynb按地区枚举全部资产0005_get_vol_surface.ipynb获取波动率曲面0006_ptp_dataset.ipynb、0007_query_fxvol.script.ipynb点对点PTP数据与 FX 波动率脚本化查询0008_s3_partners_short_interest.ipynbS3 Partners 空头持仓数据接入。01_analytics、02_workspaces、03_visualizations、04_screens 与 covid01_analyticsexamples/下 0000_charting_data.ipynb数据图表化与 0001_exporting_data.ipynb数据导出02_workspaces0001_creating_a_workspace.ipynb 演示工作区创建底层 API 见 gs_quant/api/gs/workspaces.py03_visualizations0001_creating_a_visualization.ipynb04_screens00_base_screener_api_tutorial.ipynb 与 01_screen_api_tutorial.ipynb 介绍筛选器 APIScreener/Screen实现见 gs_quant/api/gs/base_screener.py 与 gs_quant/api/gs/screens.pycovidComparing, Reconciling, and Combining COVID-19 Data Sources.ipynb 展示多数据源比对、对账与融合的实战方法。01_markets证券标识与相对日期Relative Date01_markets下设00_securities与02_rdates两个子域00_securities0000_get_an_asset_from_identifier.ipynb 演示如何从任意标识符ticker、BBG 代码、Marquee ID 等解析出Asset对象——这是所有后续取数与定价工作的前置步骤相关实现见 gs_quant/markets/securities.py02_rdates相对日期共 6 个示例0000_get_a_date_relative_from_today.ipynbRelativeDate(-1d).apply_rule()返回上一交易日0001_get_a_date_relative_from_a_base_date.ipynb从任意基准日推算0002_get_a_date_relative_using_pricing_context.ipynb结合PricingContext求相对日期0003_get_a_date_using_a_business_day_calendar.ipynb基于交易日历计算营业日0004_chaining_relativedate_rules.ipynbRelativeDate规则链式组合0005_passing_your_own_holiday_calendar.ipynb传入自定义节假日日历。以上能力由 gs_quant/datetime/relative_date.py 的RelativeDate类及 gs_quant/datetime/gscalendar.py 的日历体系支撑。02_pricing_and_risk工具Instrument、度量Measure、场景与上下文这是 gs_quant 最核心的能力域分为两个大子域官方为此提供了两份重量级教程00_instruments_and_measures工具与度量tutorials/下 Instruments.ipynb 与 Measures.ipynb 是理解整套定价框架的起点。以 Instruments 教程为例其核心脉络是Instrument 继承自PriceableInstrumentgs_quant/instrument/core.py继承 gs_quant.base.Priceable因此天然具备as_dict()返回全部公开非空属性字典与calc(risk_measure)计算风险度量等方法构造示例IRSwaption(PayReceive.Receive, 5y, Currency.USD, expiration_date13m, strikeatm40, notional_amount1e8)——前 3 个为必选位置参数其余为可选关键字参数未提供时采用该工具的市场默认惯例resolve()解析机制将相对参数如expiration_date13m、strikeatm40解析为绝对值如2020-11-02、0.017845989434194357并补齐默认参数如fixed_rate_frequency6m、premium_payment_date注意resolve()会原地修改对象状态而调用price()或计算风险时若未先resolve()对象会被复制并在副本上即时解析不污染原对象受支持工具清单教程以完整表格罗列了外部可用的全部 Instrument 实现及其gs_quant名称包括EqOption权益期权、FXForward/FXOption/FXBinary/FXMultiCrossBinary/FXVolatilitySwap外汇系列、InflationSwap、IRSwap/IRBasisSwap/IRXccySwap及 Fix-Fix、Fix-Float 变体、IRSwaption、IRCap/IRFloor、IRCMSOption及 Strip、Spread Option、Spread Option Strip等每个工具对应 Goldman Sachs 证券部门的定价模型此外IRDelta可应请求用于利率期货与债券期货。examples/下按资产类别细分为 5 个子目录、约 50 个示例00_instrument_basics查看/获取/设置工具属性、枚举属性、resolve()、市场数据、float-with-info 等 7 个基础示例01_rates23 个从查看互换定义、构建互换交易、计算互换价格与风险度量到在PricingContext中定价、历史定价、跨币种互换Xccy Swap价格与风险、价差期权网格、贴现曲线切换、现金流计算、PV/Delta 求解、资产互换定义、Cap/Floor、Vanna Volga 求解等02_fx11 个FX 远期、期权、波动率互换、二元期权、敲出期权、双触期权、Delta/Gamma 度量、多币种交叉产品03_eq6 个权益期权价格、风险度量、在PricingContext中定价、历史定价、组合 Greeks04_credit5 个CDIndex 期权价格、Xover 付款人价差、风险度量、价格与展期价格。01_scenarios_and_contexts场景与定价上下文tutorials/下 Pricing_Context.ipynb 与 Scenarios.ipynb 讲解两大概念实现见 gs_quant/markets/core.py 与 gs_quant/risk/scenarios.py。examples/下按场景类型细分为 10 个子目录、40 示例00_market_objects11 个市场数据对象与MarketDataPattern的构建IR、IR Vol、IR Basis、IR XC、FX、FX Fwd、FX Vol、CD 等 8 类市场的模式构建01_rollfwd_shock5 个RollFwd滚动场景展示生命周期效应对互换/互换期权的影响、收益率曲线与远期利率02_market_shock7 个基于市场数据冲击的场景基础、利率即期/曲线/波动率冲击、Delta/Vega 等价冲击、股票即期冲击、FX 冲击03_composite_shocks2 个利率复合冲击与多重冲击组合04_curve_shock6 个平行曲线冲击、中点冲击、Bear/Bull Steepener 与 Bear/Bull Flattener 四种形态05_market_override/06_vol_market_override股票即期/期货覆盖、EOD 与盘中波动率覆盖07_curve_overlay1 个含 CurveExample.csv 数据文件贴现曲线叠加08_multi_scenario多场景同时定价09_measure_scenarioFX、利率、股票三个市场的度量级覆盖。另有 External Demo v1.ipynb 作为对外演示。03_portfolios组合构建、定价与风控03_portfolios下 12 个示例 3 个教程覆盖组合全生命周期examples/030000_create_portfolio.ipynb创建组合、030001_modify_instruments.ipynb修改工具、030002_extracting_instruments_and_results.ipynb提取工具与结果、030003_resolve_portfolio.ipynb、030004_price_portfolio.ipynb、030005_calculate_portfolio_risk.ipynb、030006_portfolio_grid_calc.ipynb网格计算、030007_pnl_explain.ipynbPnL 归因、030008_portflio_from_frame.ipynb从 DataFrame 构建、030009_portfolio_risk_result_to_frame.ipynb、030010_portfolio_inter_leg_dependencies.ipynb腿间依赖、030011_portfolio_from_csv.ipynb从 CSV 导入tutorials/Create New Portfolio.ipynb、Portfolios.ipynb、Update Historical Portfolio.ipynb。组合相关实现位于 gs_quant/markets/portfolio.py 与 gs_quant/markets/position_set.py。04_backtesting回测框架的四大语言组件04_backtesting是 gs-quant 极具特色的能力域。Backtesting.ipynb 明确指出回测框架是一套描述回测的语言具有直觉化、跨资产与工具无关、原生 Python 可扩展三大特性且兼容多种计算引擎默认使用 gs risk API。该语言由 5 个基本组件构成Trigger触发器根据需求与回测当前状态修改策略每个触发器绑定一个或多个 Action。现支持PeriodicTrigger按固定周期触发如每月末、MktTrigger市场数据绝对值或变化量达到目标如 SPX 1m vol 穿越 10、StrategyRiskTrigger策略当前风险达到目标如 Delta 穿越 1000 万Action动作定义触发后如何更新组合现支持AddTradeAction加仓、ExitTradeAction平仓、HedgeAction对冲Strategy策略初始头寸/组合 一个或多个 Trigger 的组合Calculation Engine计算引擎回测底层的计算来源。不同引擎针对不同回测类型优化如EquityVolEngine针对特定权益标的高效波动率回测GenericEngine覆盖大多数场景基于 gs-quant risk API。可用strategy.get_available_engines()查询候选引擎用ge.supports_strategy(strategy)校验单个引擎Backtest回测对象运行后得到的结果容器可通过backtest.trade_ledger()查看每笔交易状态、backtest.result_summary查看Price默认度量本地币种与累计现金流、backtest.portfolio_dict查看任意回测日的组合、backtest.calc_calls/backtest.calculations查看 API 调用次数与计算量。教程以每日卖出 1m10y USD 跨式组合short straddle为例串起全流程PeriodicTriggerRequirements(start_date, end_date, frequency1b)→AddTradeAction(straddle, expiration_date)→PeriodicTrigger(trig_req, action)→Strategy(None, trigger)→GenericEngine().run_backtest(strategy, start, end, frequency1b, show_progressTrue)→ 用 pandas 绘制 Mark-to-Market 与 Performance 曲线。对应源码见 gs_quant/backtests/triggers.py、gs_quant/backtests/actions.py、gs_quant/backtests/strategy.py、gs_quant/backtests/generic_engine.py。examples/下按引擎细分01_PredefinedAssetEngine040100_simple_example.ipynb02_EquityVolEngine6 个简单策略、Delta 对冲、PnL 分解、信号驱动策略、市场模型、Scaled Add 动作03_GenericEngine15 个周期触发、风险触发、FX/利率 Delta 对冲、均值回归、退出交易、市场触发、看涨 Seagull、再平衡、通胀对冲、不同 CSA 的互换对冲、节假日处理、链式动作、渐进建仓等。另有 Basic backtest walkthrough.ipynb 提供端到端演练。05_factor_models、11_macro_models模型查询与上传05_factor_models01_Factor_Models.ipynb 与 02_Upload_Factor_Models.ipynb 分别讲解因子模型FactorRiskModel/MarqueeRiskModel/ThematicRiskModel实现见 gs_quant/models/risk_model.py的查询与上传11_macro_models01_Query_Macro_Models.ipynb 与 02_Upload_Macro_Models.ipynb 对应宏观模型gs_quant/models/epidemiology.py 中的 SIR/SEIR 等。06_baskets篮子组合的全生命周期管理06_baskets是内容最丰富的模块之一examples/下按主题细分为 8 类共 40 示例01_basket_composition_data6 个最新成分、指定日期成分、日期区间成分、完整历史成分、成分日期、数据集覆盖02_basket_pricing_data4 个最新收盘价、指定日期/日期集收盘价、完整历史收盘价03_basket_creation14 个克隆篮子、用权重/数量创建PositionSet、等权构建、权重均衡、追加仓位、从字典列表/DataFrame/CSV/Excel 创建、数量与权重互算、权重再分配、从 Excel 构建历史仓位集04_basket_corporate_actions_data4 个完整公司行动历史、指定日期行动、即将发生行动、按类型筛选05_basket_fundamentals_data4 个基本面历史、指定日期基本面、按期间与方向FundamentalMetricPeriod/FundamentalMetricPeriodDirection筛选、按指标筛选06_basket_reports7 个因子风险报告的创建、删除、获取、列出、状态查询与轮询07_basket_permissions6 个权限获取、应用到篮子、按邮箱授权用户、授权群组、移除权限、查看已授权篮子08_flagship_baskets12 个旗舰篮子列表、日期过滤、包含资产筛选、价格与成分、按类型/地区/风格/ticker 过滤。tutorials/下提供 Basket Create.ipynb、Basket Edit.ipynb、Basket Rebalance.ipynb、Basket Backcast.ipynb 四个端到端教程。核心实现见 gs_quant/markets/baskets.py 与 gs_quant/markets/position_set.py枚举与工具函数见 gs_quant/markets/indices_utils.py。07_index、08_tree_entity、09_security_master指数、树实体与安全主数据07_index目录自带 README.md 说明examples/覆盖 Marquee URL、收盘价、基本面、成分、权重与归因、指数树可视化tutorials/提供 GS Quant STS Index Tutorial.ipynb。实现见 gs_quant/markets/index.py 与 gs_quant/entities/tree_entity.py08_tree_entitytree_entity.ipynb 讲解树状实体如指数/篮子的树形上下级关系09_security_masterSecurity Master SDK.ipynb 与 Security Master.ipynb 介绍安全主数据检索底层为 gs_quant/api/gs/secmaster.py 与 gs_quant/api/gs/federated_secmaster.py。10_one_delta对冲、组合与报告的一站式工作流10_one_delta面向对冲与组合管理实战分三个子目录Hedger01_Performance_Hedger.ipynb表现对冲、02_Factor_Hedger_(Axioma_Portfolio_Optimizer).ipynb.ipynb)基于 Axioma 组合优化器的因子对冲、03_Continuous_Optimization.ipynb连续优化Portfolios10 个回填组合创建、新建/更新历史组合、因子归因数据、基金中的基金FoF管理、因子风险数据、绩效分析、ESG 分析、碳分析、主题分析Reports01_Factor_Risk_Report.ipynb、02_Performance_Report.ipynb、03_Thematic_Report.ipynb 三类报告。对冲引擎与报告实现见 gs_quant/markets/hedge.py、gs_quant/markets/report.py 及 gs_quant/markets/portfolio_manager.py。12_scenarios自定义因子冲击与历史场景01_Custom_Factor_Shocks.ipynb 演示对自定义因子施加冲击02_Historical_Scenarios.ipynb 演示历史情景回放两者与 02 模块的场景体系配合可支撑压力测试与情景分析相关实现位于 gs_quant/risk/scenario_utils.py。如何选择学习路径按顺序系统学习按00_data → 01_markets → 02_pricing_and_risk → 03_portfolios → 04_backtesting → 06_baskets → 07_index → 10_one_delta的编号顺序推进先掌握数据与证券解析再进入定价与风险最后扩展到组合、回测与对冲按需查示例库对于特定问题如如何从 DataFrame 创建 PositionSet如何创建因子风险报告直接检索对应编号的示例 Notebook其文件名即是最佳关键词索引先教程后示例每个功能域先读tutorials/建立概念框架如Instruments/Measures/Pricing_Context/Scenarios/Backtesting五大教程再用examples/深挖细节。所有文档均可在本地通过 Jupyter 打开运行配合 gs_quant/session.py 的会话初始化与 pyproject.toml 声明的依赖环境即可将文档中的代码片段直接迁移到自己的量化工作流中。【免费下载链接】gs-quantPython toolkit for quantitative finance项目地址: https://gitcode.com/GitHub_Trending/gs/gs-quant创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考