当前位置:首页>python>《使用Python进行投资组合构建和分析》系列二:从 CAPM 到 Smart Beta 的完整知识地图

《使用Python进行投资组合构建和分析》系列二:从 CAPM 到 Smart Beta 的完整知识地图

  • 2026-07-02 23:31:07
《使用Python进行投资组合构建和分析》系列二:从 CAPM 到 Smart Beta 的完整知识地图

写在前面

资产管理领域有一个长期争论:超额收益究竟来自哪里?是运气、技艺,还是系统性地持有了某些"风险因子"的敞口?

EDHEC《Advanced Portfolio Construction and Analysis with Python》课程的第一个模块,正面回应了这个问题——从单因子 CAPM 到 Fama–French 多因子模型,从风格分析到 Smart Beta 构建,全程配以可运行的 Python 代码。

核心洞见:每一个持仓,本质上都是一组因子暴露的叠加,加上一块特有风险(idiosyncratic risk)。


一、什么是"因子"?

因子(Factor)是解释资产收益截面差异与时序变化的系统性维度。按来源可分为三大类:

类别
定义
典型例子
宏观因子
不可直接交易的宏观变量
通胀、利率、GDP周期、油价冲击
风格因子
由股票特征构建的可交易因子
价值、规模、动量、质量、低波动
统计因子
PCA/ICA 从协方差矩阵中提取
第一主成分、第二主成分

五大经典风格因子速览:

  • • HML(价值):高账面市值比股票 − 低账面市值比股票的多空组合收益
  • • SMB(规模):小市值股票 − 大市值股票的多空组合收益差
  • • MOM(动量):过去 12 个月(跳过最近 1 月)收益最高的股票组合
  • • RMW(盈利):高营业利润率股票 − 低营业利润率股票(FF5 新增)
  • • CMA(投资):低资产增速股票 − 高资产增速股票(FF5 新增)

二、第一步:CAPM 单因子模型

CAPM 是理解因子模型的基石。它假设资产的全部系统性风险可由市场组合的单一 β 来捕捉:

核心含义:

  • • :资产对系统性风险的敏感度
  • • :扣除  敞口后的风险调整超额收益(若市场有效, 统计上应不显著区别于零)
  • • :市场因子对该资产收益的解释程度

Python 实现

import statsmodels.api as smimport pandas as pd# excess: 资产超额收益序列;mkt_rf: 市场风险溢价y = excess['AAPL'].dropna()X = mkt_rf.loc[y.index].rename('Mkt-RF')X = sm.add_constant(X)# Newey-West 稳健标准误(处理异方差与自相关)model = sm.OLS(y, X).fit(    cov_type='HAC',    cov_kwds={'maxlags'3})alpha = model.params['const']beta  = model.params['Mkt-RF']r2    = model.rsquaredprint(f"α = {alpha:.4f}  β = {beta:.4f}  R² = {r2:.3f}")print(model.summary())

实操提醒: 区分"样本内拟合"与"样本外有效性"——一个高  的模型并不意味着它在未来仍有预测力。


三、第二步:Fama–French 多因子模型

CAPM 被大量实证研究证伪——市值效应和账面市值比效应无法被单一 β 解释。多因子框架的演进历程如下:

CAPM (1964)  └── FF3 因子 (1993):+ SMB + HML        └── Carhart 四因子 (1997):+ MOM              └── FF5 因子 (2015):+ RMW + CMA

Carhart 四因子回归方程:

Python 实现

import pandas_datareader as pdrimport statsmodels.api as sm# 下载 Fama-French 月度因子数据(需翻墙或本地存储)factors = pdr.get_data_famafrench('F-F_Research_Data_Factors', start='2018')[0] / 100# 转为小数mom = pdr.get_data_famafrench('F-F_Momentum_Factor', start='2018')[0] / 100factors['MOM'] = mom['Mom   ']# 运行四因子回归factor_cols = ['Mkt-RF''SMB''HML''MOM']X = sm.add_constant(factors[factor_cols])result = sm.OLS(fund_excess, X).fit(    cov_type='HAC', cov_kwds={'maxlags'3})print(result.summary())# 提取关键指标exposures = result.params.drop('const')t_stats   = result.tvalues.drop('const')alpha_ann = result.params['const'] * 12# 月度 → 年化

如何解读回归结果:

指标
含义
截距 
风格外超额收益;是否显著区别于零是判断主动能力的关键
系数 
对第  个因子的暴露强度
全部因子对该基金收益的联合解释度
t 统计量
暴露的统计显著性;绝对值 > 2 通常认为显著

