当前位置:首页>python>用 Python 复盘一个真实的量化交易账户:信息比率、主动管理与行为偏差分析

用 Python 复盘一个真实的量化交易账户:信息比率、主动管理与行为偏差分析

  • 2026-07-02 14:48:19
用 Python 复盘一个真实的量化交易账户:信息比率、主动管理与行为偏差分析

用 Python 揭秘均值回归策略:你的收益从何而来?

2026年重磅升级已全面落地!欢迎加入专注财经数据与量化投研的【数据科学实战】知识星球!您将获取持续更新的《财经数据宝典》与《量化投研宝典》,双典协同提供系统化指引;星球内含 350 篇以上独有高质量文章,深度覆盖策略开发、因子分析、风险管理等核心领域,内容基本每日更新;同步推出的「量化因子专题教程」系列(含完整可运行代码与实战案例),系统详解因子构建、回测与优化全流程,并实现日更迭代。我们持续扩充独家内容资源,全方位赋能您的投研效率与专业成长。无论您是量化新手还是资深研究者,这里都是助您少走弯路、事半功倍的理想伙伴,携手共探数据驱动的投资未来!

引言

最近读到一篇非常有意思的文章:一位交易者用 8 个月时间运行了一个模拟交易账户,最终算出信息比率(Information Ratio)高达 1.62——远超机构投资者公认的 1.0"卓越"门槛。

作为 Python 学习者,我们完全可以用代码把这篇文章中的每一个关键指标"复刻"出来。今天这篇推文,就带你一步一步用 Python 实现:

  • • 主动管理基本定律(Fundamental Law of Active Management)的拆解计算
  • • 交易统计指标(胜率、盈亏比、利润因子)的验证
  • • 行为偏差(处置效应)的可视化检测

无论你是对量化金融感兴趣,还是想找一个真实场景练手 Python,这篇文章都值得收藏。


一、什么是信息比率(IR)?

信息比率衡量的是每承担一单位主动风险,能获得多少主动收益。公式为:

IR = 主动收益 / 跟踪误差

其中:

  • • 主动收益(Active Return):组合收益率减去基准收益率
  • • 跟踪误差(Tracking Error):主动收益的标准差,衡量主动风险的大小

在机构投资领域,IR 高于 0.5 被认为是"良好",高于 1.0 被认为是"卓越"。

原文中的这个组合,年化主动收益为 7.0%,跟踪误差为 4.4%,我们来验证一下:

# 计算信息比率(IR)
active_return = 0.070   # 年化主动收益 7.0%
tracking_error = 0.044  # 年化跟踪误差 4.4%

ir = active_return / tracking_error
print
(f"信息比率(IR):{ir:.2f}")
# 输出:信息比率(IR):1.59

计算结果为 1.59,与原文中从另一个角度得出的 1.62 基本吻合(原文也提到两种方法结果互相印证)。


二、主动管理基本定律(FLAM)

信息比率还可以通过 Grinold-Kahn 主动管理基本定律 进行分解:

IR = IC × √Breadth × TC

三个因子分别代表:

  • • IC(信息系数):预测准确度,即你的交易信号有多"准"
  • • Breadth(广度):每年独立下注的次数
  • • TC(转换系数):从理论信号到实际执行的效率,考虑滑点、流动性等摩擦

原文给出的参数为:IC = 0.39,Breadth = 35,TC = 0.70。我们来计算:

import math

# 主动管理基本定律(Fundamental Law of Active Management)

ic = 0.39          # 信息系数:预测准确度
breadth = 35       # 广度:年化独立下注次数
tc = 0.70          # 转换系数:执行效率(模拟实盘摩擦后的折扣)

# 计算理论信息比率

ir_flam = ic * math.sqrt(breadth) * tc
print
(f"IC:{ic}")
print
(f"√Breadth:{math.sqrt(breadth):.2f}")
print
(f"TC:{tc}")
print
(f"FLAM 信息比率(IR):{ir_flam:.2f}")
# 输出:

# IC:0.39

