当前位置:首页>python>用 Python 实现月度分红股票投资组合优化

用 Python 实现月度分红股票投资组合优化

  • 2026-01-30 00:31:56
用 Python 实现月度分红股票投资组合优化

欢迎加入专注于财经数据与量化投研的【数据科学实战】知识星球!在这里,您将获取持续更新的《财经数据宝典》和《量化投研宝典》,这两部宝典相辅相成,为您在量化投研道路上提供明确指引。 我们提供了精选的国内外量化投研的 250+ 篇高质量文章,并每日更新最新研究成果,涵盖策略开发、因子分析、风险管理等核心领域。 无论您是量化投资新手还是经验丰富的研究者,星球社区都能帮您少走弯路,事半功倍,共同探索数据驱动的投资世界!

引言

对于想要获得稳定收入的投资者来说,分红股票是一个不错的选择。但是,构建一个稳健的分红投资组合并不是简单地挑选高收益股票那么简单。今天我们来学习一种结合现代投资组合理论与机器学习技术的量化策略——使用 Ridge 正则化构建月度分红股票投资组合。

这篇文章将带你了解如何用 Python 实现这一策略,适合有一定 Python 基础并对量化投资感兴趣的读者。

核心问题:均值-方差优化的局限性

传统的均值-方差优化方法由 Harry Markowitz 在 1952 年提出,目标是在最大化预期收益的同时最小化投资组合的波动性。然而,这种方法有一个关键弱点:当使用有限的历史数据估计协方差矩阵时,矩阵会变得不稳定,小的估计误差可能导致极端、不切实际的投资组合权重。

解决方案:Ridge 正则化

Ridge 正则化通过添加惩罚项来解决这个不稳定性问题。惩罚项会抑制极端权重的出现,lambda 参数控制正则化的强度——更高的 lambda 值会产生更保守、更分散的投资组合。

关键创新点在于:我们不是随意选择 lambda,而是通过前向验证(Walk-Forward Analysis)来优化它。

投资标的:月度分红股票

策略关注 12 只以月度分红闻名的股票,包括:

  • REITs(房地产投资信托):Realty Income、STAG Industrial、LTC Properties
  • BDCs(商业发展公司):Main Street Capital、Gladstone Capital、Hercules Capital
  • 抵押贷款 REITs:AGNC Investment、ARMOUR Residential、Dynex Capital

这些标的提供了跨房地产、能源基础设施和特殊金融领域的多元化配置。

代码实现详解

1. 数据下载与处理

import numpy as np
import pandas as pd
import yfinance as yf
from datetime import datetime, timedelta
from typing import List, Tuple, Dict
from scipy.optimize import minimize
import warnings
warnings.filterwarnings('ignore')

classRidgeDividendPortfolio:
def__init__(self, lookback_days: int = 252):
# 回溯天数,默认一年(252 个交易日)
        self.lookback_days = lookback_days
# 月度分红股票列表
        self.tickers = [
'O''STAG''MAIN''GLAD''AGNC''NLY',
'PFLT''HTGC''ARR''LTC''PNNT''DX'
        ]

defdownload_data(self, start: str, end: str) -> Tuple[pd.DataFrame, Dict, Tuple]:
"""下载价格和分红数据"""
        print("正在从 Yahoo Finance 下载数据...")
        prices_dict = {}
        dividends_dict = {}

for ticker in self.tickers:
try:
                stock = yf.Ticker(ticker)
                hist = stock.history(start=start, end=end)
ifnot hist.empty:
# 处理时区,确保数据一致性
                    hist.index = pd.to_datetime(hist.index).tz_localize(None)
                    prices_dict[ticker] = hist['Close']
                    print(f"  {ticker}{len(hist)} 天")

# 获取分红数据
                    divs = stock.dividends
ifnot divs.empty:
                        divs.index = pd.to_datetime(divs.index).tz_localize(None)
                        divs = divs[(divs.index >= start) & (divs.index <= end)]
ifnot divs.empty:
                            dividends_dict[ticker] = pd.DataFrame({'dividend': divs})
except Exception as e:
                print(f"  {ticker}{e}")

# 合并价格数据,删除缺失值
        prices = pd.DataFrame(prices_dict).dropna()
        print(f"\n数据集: {len(prices)} 天 × {len(prices.columns)} 只股票")

return prices, dividends_dict

2. 计算总收益率

总收益率需要同时考虑价格变动和分红收入:

