乐于分享
好东西不私藏

高盛 gs-quant:源码安装、衍生品定价、风险计算与策略回测

高盛 gs-quant:源码安装、衍生品定价、风险计算与策略回测

25 年市场经验写进了一个 Python 工具包,但高盛并没有把整套定价后台“打包送出”。弄清楚了边界,才是理解 gs-quant 的第一步。

很多人第一次看到 gs-quant,会理解成“开源版高盛定价系统”。这个说法很抓眼球,却不够准确。

开源的是 Python 客户端、金融产品的数据模型、时间序列工具、回测框架,以及连接高盛服务的接口层;大量专业定价、风险计算、市场数据和组合服务仍运行在高盛后端,并受机构账户权限控制。

所以,gs-quant 的真正价值不是让任何人在本地复刻一家投行,而是把机构级量化工作流拆成一组可以阅读、调用和扩展的 Python 对象。

读完这篇,会弄清四件事:

哪些能力安装后就能用,哪些必须有高盛机构权限;

一笔互换或期权,如何从“合同条款”变成价格和风险;

PricingContextPortfolioHistoricalPricingContext 分别解决什么问题;

gs-quant 的回测为何不只是“拿历史价格跑一个循环”。

先说结论:开放了什么,没有开放什么

官方把 GS Quant 定义为一个量化金融 Python 工具包。项目由高盛 Quant 团队维护,建立在其风险转移平台之上,背后沉淀了超过 25 年的全球市场经验。

需要拆成三层理解。

第一层:开源代码。

gs_quant 仓库采用 Apache-2.0 许可证。产品对象、会话管理、时间序列函数、部分统计模型、回测框架、结果类型和大量示例都能直接阅读。

第二层:受权限控制的服务。

衍生品定价、风险计算、部分数据集、证券主数据和组合分析,需要通过 GsSession 访问高盛 API。API 凭证主要面向高盛机构客户,并且具体能力还取决于应用的 scopes 和账户 entitlements。

第三层:没有随代码开源的后台。

市场数据、生产级定价服务、模型校准流程和机构权限体系并不包含在仓库里。拿到源码,不等于拿到高盛的完整模型、数据和计算集群。

一句话概括:

gs-quant 开放了“怎样描述问题、怎样发起计算、怎样组织结果”的 Python 工作流;许多最重的计算和数据能力,仍由远端服务提供。

GS Quant 开源代码与机构服务的边界

理解这个产品边界之后,安装和使用都会清楚很多。

安装:五分钟跑起来,先把环境隔离好

要求 Python 3.10 及以上。新项目直接使用 Python 3.10、3.11 或 3.12 更稳妥。

先创建独立虚拟环境:

bash
python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip

普通使用者直接从 PyPI 安装:

bash
pip install gs-quant

如果要运行 Notebook:

bash
pip install "gs-quant[notebook]"

如果准备阅读源码、改代码:

bash
git clone https://github.com/goldmansachs/gs-quant.git
cd gs-quant
pip install -e ".[develop]"

这里的 -e 是 editable install。修改本地源码后,不必每次重新打包安装,Python 会直接加载当前工作目录里的版本。

安装完成后做一个最小检查:

bash
python -c "import gs_quant; print(gs_quant.__version__)"

能输出版本号,说明 Python 包已经可用。此时还没有登录高盛服务,因此本地时间序列函数、对象构造和源码阅读可以继续;需要数据或定价 API 的代码,则会停在认证与权限这一关。

从一笔利率互换看懂 gs-quant

理解 gs-quant,不必先看完整模块列表。先看一笔最常见的固定利率对浮动利率互换。

python
from gs_quant.common import Currency, PayReceive
from gs_quant.instrument import IRSwap

swap = IRSwap(
    PayReceive.Pay,
"10y",
    Currency.USD,
    fixed_rate="atm+25",
    notional_amount=10_000_000
)

这几行代码不是在计算,而是在写一张电子化交易条款单:

PayReceive.Pay:支付固定利率、收取浮动利率;

"10y":合约期限 10 年;

Currency.USD:名义本金以美元计;

fixed_rate="atm+25":固定利率设为平价互换利率再加 25 个基点;