# √Breadth:5.92

# TC:0.70

# FLAM 信息比率(IR):1.62

得到 IR = 1.62,与原文完全一致。

值得注意的是,如果 TC = 1.0(即纸上交易无摩擦),IR 将高达:

# 无摩擦情况下的理论 IR
ir_no_friction = ic * math.sqrt(breadth) * 1.0
print
(f"无摩擦理论 IR:{ir_no_friction:.2f}")
# 输出:无摩擦理论 IR:2.31

这说明真实交易中的摩擦会"吃掉"大约 30% 的信号质量。


三、用 Python 分析交易统计指标

原文给出了 23 笔已平仓交易的关键统计数据。我们用 Python 来验证这些数字之间的一致性,并模拟一个简单的交易数据集。

import numpy as np

# === 原文交易统计 ===

total_trades = 23       # 总交易笔数
wins = 16               # 盈利笔数
losses = total_trades - wins  # 亏损笔数

# 计算胜率

win_rate = wins / total_trades
print
(f"胜率:{win_rate:.1%}")
# 输出:胜率:69.6%


# 盈亏比(平均盈利 / 平均亏损)

win_loss_ratio = 1.47   # 原文数据:平均盈利是平均亏损的 1.47 倍

# 利润因子 = (胜率 × 平均盈利) / (败率 × 平均亏损)

# 也等于 = (wins × avg_win) / (losses × avg_loss)

# = (wins / losses) × (avg_win / avg_loss)

# = (wins / losses) × win_loss_ratio

profit_factor_calc = (wins / losses) * win_loss_ratio
print
(f"利润因子(计算值):{profit_factor_calc:.2f}")
print
(f"利润因子(原文值):5.90")
# 输出:

# 利润因子(计算值):3.36

# 利润因子(原文值):5.90

这里我们发现一个有趣的问题:通过胜率和盈亏比简单相乘得到的利润因子(3.36)与原文声称的 5.90 存在较大差异。这说明原文中的"平均盈利是平均亏损的 1.47 倍"是中位数或简单均值概念,而利润因子使用的是总盈利 / 总亏损,两者在分布不均匀时可以产生差异——比如有几笔大赢家拉高了总盈利。

我们可以用 Python 模拟一组满足所有约束条件的交易:

np.random.seed(42)

# 模拟一组交易数据来逼近原文的利润因子 5.90

# 假设平均亏损为 1 个单位

avg_loss = 1.0

# 生成 7 笔亏损(金额围绕 avg_loss 波动)

loss_amounts = np.random.uniform(0.5, 1.5, size=losses)
total_loss = loss_amounts.sum()

# 利润因子 = 总盈利 / 总亏损 = 5.90

target_profit_factor = 5.90
total_win_needed = target_profit_factor * total_loss

# 生成 16 笔盈利,使总盈利达到目标

# 引入右偏分布(少数大赢家)

win_amounts = np.random.exponential(scale=1.0, size=wins)
win_amounts = win_amounts / win_amounts.sum() * total_win_needed

print
(f"--- 模拟交易数据 ---")
print
(f"总亏损:{total_loss:.2f}")
print
(f"总盈利:{total_win_needed:.2f}")
print
(f"利润因子:{total_win_needed / total_loss:.2f}")
print
(f"平均盈利:{win_amounts.mean():.2f}")
print
(f"平均亏损:{loss_amounts.mean():.2f}")
print
(f"盈亏比:{win_amounts.mean() / loss_amounts.mean():.2f}")

这个模拟可以帮助我们理解:利润因子、胜率和盈亏比三者之间的关系并非简单的乘法,分布形态(特别是右偏性)会显著影响总量比值。


四、Beta 与 Alpha:用回归分离市场因素

原文提到组合的 Beta 仅为 0.08,这意味着超额收益几乎与大盘无关。在 Python 中,我们通常用线性回归来计算 Beta:

from numpy.polynomial.polynomial import polyfit

# 模拟 8 个月的月度数据

# 组合月度超额收益(相对于无风险利率)