defcalc_total_returns(self, prices: pd.DataFrame, divs: Dict) -> pd.DataFrame:
"""计算包含分红的总收益率"""
    returns = pd.DataFrame(index=prices.index[1:], columns=prices.columns)

for ticker in prices.columns:
        prices_t = prices[ticker]
# 计算价格收益率
        rets = prices_t.pct_change()

# 如果有分红数据,将分红计入收益
if ticker in divs andnot divs[ticker].empty:
            div_series = divs[ticker]['dividend']
for div_date in div_series.index:
if div_date in prices_t.index:
                    idx = prices_t.index.get_loc(div_date)
if idx > 0:
# 使用前一天的价格计算分红收益率
                        prev_price = prices_t.iloc[idx - 1]
if div_date in rets.index and prev_price > 0:
                            rets.loc[div_date] += div_series[div_date] / prev_price

        returns[ticker] = rets

return returns.astype(float).dropna()

3. Ridge 优化核心算法

defridge_optimize(self, returns: np.ndarray, lam: float, gamma: float = 1.0) -> np.ndarray:
"""
    Ridge 正则化投资组合优化

    参数:
        returns: 收益率矩阵
        lam: 正则化参数 lambda
        gamma: 风险厌恶系数

    返回:
        最优权重向量
    """

    T, N = returns.shape
# 计算均值和协方差矩阵
    mu = np.mean(returns, axis=0)
    Sigma = np.cov(returns, rowvar=False)
# 添加 Ridge 正则化项到协方差矩阵
    Sigma_ridge = Sigma + lam * np.eye(N)

# 定义目标函数:最小化风险 + 正则化惩罚
defobjective(w):
return (gamma/2) * (w @ Sigma_ridge @ w) + (lam/2) * (w @ w)

# 约束条件:权重之和为 1
    constraints = {'type''eq''fun'lambda w: np.sum(w) - 1.0}