四、第三步:风格分析(RBSA)

给投资者一份基金净值序列,不看持仓,能推断出它的风格权重吗?William Sharpe 1992 年提出的 RBSA(Return-Based Style Analysis) 正是为此而生——用带约束的回归,将基金收益"分解"到一组风格指数上。

优化问题的形式:

这两个约束使得权重可被解释为"风格配置比例",截距(残差方差)则捕捉主动管理成分。

Python 实现(scipy 二次规划)

import numpy as npfrom scipy.optimize import minimizedefrbsa(fund_ret, style_ret):"""    fund_ret  : 1D array,基金超额收益序列    style_ret : 2D array (T × K),风格指数收益矩阵    返回: K 维权重向量    """    K = style_ret.shape[1]# 目标:最小化残差平方和defobjective(w):return np.sum((fund_ret - style_ret @ w) ** 2)    constraints = [        {'type''eq''fun'lambda w: w.sum() - 1},   # 权重和为 1    ]    bounds = [(01)] * K  # 权重非负    w0 = np.ones(K) / K    # 初始等权    res = minimize(objective, w0, bounds=bounds, constraints=constraints,                   method='SLSQP')return res.x# 示例调用style_names = ['Value''Growth''Small''Large''Bond']weights = rbsa(fund_excess.values, style_matrix.values)for name, w inzip(style_names, weights):print(f"{name:10s}{w:.1%}")# 输出示例:# Value     : 32.0%# Growth    : 28.0%# Small     : 15.0%# Large     : 18.0%# Bond      :  7.0%

应用场景:

  • • 识别基金的风格漂移(Style Drift)
  • • 基金尽职调查:宣称"价值风格"但实际暴露在成长因子上
  • • 业绩归因:超额收益来自风格配置还是选股

五、第四步:市值加权的局限与 Smart Beta

标准指数(如沪深300、标普500)采用流通市值加权。这在理论上有 CAPM 支撑,但现实中暴露出两个明显弱点:

缺陷一:高度集中

以标普500为例,前10只股票(约占总数2%)的权重常超过30%,HHI 集中度远高于等权组合。

缺陷二:价格驱动权重

市值 = 价格 × 股数。股价涨越多,权重越高——相当于系统性地"追涨杀跌",潜在动量偏置与估值偏离。

五种加权方式对比

加权方式
HHI 集中度
主要优势
主要劣势
市值加权
容量大、成本低、理论自洽
集中于超大盘;价格驱动偏置
等权
低(= 1/n)
分散化充分;历史有规模溢价
换手率高;小盘容量受限
基本面加权
反转价格偏差;有价值倾斜
依赖会计数据质量
最小方差
真实波动率最低
对协方差估计敏感
风险平价
风险贡献均衡;对相关性稳健
需要杠杆才能匹配市场收益

Python 实现:HHI 集中度 + 风险平价

import numpy as npfrom scipy.optimize import minimize# ── HHI(赫芬达尔指数)──────────────────────────────defhhi(weights):"""HHI 越接近 1 越集中,等权时 HHI = 1/n"""return (np.array(weights) ** 2).sum()n = 300# 假设300只成分股cap_w = np.random.dirichlet(np.ones(n) * 0.3)  # 模拟市值分布ew    = np.ones(n) / n                          # 等权print(f"市值加权 HHI : {hhi(cap_w):.4f}")print(f"等权     HHI : {hhi(ew):.4f}  (= 1/n = {1/n:.4f})")# ── 风险平价(Risk Parity)──────────────────────────defrisk_parity(cov):"""使各资产风险贡献相等"""    n = cov.shape[0]defobjective(w):        port_var = w @ cov @ w        rc = w * (cov @ w) / port_var   # 各资产风险贡献比例return np.sum((rc - 1/n) ** 2)  # 目标:风险贡献均等    bounds = [(1e-61)] * n    constraints = {'type''eq''fun'lambda w: w.sum() - 1}    w0 = np.ones(n) / n    res = minimize(objective, w0, bounds=bounds,                   constraints=constraints, method='SLSQP')return res.x# 使用历史收益率协方差矩阵cov_matrix = returns.cov().values  # (n × n)rp_weights = risk_parity(cov_matrix)print(f"\n风险平价 HHI : {hhi(rp_weights):.4f}")

六、常见坑与实操注意事项

理论转落地,有几处容易踩坑的地方值得特别提醒。