portfolio_excess = np.array([0.025, 0.031, -0.005, 0.042, 0.018, 0.035, -0.010, 0.028])
# S&P 500 月度超额收益

benchmark_excess = np.array([0.020, 0.035, 0.015, -0.010, 0.025, 0.040, -0.030, 0.022])

# 用最小二乘法拟合:portfolio = alpha + beta × benchmark

# np.polyfit 中 deg=1 表示一次多项式(线性回归)

beta, alpha = np.polyfit(benchmark_excess, portfolio_excess, deg=1)

print
(f"Alpha(月度):{alpha:.4f}")
print
(f"Beta:{beta:.4f}")
# 低 Beta 意味着组合收益与市场走势相关性很低

# 原文中 Beta = 0.08,说明超额收益几乎是"纯 Alpha"

当 Beta 接近零时,说明你的收益来源主要是选股和择时能力(Alpha),而不是简单地跟随市场上涨(Beta 暴露)。


五、检测处置效应:持仓时间的行为偏差

原文揭示了一个经典的行为金融学现象——处置效应(Disposition Effect):亏损的交易平均持有 59 天,而盈利的交易只持有 43 天。人们倾向于"割肉太慢,止盈太快"。

我们可以用 Python 来可视化这种偏差:

import matplotlib.pyplot as plt

# 设置中文字体(如果在本地运行需要配置,这里用英文标签替代)

# 盈利交易和亏损交易的持仓天数

np.random.seed(0)
winner_days = np.random.normal(loc=43, scale=10, size=16).clip(min=5)  # 盈利交易
loser_days = np.random.normal(loc=59, scale=12, size=7).clip(min=10)   # 亏损交易

fig, ax = plt.subplots(figsize=(8, 5))

# 绘制箱线图对比

bp = ax.boxplot(
    [winner_days, loser_days],
    labels=['Winners (盈利)', 'Losers (亏损)'],
    patch_artist=True,
    boxprops=dict(facecolor='lightblue'),
    medianprops=dict(color='red', linewidth=2)
)

ax.set_ylabel('Holding Days (持仓天数)')
ax.set_title('Disposition Effect: Winners vs Losers Holding Period')
ax.axhline(y=43, color='green', linestyle='--', alpha=0.5, label='Avg Winner: 43 days')
ax.axhline(y=59, color='red', linestyle='--', alpha=0.5, label='Avg Loser: 59 days')
ax.legend()

plt.tight_layout()
plt.savefig('disposition_effect.png', dpi=150)
plt.show()
print
("处置效应可视化完成:亏损交易平均多持有 16 天")

解决方案很简单:设置严格的止损规则。不需要改变选股策略,只需要缩短亏损交易的持有时间,就能显著提升整体 IC 和主动收益。


六、完整案例:构建你自己的交易分析仪表板

下面我们把上面所有的分析整合成一个完整的 Python 脚本:

import math
import
 numpy as np

def
 calculate_ir_from_returns(active_return: float, tracking_error: float) -> float:
    """
    通过主动收益和跟踪误差计算信息比率

    参数:
        active_return: 年化主动收益(小数形式)
        tracking_error: 年化跟踪误差(小数形式)

    返回:
        信息比率
    """

    return
 active_return / tracking_error


def
 calculate_ir_from_flam(ic: float, breadth: int, tc: float) -> float:
    """
    通过主动管理基本定律(FLAM)计算信息比率

    参数:
        ic: 信息系数(预测准确度)
        breadth: 年化独立下注次数
        tc: 转换系数(0 到 1 之间)

    返回:
        信息比率
    """

    return
 ic * math.sqrt(breadth) * tc


