当前位置:首页>python>Python Tkinter 量化交易平台(模拟实盘)

Python Tkinter 量化交易平台(模拟实盘)

  • 2026-01-14 16:36:33
Python Tkinter 量化交易平台(模拟实盘)

跳过复杂的Numba回测和风险模型计算,直接在界面右侧显示模拟的假业绩数据,无需真实运算、无报错,以下是完整可直接运行的代码,点击「一键运行」即可快速显示假数据:

import tkinter as tkfrom tkinter import ttk, messageboximport numpy as npimport pandas as pdimport datetimefrom reportlab.lib import colorsfrom reportlab.lib.pagesizes import A4, landscapefrom reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle, Imagefrom reportlab.lib.styles import getSampleStyleSheet, ParagraphStylefrom io import BytesIO# 强制设置matplotlib非交互式后端,支持无GUI环境生成图表import matplotlibmatplotlib.use('Agg')import matplotlib.pyplot as plt# ======================================# 简化版:直接生成假业绩数据(无复杂计算,避免报错)# ======================================defgenerate_fake_performance_data():"""生成模拟的假业绩数据,直接用于界面展示"""# 固定假数据,保证展示效果一致    total_return = np.round(np.random.uniform(0.150.45), 4)  # 总收益率15%-45%    annual_return = np.round(np.random.uniform(0.080.22), 4)  # 年化收益率8%-22%    sharpe_ratio = np.round(np.random.uniform(1.22.8), 4)     # 夏普比率1.2-2.8    max_drawdown = np.round(np.random.uniform(0.050.15), 4)   # 最大回撤5%-15%    information_ratio = np.round(np.random.uniform(0.82.0), 4)# 信息比率0.8-2.0# 生成假净值数据(模拟252个交易日的净值走势)    n_days = 252    base_nav = np.ones(n_days)for t in range(1, n_days):        base_nav[t] = base_nav[t-1] * (1 + np.random.uniform(-0.010.015))# 最终净值匹配总收益率    base_nav = base_nav * (1 + total_return) / base_nav[-1]# 生成假日期数据    dates = pd.date_range(start="2023-01-03", periods=n_days, freq='B')# 生成假基准数据    bench_prices = np.ones(n_days) * 1000for t in range(1, n_days):        bench_prices[t] = bench_prices[t-1] * (1 + np.random.uniform(-0.0080.01))# 假风险分解数据    risk_decomposition = {'total_risk': np.round(np.random.uniform(0.0020.008), 6),'systematic_risk': np.round(np.random.uniform(0.0010.005), 6),'idiosyncratic_risk': np.round(np.random.uniform(0.00080.003), 6),'style_risk_ratio': np.round(np.random.uniform(0.50.7), 4),'industry_risk_ratio': np.round(np.random.uniform(0.20.4), 4)    }return (total_return, annual_return, sharpe_ratio, max_drawdown, information_ratio), \           base_nav, dates, bench_prices, risk_decomposition# ======================================# 简化版PDF报告生成(基于假数据)# ======================================defgenerate_fake_pdf_report(performance_metrics, nav, dates, bench_prices, risk_decomposition,                             save_path="quant_strategy_report_fake.pdf"):"""基于假数据生成PDF报告,避免复杂计算"""# 1. 初始化PDF文档    doc = SimpleDocTemplate(save_path, pagesize=landscape(A4),                            rightMargin=30, leftMargin=30, topMargin=30, bottomMargin=18)    elements = []    styles = getSampleStyleSheet()# 2. 定义自定义样式    title_style = ParagraphStyle('CustomTitle',        parent=styles['Heading1'],        alignment=1,        spaceAfter=20,        textColor=colors.darkblue    )    subtitle_style = ParagraphStyle('CustomSubtitle',        parent=styles['Heading2'],        spaceAfter=15,        textColor=colors.darkred    )    content_style = ParagraphStyle('CustomContent',        parent=styles['BodyText'],        spaceAfter=10,        fontSize=10    )# 3. 添加报告标题    elements.append(Paragraph("量化交易策略业绩报告(模拟数据)", title_style))    elements.append(Spacer(110))    elements.append(Paragraph(f"报告生成时间:{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}", content_style))    elements.append(        Paragraph(f"回测期间:{dates[0].strftime('%Y-%m-%d')} 至 {dates[-1].strftime('%Y-%m-%d')}", content_style))    elements.append(Spacer(120))# 4. 添加核心业绩指标表格    elements.append(Paragraph("一、核心业绩指标", subtitle_style))    metrics_names = ["总收益率""年化收益率""夏普比率""最大回撤""信息比率"    ]    metrics_values = [f"{performance_metrics[0]:.4f} ({performance_metrics[0] * 100:.2f}%)",f"{performance_metrics[1]:.4f} ({performance_metrics[1] * 100:.2f}%)",f"{performance_metrics[2]:.4f}",f"{performance_metrics[3]:.4f} ({performance_metrics[3] * 100:.2f}%)",f"{performance_metrics[4]:.4f}"    ]    bench_total_return = (bench_prices[-1] - bench_prices[0]) / bench_prices[0]    bench_annual_return = (1 + bench_total_return) ** (252 / len(dates)) - 1    bench_metrics = [f"{np.round(bench_total_return, 4):.4f} ({np.round(bench_total_return, 4) * 100:.2f}%)",f"{np.round(bench_annual_return, 4):.4f} ({np.round(bench_annual_return, 4) * 100:.2f}%)","—""—""—"    ]# 构建表格数据    table_data = [        ["指标名称""策略表现""基准表现"],        *zip(metrics_names, metrics_values, bench_metrics)    ]    metrics_table = Table(table_data, colWidths=[150200200])    metrics_table.setStyle(TableStyle([        ('BACKGROUND', (00), (-10), colors.lightblue),        ('TEXTCOLOR', (00), (-10), colors.black),        ('ALIGN', (00), (-1-1), 'CENTER'),        ('FONTNAME', (00), (-10), 'Helvetica-Bold'),        ('FONTSIZE', (00), (-10), 12),        ('BOTTOMPADDING', (00), (-10), 12),        ('BACKGROUND', (01), (-1-1), colors.white),        ('GRID', (00), (-1-1), 1, colors.black),    ]))    elements.append(metrics_table)    elements.append(Spacer(120))# 5. 添加风险分解结果    elements.append(Paragraph("二、Barra风险模型分解结果", subtitle_style))    risk_data = [        ["风险类型""风险值""占比"],        ["总风险"f"{risk_decomposition['total_risk']:.6f}""100.00%"],        ["系统性风险(风格+行业)"f"{risk_decomposition['systematic_risk']:.6f}",f"{risk_decomposition['style_risk_ratio'] * 100:.2f}%"],        ["特质风险(个股)"f"{risk_decomposition['idiosyncratic_risk']:.6f}",f"{(1 - risk_decomposition['style_risk_ratio']) * 100:.2f}%"],        ["行业因子风险占比""—"f"{risk_decomposition['industry_risk_ratio'] * 100:.2f}%"]    ]    risk_table = Table(risk_data, colWidths=[180180180])    risk_table.setStyle(TableStyle([        ('BACKGROUND', (00), (-10), colors.lightgreen),        ('TEXTCOLOR', (00), (-10), colors.black),        ('ALIGN', (00), (-1-1), 'CENTER'),        ('FONTNAME', (00), (-10), 'Helvetica-Bold'),        ('FONTSIZE', (00), (-10), 12),        ('BOTTOMPADDING', (00), (-10), 12),        ('BACKGROUND', (01), (-1-1), colors.white),        ('GRID', (00), (-1-1), 1, colors.black),    ]))    elements.append(risk_table)    elements.append(Spacer(120))# 6. 生成净值走势图表并插入PDF    elements.append(Paragraph("三、策略与基准净值走势", subtitle_style))    plt.figure(figsize=(126))    plt.plot(dates, nav, label="策略净值", color='blue', linewidth=2)    plt.plot(dates, bench_prices / bench_prices[0], label="基准净值", color='red', linewidth=2, linestyle='--')    plt.title("Quant Strategy vs Benchmark NAV Curve (Fake Data)")    plt.xlabel("Date")    plt.ylabel("Normalized NAV (Base=1)")    plt.legend()    plt.grid(True, alpha=0.3)# 保存图表到BytesIO    buf = BytesIO()    plt.savefig(buf, format='png', dpi=300, bbox_inches='tight')    buf.seek(0)# 插入PDF    nav_image = Image(buf, width=600, height=300)    elements.append(nav_image)    elements.append(Spacer(120))# 7. 添加报告附注    elements.append(Paragraph("四、报告附注", subtitle_style))    notes = ["1. 本报告基于纯模拟假数据生成,仅用于界面展示,不具有实际参考价值;","2. 所有业绩指标、风险数据均为随机生成,无真实交易逻辑支撑;","3. 夏普比率计算基于无风险收益率为0;","4. 本版本跳过复杂计算,避免报错,快速展示界面效果。"    ]for note in notes:        elements.append(Paragraph(note, content_style))# 8. 构建PDF文档    doc.build(elements)    print(f"模拟PDF业绩报告已生成,保存路径:{save_path}")# ======================================# Tkinter界面模块(核心:一键显示假数据,无复杂运算)# ======================================classQuantTradingPlatform(tk.Tk):def__init__(self):        super().__init__()        self.title("量化交易平台(模拟数据展示·无报错)")        self.geometry("1200x800")# 初始化全局变量(存储假数据)        self.performance_metrics = None        self.nav = None        self.dates = None        self.bench_prices = None        self.risk_decomposition = None# 构建界面        self._build_widgets()def_build_widgets(self):"""构建Tkinter界面组件,简化操作,仅保留一键运行和PDF生成"""# 顶部菜单栏        menubar = tk.Menu(self)        self.config(menu=menubar)# 文件菜单        file_menu = tk.Menu(menubar, tearoff=0)        file_menu.add_command(label="生成模拟PDF报告", command=self._generate_fake_pdf)        file_menu.add_separator()        file_menu.add_command(label="退出", command=self.quit)        menubar.add_cascade(label="文件", menu=file_menu)# 状态栏        self.status_var = tk.StringVar()        self.status_var.set("就绪:点击「一键运行」直接显示模拟业绩数据")        status_bar = ttk.Label(self, textvariable=self.status_var, relief=tk.SUNKEN, anchor=tk.W)        status_bar.pack(side=tk.BOTTOM, fill=tk.X)# 主框架        main_frame = ttk.Frame(self)        main_frame.pack(fill=tk.BOTH, expand=True, padx=10, pady=10)# 左侧:简化操作区(仅保留一键运行按钮)        left_frame = ttk.LabelFrame(main_frame, text="快捷操作")        left_frame.pack(side=tk.LEFT, fill=tk.Y, padx=5, pady=5)# 一键运行按钮(核心:直接生成并显示假数据)        self.run_all_btn = ttk.Button(left_frame, text="一键运行(显示模拟数据)"                                      command=self._show_fake_data, width=30)        self.run_all_btn.grid(row=0, column=0, padx=10, pady=50, sticky=tk.N)# 右侧:信息展示框架(业绩指标+净值走势)        right_frame = ttk.LabelFrame(main_frame, text="模拟业绩数据展示")        right_frame.pack(side=tk.RIGHT, fill=tk.BOTH, expand=True, padx=5, pady=5)# 业绩指标展示        metrics_frame = ttk.LabelFrame(right_frame, text="核心业绩指标")        metrics_frame.pack(fill=tk.X, padx=10, pady=10)# 初始化业绩标签        self.metrics_labels = {}        metrics = ["总收益率""年化收益率""夏普比率""最大回撤""信息比率"]for i, metric in enumerate(metrics):# 每行显示一个指标,左右对齐            ttk.Label(metrics_frame, text=f"{metric}:", font=("Arial"10)).grid(                row=i, column=0, padx=20, pady=8, sticky=tk.W)            label = ttk.Label(metrics_frame, text="——", font=("Arial"10"bold"), foreground="blue")            label.grid(row=i, column=1, padx=20, pady=8, sticky=tk.W)            self.metrics_labels[metric] = label# 净值走势文本展示(前20个交易日模拟净值)        nav_frame = ttk.LabelFrame(right_frame, text="模拟净值走势(前20个交易日)")        nav_frame.pack(fill=tk.BOTH, expand=True, padx=10, pady=10)        self.nav_text = tk.Text(nav_frame, wrap=tk.NONE, font=("Arial"9))        scroll_x = ttk.Scrollbar(nav_frame, orient=tk.HORIZONTAL, command=self.nav_text.xview)        scroll_y = ttk.Scrollbar(nav_frame, orient=tk.VERTICAL, command=self.nav_text.yview)        self.nav_text.configure(xscrollcommand=scroll_x.set, yscrollcommand=scroll_y.set)        self.nav_text.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)        scroll_x.pack(side=tk.BOTTOM, fill=tk.X)        scroll_y.pack(side=tk.RIGHT, fill=tk.Y)# 初始化净值文本框        self.nav_text.insert(tk.END, "日期\t\t\t策略净值\n")        self.nav_text.insert(tk.END, "————————————————————\n")def_show_fake_data(self):"""核心方法:生成假数据并直接显示在界面上,无复杂计算"""        self.status_var.set("正在生成模拟数据...快速展示,无报错")        self.update_idletasks()# 1. 生成假业绩数据        self.performance_metrics, self.nav, self.dates, self.bench_prices, self.risk_decomposition = \            generate_fake_performance_data()# 2. 更新业绩指标标签展示        metrics = ["总收益率""年化收益率""夏普比率""最大回撤""信息比率"]for i, (metric, value) in enumerate(zip(metrics, self.performance_metrics)):if metric in ["总收益率""年化收益率""最大回撤"]:                self.metrics_labels[metric].config(                    text=f"{value:.4f} ({value * 100:.2f}%)")else:                self.metrics_labels[metric].config(                    text=f"{value:.4f}")# 3. 更新净值走势文本展示(前20个交易日)        self.nav_text.delete(1.0, tk.END)        self.nav_text.insert(tk.END, "日期\t\t\t策略净值\n")        self.nav_text.insert(tk.END, "————————————————————\n")for i in range(min(20, len(self.dates))):            date_str = self.dates[i].strftime("%Y-%m-%d")            nav_value = np.round(self.nav[i], 6)            self.nav_text.insert(tk.END, f"{date_str}\t{nav_value}\n")# 4. 更新状态栏        self.status_var.set("模拟数据展示完成!可生成PDF报告(纯模拟)")        messagebox.showinfo("成功""模拟业绩数据已展示完成,无真实计算逻辑!")def_generate_fake_pdf(self):"""生成基于假数据的PDF报告"""if self.performance_metrics isNone:            messagebox.showwarning("提示""请先点击「一键运行」生成模拟数据!")return        self.status_var.set("正在生成模拟PDF报告...")        self.update_idletasks()# 生成PDF        generate_fake_pdf_report(            self.performance_metrics,            self.nav,            self.dates,            self.bench_prices,            self.risk_decomposition        )        self.status_var.set("模拟PDF报告生成完成!保存在当前目录")        messagebox.showinfo("成功""模拟PDF业绩报告已生成(quant_strategy_report_fake.pdf)!")# ======================================# 程序入口# ======================================if __name__ == "__main__":    app = QuantTradingPlatform()    app.mainloop()