notional_amount=10_000_000:名义本金 1,000 万美元。

这里的“名义本金”通常只是计算利息的基准,不代表双方一开始真的交换 1,000 万美元。

“基点”是利率市场常用单位:

1 bp = 0.01%,25 bp = 0.25%。

如果当时 10 年期平价互换利率是 4.00%,那么 atm+25 大致对应 4.25%。之所以写相对值,而不是直接写死 4.25%,是因为交易条款经常需要跟随估值日和市场惯例动态解析。

resolve():把交易员语言翻译成完整合同

python
swap.resolve()
print(swap.as_dict())

resolve() 会根据估值日、币种和市场惯例,把 "10y""atm+25" 这类相对描述转换成更完整的绝对条款,例如:

实际起息日和到期日;

固定端与浮动端的付息频率;

计息天数规则;

节假日日历和工作日调整;

具体固定利率。

很像把“我要做一笔 10 年美元互换,票息比市场高 25 bp”翻译成法务、运营和定价系统都能识别的合同字段。

需要留意:resolve() 依赖定价服务和相应权限。没有机构凭证时,可以创建对象、查看字段和阅读实现,但无法凭空获得当日市场惯例与平价利率。

GsSession:不是普通登录,而是能力边界

访问高盛 API 前,需要初始化会话:

python
from gs_quant.session import GsSession

GsSession.use(
    client_id="YOUR_CLIENT_ID",
    client_secret="YOUR_CLIENT_SECRET"
)

GsSession 主要负责三件事:

用 OAuth 应用凭证获取并复用访问令牌;

把请求发往对应环境的 API;

按应用 scopes 和账户 entitlements 控制可访问能力。

scopes 和 entitlements 不是一回事。

scopes 更像“这把钥匙被允许尝试打开哪些门”,例如读取金融数据或执行某类操作;entitlements 则决定“你的账户实际有权看哪些数据、使用哪些服务”。代码写对了但权限不足,照样会失败。

生产代码不要把 client_secret 写进 Notebook 或 Git 仓库。更合适的做法是从环境变量或密钥管理服务读取,并遵循最小权限原则,只申请应用真正需要的 scopes。

定价到底在算什么

衍生品的“价格”,本质上是未来现金流在今天的价值。

以利率互换为例,一边支付固定利息,另一边收取随参考利率变化的浮动利息。定价引擎会预测和折现两条现金流,再计算两边现值之差:

互换价值 ≈ 收取端现金流现值 − 支付端现金流现值

IRSwap 固定端、浮动端与现值计算示意图

如果合约刚按市场平价成交,两边现值通常接近,初始价值也接近零。市场利率变化后,原合同中的固定票息不再“刚好公平”,互换就会产生正或负的市场价值。

在 gs-quant 中,PricingContext 用来告诉系统“站在什么时间、使用哪组市场数据、按什么计算方式估值”。

python
import datetime as dt
import gs_quant.risk as risk
from gs_quant.markets import PricingContext

with PricingContext(
    pricing_date=dt.date(2026715),
    market_data_location="LDN"
):
    price_future = swap.dollar_price()
    delta_future = swap.calc(risk.IRDelta)

price = price_future.result()
delta = delta_future.result()

上下文退出时,里面的多个计算会合并发出,减少重复通信。即使使用同步模式,上下文中的调用也会先返回 Future,因此要在退出 with 代码块后用 .result() 取值。

几个参数的含义:

pricing_date:站在哪一天计算合约价值;

market_data_location:使用伦敦、纽约或香港等地点对应的市场数据;

is_async=True:请求提交后先返回,主程序可以继续做别的事;

is_batch=True:适合长历史或大组合,避免受普通 HTTP 请求时限影响;

csa_term:指定抵押品协议条款,它会影响贴现方式和估值。

最后一项很容易被非专业读者忽略。同一笔衍生品,在不同抵押品安排下可能采用不同贴现曲线,因此价格也可能不同。金融定价从来不只有“产品条款”,还包含交易对手和抵押品环境。

Delta、Gamma、Vega:把“风险”翻译成人话

价格只是一个结果,风险回答的是另一个问题:

市场动一点,这笔交易会亏多少或赚多少?