def
 analyze_trades(wins: int, losses: int, avg_win: float, avg_loss: float) -> dict:
    """
    分析交易统计指标

    参数:
        wins: 盈利交易笔数
        losses: 亏损交易笔数
        avg_win: 平均盈利金额
        avg_loss: 平均亏损金额

    返回:
        包含各项指标的字典
    """

    total = wins + losses
    win_rate = wins / total
    win_loss_ratio = avg_win / avg_loss
    profit_factor = (wins * avg_win) / (losses * avg_loss)

    return
 {
        "总交易数"
: total,
        "胜率"
: f"{win_rate:.1%}",
        "盈亏比"
: f"{win_loss_ratio:.2f}×",
        "利润因子"
: f"{profit_factor:.2f}×",
    }


def
 check_disposition_effect(avg_winner_days: float, avg_loser_days: float) -> str:
    """
    检测是否存在处置效应

    参数:
        avg_winner_days: 盈利交易平均持仓天数
        avg_loser_days: 亏损交易平均持仓天数

    返回:
        诊断结论
    """

    if
 avg_loser_days > avg_winner_days:
        diff = avg_loser_days - avg_winner_days
        return
 f"检测到处置效应:亏损交易比盈利交易平均多持有 {diff:.0f} 天"
    return
 "检测到明显的处置效应"


# === 主程序 ===

if
 __name__ == "__main__":
    print
("=" * 50)
    print
("量化交易账户分析报告")
    print
("=" * 50)

    # 1. 信息比率(两种方法)

    ir1 = calculate_ir_from_returns(0.070, 0.044)
    ir2 = calculate_ir_from_flam(ic=0.39, breadth=35, tc=0.70)

    print
(f"\n【信息比率】")
    print
(f"  收益/风险法:IR = {ir1:.2f}")
    print
(f"  FLAM 分解法:IR = {ir2:.2f}")

    # 2. 交易统计

    # 注意:此处 avg_win 和 avg_loss 为模拟值

    stats = analyze_trades(wins=16, losses=7, avg_win=2.58, avg_loss=1.0)
    print
(f"\n【交易统计】")
    for
 key, value in stats.items():
        print
(f"  {key}{value}")

    # 3. 处置效应检测

    disposition = check_disposition_effect(avg_winner_days=43, avg_loser_days=59)
    print
(f"\n【行为偏差检测】")
    print
(f"  {disposition}")

    # 4. Alpha / Beta 分析

    print
(f"\n【风险分解】")
    print
(f"  组合收益:+26.8%")
    print
(f"  基准收益:+22.7%(S&P 500)")
    print
(f"  原始 Alpha:+4.1%")
    print
(f"  Beta:0.08(近似纯 Alpha)")

    print
(f"\n{'=' * 50}")
    print
("分析完毕。")

运行输出如下:

==================================================
量化交易账户分析报告
==================================================

【信息比率】
  收益/风险法:IR = 1.59
  FLAM 分解法:IR = 1.62

【交易统计】
  总交易数:23
  胜率:69.6%
  盈亏比:2.58×
  利润因子:5.90×

【行为偏差检测】
  检测到处置效应:亏损交易比盈利交易平均多持有 16 天

【风险分解】
  组合收益:+26.8%
  基准收益:+22.7%(S&P 500)
  原始 Alpha:+4.1%
  Beta:0.08(近似纯 Alpha)

==================================================
分析完毕。

总结

这篇文章基于一个真实的 8 个月模拟交易账户数据,用 Python 带你完成了以下分析:

  1. 1. 信息比率的两种计算方式:从收益/风险角度和从 FLAM 分解角度分别验证,两者高度一致,互相印证
  2. 2. 主动管理基本定律的拆解:IC(预测精度)、Breadth(下注广度)和 TC(执行效率)三个因子如何共同决定一个组合的信息比率
  3. 3. 交易统计指标的验证:胜率、盈亏比和利润因子之间的关系,以及分布形态对汇总指标的影响
  4. 4. Beta 回归分析:用线性回归将组合收益分解为 Alpha 和 Beta,判断超额收益的来源
  5. 5. 处置效应的检测与可视化:通过对比盈利和亏损交易的持仓时间,发现行为偏差并给出改进建议

关键启示:你不需要每笔都赚钱,你需要的是胜率略高于随机、盈利略大于亏损、并且严格执行止损纪律。这就是主动管理基本定律告诉我们的核心逻辑。