# 边界条件:权重在 0 到 1 之间(只做多)
    bounds = [(01for _ in range(N)]
# 初始权重:等权分配
    w0 = np.ones(N) / N

    result = minimize(objective, w0, method='SLSQP', bounds=bounds, constraints=constraints)
return result.x if result.success else w0

4. 前向验证优化 lambda 参数

defwfa_lambda(self, returns: pd.DataFrame, lam_range: np.ndarray) -> float:
"""
    使用前向验证(Walk-Forward Analysis)优化 lambda 参数
    每 6 个月为一个验证窗口
    """

    print("\n使用 WFA 优化 λ(6 个月窗口)...")
    dates = returns.index
    n = len(dates)
    window_days = 126# 约 6 个月的交易日

    best_lam, best_sharpe = None, -np.inf

for lam in lam_range:
        sharpes = []
        train_start = self.lookback_days

# 滚动窗口验证
while train_start + window_days < n:
            val_start = train_start
            val_end = min(train_start + window_days, n)
            val_rets = []

for t in range(val_start, val_end):
if t < self.lookback_days:
continue
# 使用 T-1 时刻的数据进行优化(避免前视偏差)
                data_t1 = returns.iloc[t - self.lookback_days:t].values
                weights = self.ridge_optimize(data_t1, lam)
                val_rets.append(np.dot(weights, returns.iloc[t].values))

if val_rets:
                val_rets = np.array(val_rets)
# 计算夏普比率
                sharpe = np.mean(val_rets) / np.std(val_rets) * np.sqrt(252)
                sharpes.append(sharpe)

            train_start += window_days

if sharpes:
            avg_sharpe = np.mean(sharpes)
            print(f"  λ={lam:.5f}: 平均夏普比率={avg_sharpe:.2f}")
if avg_sharpe > best_sharpe:
                best_sharpe = avg_sharpe
                best_lam = lam

    print(f"\n最优 λ={best_lam:.5f}(WFA 夏普比率={best_sharpe:.2f})")
return best_lam

5. 回测与交易成本计算

defapply_commissions(self, weights: np.ndarray, prices: np.ndarray,
                      prev_weights: np.ndarray, capital: float)
 -> float:

"""
    计算交易佣金
    使用 Interactive Brokers 的费率:每股 0.005 美元,最低 1 美元
    """

# 计算需要交易的股数
    shares_prev = (prev_weights * capital) / prices
    shares_new = (weights * capital) / prices
    shares_traded = np.abs(shares_new - shares_prev)

    commission_per_share = 0.005
    min_commission = 1.0
    total_commission = 0.0

for shares in shares_traded:
if shares > 0:
            comm = max(shares * commission_per_share, min_commission)
            total_commission += comm

return total_commission

运行示例

defmain():
    print("=" * 70)
    print("RIDGE 投资组合 - 月度分红股票")
    print("=" * 70)

# 初始化投资组合,回溯期为 252 天(一年)
    portfolio = RidgeDividendPortfolio(lookback_days=252)

# 设置数据时间范围:最近 3 年
    end = datetime.now()
    start = end - timedelta(days=1095)

# 下载数据
    prices, divs = portfolio.download_data(
        start.strftime('%Y-%m-%d'),
        end.strftime('%Y-%m-%d')
    )

# 计算总收益率
    returns = portfolio.calc_total_returns(prices, divs)

# 优化 lambda 参数
    lam_range = np.logspace(-5-112)
    opt_lam = portfolio.wfa_lambda(returns, lam_range)

# 执行回测
    weights, port_rets = portfolio.backtest(returns, prices, opt_lam, rebal=126)

# 输出最终配置
    final_w = weights.iloc[-1].sort_values(ascending=False)
    print(f"\n最终配置({weights.index[-1].strftime('%Y-%m-%d')}):")
for ticker, weight in final_w.items():
if weight > 0.01:
            print(f"  {ticker:<10}{weight:>8.2%}")

if __name__ == "__main__":
    main()

策略特点与优势

Ridge 正则化的优势:月度分红股票往往具有复杂的相关性结构。REITs 与利率相关,BDCs 与信贷市场相关,抵押贷款 REITs 与 MBS 利差相关。Ridge 正则化能够优雅地处理这种多重共线性,即使在不同市场环境下相关性发生变化,也能产生稳定的权重。

时间完整性:策略严格遵守 T-1 规则,仅使用决策时点之前可用的信息,避免了许多回测中常见的前视偏差问题。

交易成本建模:策略将交易佣金纳入考量,每半年调仓一次,佣金通常会降低年化收益 30 至 50 个基点。

实际考量:由于月度分红会产生频繁的应税事件,该策略最适合在 IRA 或 401k 等税收优惠账户中使用。

总结

本文介绍了一种使用 Ridge 正则化构建月度分红股票投资组合的量化策略。该方法结合了现代投资组合理论和机器学习技术,通过前向验证优化正则化参数,避免了过拟合问题。策略的核心优势包括:稳健的权重估计、严格的时间完整性、以及真实的交易成本建模。

对于想要学习量化投资的 Python 开发者来说,这个项目涵盖了数据获取、优化算法、回测框架等多个重要知识点,是一个很好的学习案例。

参考文章

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

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

核心权益如下:

  1. 赠送《财经数据宝典》完整文档,汇集多年财经数据维护经验
  2. 赠送《量化投研宝典》完整文档,汇集多年量化投研领域经验
  3. 赠送《PyBroker-入门及实战》视频课程,手把手学习量化策略开发
  4. 每日分享高质量量化投研文章(已更新 180+篇)、代码和相关资料
  5. 定期更新高频财经数据
  6. 参与年度不少于 10 次专属直播与录播课程
  7. 与核心开发者直接交流,解决实际问题
  8. 获取专业微信群交流机会和课程折扣

星球已有丰富内容积累,包括量化投研论文、财经高频数据、 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-02-08 12:00:32 HTTP/2.0 GET : https://f.mffb.com.cn/a/468178.html
  2. 运行时间 : 0.619446s [ 吞吐率:1.61req/s ] 内存消耗:4,503.17kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=6c710fcaadf890dd98c1d7a864ceb295
  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.001194s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001800s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001022s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000687s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001723s ]
  6. SELECT * FROM `set` [ RunTime:0.005030s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001576s ]
  8. SELECT * FROM `article` WHERE `id` = 468178 LIMIT 1 [ RunTime:0.016859s ]
  9. UPDATE `article` SET `lasttime` = 1770523232 WHERE `id` = 468178 [ RunTime:0.007365s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000809s ]
  11. SELECT * FROM `article` WHERE `id` < 468178 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.012589s ]
  12. SELECT * FROM `article` WHERE `id` > 468178 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.027551s ]
  13. SELECT * FROM `article` WHERE `id` < 468178 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.122759s ]
  14. SELECT * FROM `article` WHERE `id` < 468178 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.119797s ]
  15. SELECT * FROM `article` WHERE `id` < 468178 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.141294s ]
0.622441s