gs-quant 入门实战3 个代码块跑通一个均值回归回测【免费下载链接】gs-quantPython toolkit for quantitative finance项目地址: https://gitcode.com/GitHub_Trending/gs/gs-quant你手上有半成型的想法商品近月远月的价差拉大时低买高卖等它回归均值再平掉。但数据、信号、回测引擎散在三个不同库里第一版脚本都没法连起来跑。gs-quant 是 Goldman Sachs 开源的量化金融 Python 工具包取数、时间序列运算、定价和回测都在这一个包里。下面按最短路径带你跑起来。gs-quant 安装与 5 行代码拿到第一份价格序列gs-quant 要求 Python 3.9 及以上pip 一条命令装好pip install gs-quant接着做认证、建上下文、拉一个证券的价格验证整条链路是否可用from gs_quant.session import Session from gs_quant.markets import PricingContext Session.login() # 首次会提示输入 client ID / secret ctx PricingContext() # 创建市场数据上下文 prices ctx.history(ES1, price, start2020-01-01, end2023-01-01) print(prices)跑通后终端打印一段 pandas 风格的时间序列索引是日期数值是 ES1 的日线价格。报错的话往下看避坑清单。两个核心概念Context 与 Series先记住这两个抽象仓库里任何示例你都能读懂PricingContext定价上下文相当于行情数据仓库的连接串把认证状态、环境、权限打包在一起。后面取数、定价、回测全走它不用自己管接口和鉴权。Series时间序列带证券名 字段标签的时间序列。加减乘除、滚动统计、收益率计算都直接支持语法和 pandas Series 很像。gs-quant 的数据、市场、风险三大能力都挂在这两个入口上理解了它们再去看各模块源码不费劲三个真实场景的实操场景一取数用 PricingContext 拉两个合约的价格序列目标是拿到两个按日期对齐的价格序列用来构造价差。取数主力是history实现在 gs_quant/markets/core.pynear ctx.history(GC1, price, start2020-01-01, end2023-01-01) far ctx.history(GC2, price, start2020-01-01, end2023-01-01) spread near / far - 1 # 近月相对远月的价差 print(spread.head())输出是逐日价差序列的前几行索引仍是日期。证券名遵循 Marquee 命名规则不确定可交易合约时先用ctx.assets查询。场景二建模3 行算出滚动 z-score 信号均值回归的核心问题是价差相对近期均值偏离了多少。滚动均值和滚动标准差都在 gs_quant/timeseries/statistics.py 里不用手写循环from gs_quant.timeseries.statistics import mean, std sma mean(spread, window60) # 60 日滚动均值 ssd std(spread, window60) # 60 日滚动标准差 z (spread - sma) / ssd # 滚动 z-score print(z.tail())z 表示价差当前高出近期均值几个标准差|z| 超过 2 是常用的开仓阈值。窗口长度 60 只是起点后面可以换 30 或 90 做参数对比。场景三回测用 backtests 引擎验证开平仓逻辑gs_quant/backtests/ 内置回测引擎你只需要描述何时开仓、何时平仓引擎负责逐日撮合from gs_quant.backtests import ( Strategy, Backtest, MktTrigger, TriggerDirection, EnterPositionAction, ExitPositionAction, ) enter EnterPositionAction({ES1: 1, ES2: -1}) trig_in MktTrigger(ES1, price, TriggerDirection.BELOW, 4000, actionenter) trig_out MktTrigger(ES2, price, TriggerDirection.ABOVE, 4100, actionExitPositionAction(allTrue)) strat Strategy(initial_capital1_000_000, triggers[trig_in, trig_out]) bt Backtest(strategystrat, start2020-01-01, end2023-01-01) bt.run()run()按日推进回测输出成交记录和净值汇总继续调用bt.plot()就能画出净值曲线。注意 MktTrigger 是基于行情价格触发上面那种滚动 z-score 信号需要先落成数据集再接进触发器仓库里有一份现成的均值回归示例可以对照040304_strategy_mean_reversion.ipynb。这类组合分析在 gs-quant 里都是标准输出下图是官方分享材料中一组股票聚类分析的结果避坑清单新手最常踩的 3 个坑一 import 就报MqUninitialisedError→ 会话还没认证任何取数调用都会被拦截 → 在建 Context 前先调Session.login()。登录后取数返回 401 或权限不足 → client ID / secret 无效或缺少对应数据域授权 → gs-quant 的数据 API 面向机构客户按仓库 README 找 GS 销售申请正确的凭据。ctx.history返回空序列或提示找不到证券 → 证券名是猜的与行情侧实际标识对不上 → 先在 Marquee 界面核对合约的真实名字和标识再原样传入。仓库关键入口导航资源类型相对路径一句话说明文档源文件docs/index.rstSphinx 文档索引覆盖 timeseries、markets、risk 各模块 APINotebook 教程gs_quant/documentation/官方教程按数据、市场、定价与风险、回测等主题组织策略示例集gs_quant/content/现成的报告与筛选器 notebook按 FX、利率等市场划分回测引擎源码gs_quant/backtests/core.pyStrategy、MktTrigger、Backtest 的实现市场数据 APIgs_quant/markets/core.pyPricingContext 与 history 取数接口的实现gs-quant 最适合要接真实行情数据的量化研究取数、建信号、跑回测在一个包里闭环。数据 API 面向机构客户文中策略仅作教学示例不构成交易建议。【免费下载链接】gs-quantPython toolkit for quantitative finance项目地址: https://gitcode.com/GitHub_Trending/gs/gs-quant创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考