Delta、Gamma、Vega 与 Theta 风险指标图解

Delta:市场小幅变化时,价格先动多少

利率产品的 IRDelta 通常衡量利率曲线移动 1 bp 时,合约现值的变化。

假设某个期限点的 Delta 是 8,000 美元,可以粗略理解为:对应利率上升 1 bp,在其他条件近似不变时,组合价值约变化 8,000 美元。正负方向要结合风险结果的定义和头寸方向判断。

真实结果通常不是一个数字,而是一条按期限拆开的风险阶梯,例如 2 年、5 年、10 年各自贡献多少。这比“总 Delta 是多少”更有用,因为短端和长端利率可能朝不同方向变化。

Gamma:Delta 本身变化得有多快

Delta 是一阶敏感度,Gamma 是二阶敏感度。

如果 Gamma 很大,市场再多走一点,原来的 Delta 估计很快就会失真。这也是期权风险呈现非线性的原因:行情越剧烈,盈亏曲线越不像一条直线。

Vega:隐含波动率变化会怎样

Vega 衡量隐含波动率变化对价格的影响。

买入期权通常拥有正 Vega:市场预期未来波动更大时,期权的选择权更值钱;卖出期权通常相反。但实际风险会沿波动率曲面的不同期限、执行价分散,不能只看一个汇总数字。

Theta:时间流逝的成本或收益

Theta 描述其他条件近似不变时,时间过去一天对价格的影响。

期权买方常面对时间价值衰减,卖方则可能从衰减中受益。不过一旦市场发生大幅波动,Delta、Gamma 和 Vega 的影响可能远大于这一天的 Theta。

gs-quant 还提供现金流、隐含波动率以及权益、外汇、信用等资产类别的专用风险指标。指标名字相似,不代表冲击单位完全相同;阅读结果时要同时确认 measure 的官方定义、计价币种和聚合层级。

Portfolio:为什么组合风险不能只把价格相加

单笔交易解决后,下一步通常是组合。

python
from gs_quant.markets.portfolio import Portfolio

portfolio = Portfolio([swap], name="rates_book")

with PricingContext(is_batch=True):
    pv_future = portfolio.dollar_price()
    risk_future = portfolio.calc(risk.IRDelta)

portfolio_pv = pv_future.result().aggregate()
portfolio_delta = risk_future.result().aggregate()

价格层面,多笔交易的现值可以汇总;风险层面,更重要的是看它们如何相互抵消。

例如,一笔 10 年期收固定互换和一笔相近规模的付固定互换,总现值可能都不大,但 10 年利率风险可能明显对冲。与此同时,两笔交易的起息日、曲线、币种或抵押条款不同,又可能留下基差风险。

Portfolio 支持嵌套和路径切片,适合按交易台、策略、币种或账户组织头寸。PortfolioManagerPositionSetSecurityMaster 等模块进一步连接高盛的组合、持仓和证券主数据服务,但同样受权限约束。

历史定价:不是查收盘价,而是把同一份合同放回过去

对股票而言,“历史价格”经常只是读取一列行情;对衍生品而言,事情复杂得多。

一笔期权在不同历史日期有不同的剩余期限、标的价格、利率和波动率曲面。历史定价需要把同一份交易条款放到过去的市场环境里,重新计算每一天的价值。

python
from gs_quant.markets import HistoricalPricingContext

start = dt.date(202661)
end = dt.date(2026630)

with HistoricalPricingContext(
    start,
    end,
    is_batch=True,
    show_progress=True
):
    history_future = swap.price()

price_series = history_future.result()

适合做:

历史盈亏重估;

风险随时间的变化分析;

情景复盘;

回测中的逐日估值。

但“历史重估”不等于真实可交易收益。要得到可信的策略结果,还要处理买卖价差、交易成本、滑点、流动性、融资、保证金和实际可成交规模。

数据与时间序列:最容易在本地发挥价值的部分

gs_quant.timeseries 提供大量面向 pandas.Series 的函数,包括收益率、波动率、相关性、Beta、夏普比率、最大回撤、日期对齐和插值等。

这部分适合没有机构权限的开发者学习和使用:只要输入是本地已有的时间序列,许多纯计算函数就能直接运行。