① 样本窗口过短估计因子暴露至少需要 36 个月以上的月度数据,窗口过短会导致 β 估计极不稳健,换手率虚高。滚动回归时窗口长度的选择是稳健性与时效性之间的 trade-off。

② 数据频率与对齐日度与月度混用、节假日缺失处理不当,都会引入幽灵 alpha。务必先统一时间轴,再做回归。

# 正确做法:先对齐,再计算aligned = pd.concat([fund_returns, factor_returns], axis=1).dropna()y = aligned.iloc[:, 0]X = aligned.iloc[:, 1:]

③ 因子共线性SMB 与 HML 历史上的相关系数并不低,小样本下会导致系数剧烈波动。可考虑正交化(Gram-Schmidt)或 Ridge 正则化处理:

from sklearn.linear_model import Ridgeridge = Ridge(alpha=0.01, fit_intercept=True)ridge.fit(X_factors, y_fund)print("Ridge 系数:", ridge.coef_)

④ 忽略容量与成本等权策略在小盘股上的理论溢价,在规模化后往往因市场冲击成本消失殆尽。回测一定要加入合理的交易费率与滑点假设:

# 简单的单边交易成本扣除(假设 bps 为每次换手的单边成本)defnet_return(gross_ret, turnover, bps=10):    cost = turnover * bps / 10000return gross_ret - cost

七、完整知识框架总结

因子投资框架├── 因子识别│   ├── 宏观因子(不可交易)│   ├── 风格因子(可交易多空组合)│   └── 统计因子(PCA 提取)├── 因子模型│   ├── CAPM(单因子)│   ├── Fama-French 3因子│   ├── Carhart 4因子(+MOM)│   └── FF5(+RMW +CMA)├── 风格分析(RBSA)│   ├── 带约束回归:w ≥ 0, Σw = 1│   └── 应用:风格漂移检测、业绩归因└── Smart Beta 构建    ├── 等权(Equal Weight)    ├── 基本面加权(Fundamental Weight)    ├── 最小方差(Minimum Variance)    └── 风险平价(Risk Parity)

八、自学练习建议

  1. 1. 因子暴露估计:下载 Fama–French 月度数据,估计三支公募基金过去 5 年的因子暴露与年化 alpha,对比主动与被动基金的差异。
  2. 2. Smart Beta 对比:用 A 股数据构建等权与市值加权两组组合,对比年化收益、波动率、Sharpe 比率与 HHI 集中度。
  3. 3. RBSA 实战:选取一支宣称"价值风格"的基金,用 RBSA 验证其实际风格暴露是否与宣传一致。
  4. 4. Smart Beta 因子组合:构造"价值 + 质量"的简单多空组合,用四因子模型检验其 alpha 是否显著。

参考文献

  • • Fama, E. F., & French, K. R. (1993). Common risk factors in the returns on stocks and bonds. Journal of Financial Economics.
  • • Carhart, M. M. (1997). On persistence in mutual fund performance. Journal of Finance.
  • • Sharpe, W. F. (1992). Asset allocation: Management style and performance measurement. Journal of Portfolio Management.
  • • Ang, A. (2014). Asset Management: A Systematic Approach to Factor Investing. Oxford University Press.
  • • EDHEC Business School. Advanced Portfolio Construction and Analysis with Python, Coursera, Course 2, Module 1.

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 17:57:14 HTTP/2.0 GET : https://f.mffb.com.cn/a/489531.html
  2. 运行时间 : 0.141604s [ 吞吐率:7.06req/s ] 内存消耗:4,761.87kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=c6ccc9ba88c742ee8e843e779b04eddc
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000623s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000790s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.006075s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000330s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000633s ]
  6. SELECT * FROM `set` [ RunTime:0.000256s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000669s ]
  8. SELECT * FROM `article` WHERE `id` = 489531 LIMIT 1 [ RunTime:0.002066s ]
  9. UPDATE `article` SET `lasttime` = 1783072634 WHERE `id` = 489531 [ RunTime:0.004259s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000592s ]
  11. SELECT * FROM `article` WHERE `id` < 489531 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001673s ]
  12. SELECT * FROM `article` WHERE `id` > 489531 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.003120s ]
  13. SELECT * FROM `article` WHERE `id` < 489531 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004753s ]
  14. SELECT * FROM `article` WHERE `id` < 489531 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.014724s ]
  15. SELECT * FROM `article` WHERE `id` < 489531 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.022912s ]
0.145413s