对 Python 学习者来说,量化金融是一个绝佳的练手场景——它涉及数学计算、数据分析、可视化和软件工程,每一个环节都能帮你提升编程能力。


参考文章

加入专注于财经数据与量化投研的知识星球【数据科学实战】,获取本文完整研究解析、代码实现细节。

财经数据与量化投研知识社区

2026年全面升级已落地!【数据科学实战】知识星球核心权益如下:

  1. 1. 双典系统赋能:获赠《财经数据宝典》与《量化投研宝典》完整文档,凝练多年实战经验,构建系统化知识框架;
  2. 2. 量化因子日更教程(2026重磅新增):每日更新「量化因子专题教程」,配套完整可运行代码与实战案例,深度拆解因子构建、回测与优化全流程;
  3. 3. 量化文章专题教程库:300+篇星球独有高质量教程式文章,系统覆盖策略开发、因子研究、风险管理等核心领域,内容基本每日更新,并配套精选学习资料与实战参考;
  4. 4. 量化投研实战课程:赠送《AKQuant-入门及实战》《PyBroker-入门及实战》视频课程,手把手教学,快速掌握量化策略开发技能;
  5. 5. 财经数据支持:定期更新国内外财经数据,为策略研发提供精准、可靠的数据基础;
  6. 6. 顶尖学者与行业专家分享:年度邀请学术界博士与业界资深专家开展前沿论文精讲与实战案例分享,不少于4场,直击研究前沿与产业实践;
    专家直连答疑:与核心开发者及领域专家实时互动,高效解决投研实战难题;
  7. 7. 专业社群与专属福利:加入高质量交流社群,获取课程折扣及更多独家资源。

星球已沉淀丰富内容生态——涵盖量化文章专题教程库、因子日更系列、高频数据集、PyBroker实战课程、专家深度分享与实时答疑服务。无论您是初探量化的学习者,还是深耕领域的从业者,这里都是助您少走弯路、高效成长的理想平台。诚邀加入,共探数据驱动的投资未来!

好文推荐

1. 用 Python 打造股票预测系统:Transformer 模型教程(一)

2. 用 Python 打造股票预测系统:Transformer 模型教程(二)

3. 用 Python 打造股票预测系统:Transformer 模型教程(三)

4. 用 Python 打造股票预测系统:Transformer 模型教程(完结)

5. 揭秘隐马尔可夫模型:因子投资的制胜武器

6. YOLO 也能预测股市涨跌?计算机视觉在股票市场预测中的应用

7. 金融 AI 助手:FinGPT 让你轻松掌握市场分析

8. 量化交易秘籍:为什么专业交易员都在用对数收益率?

9. Python 量化投资利器:Ridge、Lasso 和 Elastic Net 回归详解

10. 掌握金融波动率模型:完整 Python 实现指南

好书推荐

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-04 12:30:34 HTTP/2.0 GET : https://f.mffb.com.cn/a/488470.html
  2. 运行时间 : 0.111240s [ 吞吐率:8.99req/s ] 内存消耗:4,719.85kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=30306a48c82126982a02bcfd2fd7672b
  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.000506s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000748s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000343s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000253s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000499s ]
  6. SELECT * FROM `set` [ RunTime:0.000200s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000490s ]
  8. SELECT * FROM `article` WHERE `id` = 488470 LIMIT 1 [ RunTime:0.002027s ]
  9. UPDATE `article` SET `lasttime` = 1783139434 WHERE `id` = 488470 [ RunTime:0.012274s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000382s ]
  11. SELECT * FROM `article` WHERE `id` < 488470 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000534s ]
  12. SELECT * FROM `article` WHERE `id` > 488470 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000338s ]
  13. SELECT * FROM `article` WHERE `id` < 488470 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000876s ]
  14. SELECT * FROM `article` WHERE `id` < 488470 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.004054s ]
  15. SELECT * FROM `article` WHERE `id` < 488470 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.015809s ]
0.112857s