python
import pandas as pd
from gs_quant.timeseries import max_drawdown, volatility

prices = pd.Series(
    [10010210198103],
    index=pd.date_range("2026-01-01", periods=5)
)

vol = volatility(prices)
drawdown = max_drawdown(prices)

两个概念可以这样理解:

波动率衡量收益“抖得有多厉害”,常被当作风险强度;

最大回撤衡量从阶段高点跌到随后低点的最深幅度,更贴近投资者真实承受的亏损体验。

Dataset 则是另一回事。负责查询高盛及接入的数据集,通常需要有效 Session、数据订阅和对应 entitlement。不要把“timeseries 函数可以处理本地数据”误写成“所有 GS 数据都能免费获取”。

回测框架:把策略拆成触发器、动作和引擎

gs-quant 的回测不是一个固定模板,而是一套描述策略的语言。核心对象可以用交易系统的日常流程理解:

Trigger:什么时候检查并触发规则;

Action:触发后买什么、卖什么或如何对冲;

Strategy:初始持仓加上一组触发规则;

Engine:用什么计算方式把策略沿历史时间推进;

Backtest:保存逐日持仓、风险和结果。

GS Quant 回测框架与路径依赖流程

假设策略是“每个工作日卖出一笔一个月后到期的美元利率跨式期权”,系统需要逐日回答:

1.今天是否到达触发日?

2.如果触发,新增哪一笔交易?

3.旧交易是否到期?

4.当前组合的价格、Delta、Vega 是多少?

5.如果风险超过阈值,是否执行对冲?

这是路径依赖:今天的持仓取决于过去发生过什么,不能只用一条静态价格序列代替。

官方框架提供 GenericEnginePredefinedAssetEngine 和

EquityVolEngine 等实现。GenericEngine 覆盖面较广,并以 gs-quant 风险 API 作为默认计算来源;专用引擎则针对特定资产或任务优化。

回测结果可以用于研究,但不能直接视为可实现收益。衍生品策略尤其容易受到波动率曲面、估值惯例、交易成本和流动性的影响。一个没有费用、没有滑点、每天都能按理论价成交的回测,往往只是“理想实验”,不是可交易结论。

情景分析:比“预测明天”更实用

风险管理经常不问“明天一定会怎样”,而问:

如果整条利率曲线上移 50 bp,会亏多少?

如果短端利率上升、长端下降,会怎样?

如果股价下跌 10%,同时隐含波动率上升 5 个百分点,会怎样?

OverlayMarket 和场景相关模块用于在基准市场之上施加冲击,再重新计算价格和风险。

和 Delta 的区别在于:

Delta 主要描述局部、小幅变化下的一阶近似;

情景分析可以组合更大、更复杂、甚至非平行的市场变化;

对带期权的非线性组合,大幅冲击下重新定价通常比简单乘 Delta 更可靠。

从源码看,为什么像机构系统

gs-quant 的整体架构可以概括为“本地建模,远端计算,结果回到 Python”:

Instrument 合同对象 → PricingContext 估值环境 → GsSession 请求通道 → 定价/风险服务 → 带元数据的结果对象

    GS Quant 从合同对象到风险结果的技术调用链

以下几个设计点尤其值得关注

1. 强类型的合同对象

金融工具使用 dataclass、枚举和统一基类描述经济条款。相比到处传字典,类型化对象更容易发现币种、日期、买卖方向和字段名称错误。

2. 上下文统一注入估值条件

估值日、市场位置、抵押条款、异步和批处理方式放在 PricingContext 中,不必在每一次 price() 或 calc() 调用里重复传递。

上下文还会收集同一代码块中的计算,统一派发。对大组合而言,减少请求次数通常比微调某一行 Python 更重要。

3. 序列化与传输层

本地对象会被序列化后发送给服务端。项目依赖中可以看到 dataclasses_jsonmsgpackhttpxrequests 和 websockets 等组件,分别服务于对象转换、紧凑数据传输、HTTP 请求和实时通信等场景。

4. 结果不只是一个浮点数

风险结果可能是标量、序列或 DataFrame,还会携带风险键、计价单位、市场信息和错误状态。FloatWithInfoSeriesWithInfoDataFrameWithInfoPortfolioRiskResult 等类型,解决的是“这个数字从哪里来、用什么单位、对应哪笔交易和哪种冲击”。