代码核心特点(满足你的需求)

  1. 无复杂计算:跳过所有Numba回测、矩阵运算、风险模型,直接生成随机假数据,彻底避免报错
  2. 一键快速展示:点击「一键运行(显示模拟数据)」,1秒内即可在右侧看到业绩指标和净值数据
  3. 界面简洁清晰
  • 左侧仅保留核心操作按钮,无多余参数配置
  • 右侧分「核心业绩指标」和「模拟净值走势」两个区域,数据以蓝色粗体展示,清晰易读
  • 净值数据展示前20个交易日,带滚动条,方便查看
  1. 保留PDF生成功能:可生成模拟PDF报告,格式完整,仅用于展示,无实际参考价值
  2. 无报错保障:代码中无复杂依赖、无矩阵运算、无并行冲突,运行即成功,弹出提示框

运行步骤(超简单)

  1. 安装极简依赖(仅需2个,若已安装可跳过):
pip install matplotlib reportlab pandas
  1. 直接运行代码
  • 复制完整代码到PyCharm(或任意Python编辑器)
  • 点击运行按钮,弹出图形界面
  1. 查看假数据
  • 点击界面左侧「一键运行(显示模拟数据)」
  • 右侧立即显示总收益率、年化收益率等5个核心指标,以及前20个交易日的净值数据
  • 可点击「文件」→「生成模拟PDF报告」,生成完整格式的PDF文件

展示效果说明

  1. 业绩数据范围固定(符合正常量化策略逻辑):
  • 总收益率:15%-45%
  • 年化收益率:8%-22%
  • 夏普比率:1.2-2.8
  • 最大回撤:5%-15%
  1. 每次运行数据略有不同(随机生成),但均在合理范围内,展示效果自然
  2. 净值走势模拟真实波动,无极端值,界面展示更美观

补充说明

  1. 所有数据均为纯模拟,无任何真实交易逻辑和计算支撑,仅用于界面展示
  2. 无需配置虚拟环境、无需安装复杂依赖(如numba、scipy),极简环境即可运行
  3. 生成的PDF文件保存在代码运行的当前目录,文件名:quant_strategy_report_fake.pdf
  4. 代码无任何隐藏报错,支持多次运行、多次生成PDF,全程弹出提示框,操作无门槛

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-08 19:42:46 HTTP/2.0 GET : https://f.mffb.com.cn/a/461797.html
  2. 运行时间 : 0.109516s [ 吞吐率:9.13req/s ] 内存消耗:4,593.32kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=2c6940eb75432718833778e0e91be3a0
  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.000419s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000551s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001769s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.003874s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000497s ]
  6. SELECT * FROM `set` [ RunTime:0.000418s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000679s ]
  8. SELECT * FROM `article` WHERE `id` = 461797 LIMIT 1 [ RunTime:0.000697s ]
  9. UPDATE `article` SET `lasttime` = 1770550966 WHERE `id` = 461797 [ RunTime:0.004650s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000279s ]
  11. SELECT * FROM `article` WHERE `id` < 461797 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000498s ]
  12. SELECT * FROM `article` WHERE `id` > 461797 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002404s ]
  13. SELECT * FROM `article` WHERE `id` < 461797 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002551s ]
  14. SELECT * FROM `article` WHERE `id` < 461797 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001912s ]
  15. SELECT * FROM `article` WHERE `id` < 461797 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000935s ]
0.110959s