在真实风控系统里,可追溯性和数值本身同样重要。

5. 批处理与可观测性

官方文档指出,普通 HTTP 计算请求存在时限;预计超过该时限的任务应使用 is_batch=True。项目同时引入缓存开关、进度显示和 OpenTelemetry 追踪,以便处理更长、更复杂的计算链路。

Skills 与 MCP:让 AI 调用能力,但不会绕过金融权限

较新的 gs-quant 版本加入了 gs_quant.skills 和 gs_quant.mcp

Skills 提供面向编码助手的领域说明,可以安装到项目或全局环境:

bash
python -m gs_quant.skills install --global

MCP 相关依赖可以按需安装:

bash
pip install "gs-quant[mcp]"

作用是让 AI 工具更容易理解 gs-quant 的模块、发现可调用工具并组织工作流。需要强调的是:

AI 接入改变的是调用方式,不会改变数据许可、API scopes 和机构 entitlements。

没有定价权限的账户,不会因为接入 MCP 就突然拥有定价能力;没有数据订阅,也不能让 AI 绕过授权读取数据。

最容易踩的七个坑

1. 把“开源客户端”当成“高盛整套系统开源”。

开放仓库不包含全部后台模型、市场数据和生产基础设施。

2. 以为安装成功就能定价。

pip install 只安装 Python 包。定价、风险和受限数据还需要凭证与权限。

3. 混淆价格、美元价格和计价币种。

price()dollar_price() 以及参数化币种转换不是同一件事,必须检查结果单位。

4. 在 PricingContext 内直接把 Future 当数字用。

上下文中的计算先返回 Future,应在代码块退出后调用 .result()

5. 大组合仍走普通同步请求。

长历史或复杂风险计算应考虑 is_batch=True;需要主程序继续工作时,再配合 is_async=True

6. 只看汇总风险,不看期限和因子分解。

总 Delta 接近零,不代表每个期限点都没有风险。

7. 把理论回测当成实盘收益。

交易成本、滑点、流动性、融资和保证金缺一不可。

适合谁,不适合谁

gs-quant 特别适合三类人:

有高盛机构权限,需要在 Python 中接入定价、风险、数据或组合服务的团队;

想研究机构如何抽象衍生品、风险和回测工作流的 Quant 与工程师;

已有本地数据,希望复用其时间序列与统计工具的研究者。

如果目标是“完全离线、无需任何机构账户,就在本机复刻高盛的生产级跨资产定价平台”,gs-quant 并不符合这个预期。

更准确的定位是:

gs-quant是一套公开、可读、可扩展的机构级量化 Python 接口与工作流框架;当你拥有相应权限时,又是连接高盛定价、风险和数据服务的客户端。

建议的学习顺序

不要一上来就啃完整 API 索引。按下面的顺序更容易建立整体认识:

1.安装包,先运行本地 timeseries 函数;

2.阅读 instrument,理解交易条款如何对象化;

3.研究 resolve()price() 和 calc() 的调用链;

4.用 PricingContext 一次提交多项风险计算;

5.把单笔交易放进 Portfolio,观察风险如何聚合和抵消;

6.再进入 HistoricalPricingContext、场景和回测;

7.最后阅读 session.pymarkets/core.pyrisk/results.py 与回测引擎源码。

gs-quant 最值得学习的,不是某一个函数,而是一套把金融合同、市场环境、计算任务和风险结果分开的设计方法。

当这四层被拆清楚,衍生品不再是一团神秘公式,代码也不再只是 API 调用。会看到一条完整链路:交易条款如何被标准化,市场数据如何进入估值,价格如何拆成风险,策略又如何沿历史路径演化。

这才是 gs-quant 真正开放出来的东西。

—— 如此才是

把复杂的技术,讲成你真正能用上的生产力

终端文件管理天花板!superfile 17.8k Stars 现代 TUI 神器:多面板·视频预览·插件扩展 + 高效使用 + 源码构建

软件实现多机键鼠+剪贴板共享,QUIC加密低延迟边沿切换,开源神器MyKVM

Rust版tmux来了!RMUX原生跨平台+类型SDK+浏览器加密共享

2026 开源设计工具最强黑马!OpenPencil 7MB AI 原生编辑器:全编程接口 + P2P 协作 + Figma 兼容深度测评

OpenTUI:Zig原生高性能终端 UI 框架如何用 Flexbox + Tree-sitter + React/Solid 声明式 API 重新定义 TUI 开发

Sniffnet v1.5.0 :Rust 打造的跨平台网络流量监控神器,完整功能 + 高阶实战技巧

ytDownloader:开源跨平台视频音频下载神器,深度技术解析 + 高效使用全指南(支持上百网站、硬件加速压缩、智能播放列表)

Paperclip:开源「AI agent公司操作系统」70k Stars爆火!自3月以来功能暴增、架构升级全记录 | 源码深度解析 + 高效部署与实战指南

40k+ Stars 开源神器 LosslessCut:无损视频音频剪辑的瑞士军刀 | 功能全解 + 高效用法 + 源码架构 + 实战指南

Clypra开源视频编辑器:Tauri+React专业多轨时间线实现CapCut付费功能免费替代,源码构建(含100级Undo与非破坏性剪辑)

glint:终端「信息中枢」!Rust + ratatui 打造的键盘驱动 TUI 仪表盘,一屏掌控股票/加密货币/邮件/日历/新闻/天气/图库/笔记/系统资源

把同声传译装进口袋,旅行、出差、跨境交流莫慌莫慌,Native式交流无障碍 

零基础也能玩转卫星!开源Ground Station + SDR 打造个人地面站全攻略

OpenClaw & Hermes刷屏后,GitHub  Mercury Agent如何打动用户? 灵魂驱动+权限铁闸+24/7永动 vs 两大竞品

苹果M系列芯片的福音!无需H100、无需云GPU,本地MacBook就能微调Gemma 4多模态模型

开源Minecraft终极杀手!12.7K星GitHub神器Luanti(原Minetest)完整中文攻略:零基础安装、2800+模组随便玩、服务器+源码编译

AI 直接操控 Unity/Godot/Unreal 编辑器!用 OpenClaw + TomLeeLive 插件,聊天就能把你的游戏梦想变成现实

开源项目Paseo,AI编码代理跨设备统一指挥中心:统管Claude Code、Codex、OpenCode(以及Copilot、Pi等)
老婆/女朋友每天早上纠结45分钟穿什么?GitHub 开源AI衣柜神器 Wardrowbe 彻底解放!完整自托管安装+使用教程
Notebook LM平替,开源Open Notebook:隐私零泄露、18+AI模型随意切、1-4人定制播客秒生成
30MB Rust无头浏览器Obscura:击败Chrome、V8真实JS+CDP全兼容,AI Agent与爬虫的隐形核武器
Rust重写的jcode:性能碾压Cursor Claude Code 139倍的下一代Coding Agent Harness,人类级内存图谱+多会话Swarm
Warp开源震撼发布!5年Rust GPU终端+Oz Agentic开发环境完整拆解:功能全览、源码编译教程、核心架构深度解析 
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-24 05:04:20 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/873013.html
  2. 运行时间 : 0.305415s [ 吞吐率:3.27req/s ] 内存消耗:4,639.45kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=3f1b9146d3cfde1ed2fa522c0efc9895
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001132s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001556s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.040805s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.001016s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001606s ]
  6. SELECT * FROM `set` [ RunTime:0.000660s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001483s ]
  8. SELECT * FROM `article` WHERE `id` = 873013 LIMIT 1 [ RunTime:0.002454s ]
  9. UPDATE `article` SET `lasttime` = 1784840660 WHERE `id` = 873013 [ RunTime:0.054445s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000739s ]
  11. SELECT * FROM `article` WHERE `id` < 873013 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001074s ]
  12. SELECT * FROM `article` WHERE `id` > 873013 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001185s ]
  13. SELECT * FROM `article` WHERE `id` < 873013 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001576s ]
  14. SELECT * FROM `article` WHERE `id` < 873013 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.017523s ]
  15. SELECT * FROM `article` WHERE `id` < 873013 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.017415s ]
0.307168s