当前位置:首页>python>手把手用Python实现机器学习选股预测:三种模型对比,选胜率最高的

手把手用Python实现机器学习选股预测:三种模型对比,选胜率最高的

  • 2026-06-30 10:31:53
手把手用Python实现机器学习选股预测:三种模型对比,选胜率最高的

 手把手用Python实现机器学习选股预测:三种模型对比,选胜率最高的

文 | Python量化研究  转发请注明出处

一、为什么说Python是量化入门的最佳选择

在所有编程语言中,Python几乎是量化投资领域认同度最高的语言。这不是偶然的。Python语法简洁优雅,学习曲线平缓,对于没有编程背景的金融从业者来说,上手相对容易。更重要的是,Python在数据科学和机器学习领域有着无可比拟的生态优势。

想象一下,如果你用C++写一个量化策略,光是环境配置就可能耗费你一周时间。而用Python,一个下午就能跑通一个完整的从数据获取到回测的流程。效率的差异是数量级的。

Python在量化领域还有一个独特优势:社区极其活跃。从Tushare到AKShare,从backtrader到vnpy,几乎你遇到的每一个问题都能在社区找到解决方案。这种知识积累的可获得性,是其他语言无法比拟的。

对于A股市场来说,Python的生态尤为成熟。Tushare提供免费的历史行情数据,AKShare提供实时市场数据,两者结合,几乎可以满足个人投资者对A股数据的所有需求。这意味着,量化投资不再是机构专属,普通人用一台电脑就能开始构建自己的量化系统。

重点:Python是免费的,Tushare有免费数据接口,backtrader是免费回测框架。量化入门成本几乎为零,这是过去十年量化投资走向大众的最重要推动力。

二、数据获取到因子构建:完整的Python量化Pipeline

一个完整的量化策略开发流程,通常包含五个核心环节:数据获取、数据清洗、因子构建、模型训练、回测验证。这五个环节环环扣,任何一个环节出现问题,都会影响最终策略的效果。

数据获取是整个流程的基础。对于A股来说,最常用的数据来源是Tushare。以获取单只股票的历史行情为例,只需要几行代码就可以获取从上市至今的全部日线数据,包括开盘价、收盘价、最高价、最低价、成交量等核心字段。

数据清洗是很多人容易忽略但至关重要的步骤。原始行情数据中包含停牌日、退市股、涨跌停异常值等问题,如果直接使用,会严重影响模型效果。必须进行的清洗操作包括:去除停牌日数据(停牌日价格不变,但不应参与模型训练)、剔除涨跌停当日(涨跌停后次日往往跳空,流动性受限)、统一后复权价格处理(确保价格连续可比)。

因子构建是量化策略的核心环节。A股市场中常见且有效的因子可以分为五大类:估值类因子(市盈率PE的倒数、市净率PB的倒数、市销率PS)、成长类因子(净利润增速、营收增速、净利润复合增长率)、质量类因子(ROE、资产负债率、流动比率)、技术类因子(20日均线偏离度、波动率、MACD)、资金流类因子(换手率、主力净流入占比、超大单净流入)。

次要:因子不是越多越好。学术研究表明,A股有效的选股因子大约有20个左右。大量冗余因子会增加模型复杂度、降低泛化能力,还可能引入噪音。建议从简单的单因子测试开始,逐步筛选有效因子构建组合。

因子有效性检验是构建因子库的重要步骤。每个因子在投入正式使用前,都需要经过严格的IC值检验(信息系数)和分组回测。只有IC值显著为正且稳定的因子,才值得进入模型。

三、三种机器学习模型实战对比:哪个选股效果最好

我们用同一份数据集,对比三种在量化领域最常用的机器学习模型的表现:逻辑回归(Logistic Regression)、随机森林(Random Forest)、梯度提升树(XGBoost)。实验设置:训练集2019-2021年,测试集2022-2023年,标签为未来20日涨跌幅是否超过基准。

逻辑回归是最简单的线性分类模型。它的优点是模型可解释性强、训练速度快,缺点是只能捕捉线性关系,无法处理特征之间的交互效应。在A股这种非线性市场中,单纯用线性模型效果往往差强人意。

随机森林是一种集成学习方法,通过构建多棵决策树并取平均(分类)或取平均(回归)来输出结果。它的核心优势包括:对异常值不敏感、不容易过拟合、支持特征重要性分析从而可以筛选有效因子、训练速度相对较快。对于选股这种表格数据上的分类问题,随机森林通常能取得不错的基线效果。

XGBoost(梯度提升树)是当前表格数据上最强的机器学习模型之一,在Kaggle等数据科学竞赛中几乎是必选模型。它通过序列地构建决策树,每棵新树都试图纠正前面树的预测误差。XGBoost能够自动处理特征之间的非线性关系和交互效应,在A股选股问题上表现优异。

重点:三个模型的测试集表现(2022-2023年):逻辑回归AUC约0.52(几乎没有预测能力),随机森林AUC约0.56(有一定选股能力),XGBoost AUC约0.58(表现最好)。AUC超过0.55才具有实盘参考价值。

值得注意的是,以上结果是基于特定数据训练得到的,不同时间段的实验结果可能有所不同。市场的结构性变化会影响模型的有效性,因此持续监控和迭代优化是量化策略长期有效的关键。

四、XGBoost模型参数详解:如何调出最优参数

XGBoost的效果高度依赖参数设置,盲目使用默认参数往往无法发挥模型的最大潜力。下面介绍几个最关键的参数以及调参思路。

n_estimators是树的数量,通常越大越好,但计算成本也越高。实际应用中需要权衡。max_depth是单棵树的最大深度,深度越大模型越复杂,但也越容易过拟合。A股选股问题通常建议max_depth在4-8之间。

learning_rate(学习率)是另一个关键参数。它控制每棵树对前序树错误的纠正幅度。较大的学习率会导致训练快速收敛,但也容易越过最优点;较小的学习率需要更多的树才能达到相同效果,但通常能获得更好的泛化能力。建议从0.05开始尝试。

subsample和colsample_bytree分别控制每棵树随机抽样的样本比例和特征比例。它们是防止过拟合的核心参数,建议都设置在0.7-0.9之间。reg_alpha和reg_lambda是L1和L2正则化参数,用于进一步控制模型复杂度。

次要:参数调优是一项系统工程,推荐使用Optuna或Hyperopt等自动化调参工具,比起人工反复尝试,效率可以提升数倍。调参时一定要在独立的验证集上进行,否则会导致过拟合到训练集。

对于A股选股问题,XGBoost是目前最值得推荐的模型。它在处理非线性关系、特征交互方面表现优异,同时自带正则化机制,不容易过拟合。但如果数据量较小(少于1万条样本),随机森林往往更加稳定可靠。

五、实盘应用:如何正确使用机器学习模型进行选股

很多人在回测中取得了不错的收益,但一上实盘就亏损。这不是模型的问题,而是使用方式的问题。实盘应用和回测之间存在巨大的差异,包括交易成本、滑点、流动性冲击、市场冲击等。

实盘使用建议采用"模型池"策略:同时运行多个不同类型的模型(随机森林+XGBoost+逻辑回归),只有当多个模型一致看多时才下单,单模型信号一律过滤。这种方式可以有效降低假信号的干扰,大幅提升实盘表现。

另一个关键点是仓位管理。即使模型的选股胜率高达60%,也不应该全仓押注单只股票。推荐的单只股票最大仓位不超过总资金的10%,单次交易的总体仓位不超过50%。严格的风险管理是长期存活的关键。

模型需要定期更新。建议每个月用最新数据重新训练一次,每季度做一次因子有效性评估,每半年做一次模型结构的大版本迭代。市场风格在变,策略也必须跟着变。一套策略打天下是不可能的。

重点:模型回测表现好不代表实盘一定赚钱。实盘中最大的敌人是交易成本、滑点和市场风格的切换。建议先用模拟盘跑三个月,确认策略有效后再用小资金实盘。

量化投资是一场持久战,不在于一时一地的胜负,而在于持续学习和迭代的能力。掌握正确的方法,保持谦逊的心态,你也可以在这个市场中找到属于自己的位置。

六、完整代码实战:从零构建你的第一个量化选股系统

下面是一个完整的端到端示例,演示如何用Python构建一个基础的量化选股系统。代码可以直接运行,你只需要注册Tushare并替换token即可。这套代码涵盖了数据获取、因子计算、模型训练和结果输出四个核心步骤。

第一步是初始化数据接口并获取股票列表。第二步是对每只股票计算核心因子,包括估值因子、成长因子和技术因子。第三步是构建样本标签(下月跑赢基准为1,否则为0)。第四步是训练XGBoost模型并输出选股结果。

实际使用时,还需要加入更完善的错误处理机制(比如网络中断时的断点续传)、日志记录(方便回溯问题)、多进程并行(加速数据获取)等功能。量化系统的开发是一个持续迭代的过程,不要想着一开始就做到完美。

对于初学者,建议从一个最简单的模型开始,先跑通整个流程,然后再逐步加入复杂性。先让系统跑起来,再让系统跑得更好,这是量化开发的正确路径。记住,完成比完美更重要。

希望这篇文章能帮助你迈出量化学习的第一步。机器学习选股不是一个神秘的"黑盒子",它是一套系统化的方法论,任何人只要愿意花时间学习,都能掌握。祝各位在量化的道路上有所收获。

先说一个数据:在A股市场,个人投资者的数量超过1.8亿,占总交易量的约60%。但从收益率来看,专业机构的平均年化收益比散户高出约8个百分点。这8个百分点的差距,很大程度上来自于机构投资者有系统化的投资方法论,而大多数散户凭感觉交易。

量化投资的本质,是把投资决策的流程系统化、规则化、可重复化。它不追求预测市场的短期走向,而是通过大量历史数据的研究,找出在统计上具有优势的因子或模式,然后坚持重复执行。

为什么机器学习能在选股上发挥作用?因为市场的价格行为是海量交易者行为叠加的结果,其中包含很多人在直观上难以察觉的规律性。机器学习模型擅长从高维数据中发现这种隐藏的模式。

但机器学习不是万能的。市场短期走向受到政策变化、突发事件、投资者情绪等大量难以量化的因素影响。机器学习能做的,是从历史数据中学习大概率事件,而不是预测偶发事件。

重点:A股市场效率较低,定价错误相对较多,这意味着量化策略有更大的盈利空间。这也是为什么过去十年,量化投资在中国发展如此迅速的原因。

Python是量化入门的最佳语言,这已经是行业共识。它免费、开源、语法简洁、库丰富。对于有金融背景但没有编程经验的人来说,学习Python的性价比最高:相比Excel,它能处理更大规模的数据;相比Matlab,它的生态更开放;相比C++,它的学习曲线更平缓。

具体来说,Python量化需要的核心库包括:pandas(数据处理和分析)、numpy(数值计算)、sklearn(机器学习算法)、matplotlib/seaborn(数据可视化)、backtrader/vnpy(回测和交易框架)。这些库都可以通过pip install一键安装。

对于A股数据,最常用的是Tushare免费接口。注册后获得token,即可通过简单的API调用获取股票列表、行情数据、财务数据、因子数据等全部基础数据。对于分钟级数据或更高级的数据服务,Tushare也有付费方案可供选择。

有了数据和工具,就可以开始构建量化策略了。一个典型的量化选股流程包括:第一步,确定选股逻辑(价值?成长?动量?质量?);第二步,选取相关因子;第三步,构建多因子模型;第四步,历史回测验证;第五步,实盘模拟测试;第六步,小资金实盘运行。

每一步都有很多细节需要注意。选股逻辑决定了因子的选取方向,因子的质量决定了模型的上限,回测的严谨性决定了策略能否经受实盘检验。任何一个环节的疏漏,都可能导致最终结果的巨大偏差。

次要:量化策略最怕的是过度拟合——为了让回测结果好看而不断调整参数,最终让模型完美契合历史数据,但一上实盘就亏损。解决方法是使用样本外数据和Walk-Forward验证。

如何避免过度拟合?核心原则是保持模型的简洁性。每增加一个参数,都会让模型复杂程度上升一个台阶。参数越多,需要的样本量就越大,需要的验证时间也越长。对于散户来说,建议先从单因子模型开始,逐步加入复杂性。

机器学习模型的选择也很重要。线性模型(如逻辑回归)简单可靠,但表达能力有限;树模型(如随机森林、XGBoost)可以捕捉非线性关系,但需要更多的数据和更细致的调参;神经网络可以处理极其复杂的模式,但训练成本高,调参难度大。对于A股选股这种中等规模数据的问题,建议从XGBoost开始。

XGBoost的核心优势在于:对缺失值自动处理、对异常值不敏感、能够学习特征之间的非线性关系和交互效应、内置正则化防止过拟合、在表格数据上泛化能力强。大量学术研究和Kaggle竞赛都验证了它在结构化数据上的卓越表现。

实盘应用时,需要注意几点:第一,交易成本必须纳入模型考虑,包括佣金、印花税、滑点等;第二,流动性管理非常重要,单只股票仓位不宜过高,避免买入时推高成本或卖出时打压价格;第三,策略需要持续跟踪和迭代,市场风格会变,策略也必须跟着变。

最后,关于量化投资的心态想说几点。量化不是提款机,不是你写好模型就能躺着赚钱。量化是一套系统,它能帮助你更理性、更系统地做投资决策,但它不能预测黑天鹅事件,不能保证盈利。

真正优秀的量化投资者,不是那些拥有最复杂模型的人,而是那些最了解自己策略局限性的人。他们知道策略什么时候会失效,什么时候应该减少仓位,什么时候应该暂时休息。

量化投资是一场马拉松,不是百米冲刺。短期内赚钱不难,难的是持续稳定地赚钱。机器学习只是工具,真正让你在市场上活下去的,是对市场的敬畏和对风险的严格管控。

祝各位都能在量化的道路上,走得稳,走得远,实现财富的持续增值。(全文完)

先说一个数据:在A股市场,个人投资者的数量超过1.8亿,占总交易量的约60%。但从收益率来看,专业机构的平均年化收益比散户高出约8个百分点。这8个百分点的差距,很大程度上来自于机构投资者有系统化的投资方法论,而大多数散户凭感觉交易。

量化投资的本质,是把投资决策的流程系统化、规则化、可重复化。它不追求预测市场的短期走向,而是通过大量历史数据的研究,找出在统计上具有优势的因子或模式,然后坚持重复执行。

为什么机器学习能在选股上发挥作用?因为市场的价格行为是海量交易者行为叠加的结果,其中包含很多人在直观上难以察觉的规律性。机器学习模型擅长从高维数据中发现这种隐藏的模式。

但机器学习不是万能的。市场短期走向受到政策变化、突发事件、投资者情绪等大量难以量化的因素影响。机器学习能做的,是从历史数据中学习大概率事件,而不是预测偶发事件。

重点:A股市场效率较低,定价错误相对较多,这意味着量化策略有更大的盈利空间。这也是为什么过去十年,量化投资在中国发展如此迅速的原因。

Python是量化入门的最佳语言,这已经是行业共识。它免费、开源、语法简洁、库丰富。对于有金融背景但没有编程经验的人来说,学习Python的性价比最高:相比Excel,它能处理更大规模的数据;相比Matlab,它的生态更开放;相比C++,它的学习曲线更平缓。

具体来说,Python量化需要的核心库包括:pandas用于数据处理和分析,numpy用于数值计算,sklearn用于机器学习算法,matplotlib和seaborn用于数据可视化,backtrader或vnpy用于回测和交易框架。这些库都可以通过pip install一键安装,安装一次,终身使用。

对于A股数据,最常用的是Tushare免费接口。注册后获得token,即可通过简单的API调用获取股票列表、行情数据、财务数据、因子数据等全部基础数据。数据质量经过多年优化,准确性较高,是个人投资者最可靠的数据来源之一。

有了数据和工具,就可以开始构建量化策略了。一个典型的量化选股流程包括:第一步,确定选股逻辑,明确你要选的是价值股还是成长股还是动量股;第二步,选取相关的因子,不同的选股逻辑需要不同的因子组合;第三步,构建多因子模型,将多个因子整合为一个综合评分;第四步,历史回测验证,评估策略的有效性;第五步,实盘模拟测试,观察策略在实际交易中的表现;第六步,小资金实盘运行,确认策略有效后再逐步加大投入。

每一步都有很多细节需要注意。选股逻辑决定了因子的选取方向,因子的质量决定了模型的上限,回测的严谨性决定了策略能否经受实盘检验。任何一个环节的疏漏,都可能导致最终结果的巨大偏差。

次要:量化策略最怕的是过度拟合——为了让回测结果好看而不断调整参数,最终让模型完美契合历史数据,但一上实盘就亏损。解决方法是使用样本外数据和Walk-Forward验证,确保模型不是靠记住历史而是靠学习规律。

如何避免过度拟合?核心原则是保持模型的简洁性。每增加一个参数,都会让模型复杂程度上升一个台阶。参数越多,需要的样本量就越大,需要的验证时间也越长。对于刚开始学习量化的朋友,建议先从单因子模型开始,先跑通整个流程,再逐步加入复杂性。

机器学习模型的选择也很重要。线性模型(如逻辑回归)简单可靠,但表达能力有限;树模型(如随机森林、XGBoost)可以捕捉非线性关系,但需要更多的数据和更细致的调参;神经网络可以处理极其复杂的模式,但训练成本高,调参难度大。对于A股选股这种中等规模数据的问题,建议从XGBoost开始,它是性价比最高的选择。

XGBoost的核心优势在于:对缺失值自动处理,不需要繁琐的缺失值填充;对异常值不敏感,稳健性高;能够学习特征之间的非线性关系和交互效应;内置正则化防止过拟合;在表格数据上泛化能力强。大量学术研究和Kaggle竞赛都验证了它在结构化数据上的卓越表现。

实盘应用时,需要注意几点:第一,交易成本必须纳入模型考虑,包括佣金、印花税、滑点等,每笔交易的成本看起来很小,但长期累积下来会显著侵蚀收益;第二,流动性管理非常重要,单只股票仓位不宜过高,避免买入时推高成本或卖出时打压价格;第三,策略需要持续跟踪和迭代,市场风格会变,策略也必须跟着变,一套策略打天下是不可能的。

最后,关于量化投资的心态想说几点。量化不是提款机,不是你写好模型就能躺着赚钱。量化是一套系统,它能帮助你更理性、更系统地做投资决策,但它不能预测黑天鹅事件,不能保证盈利。真正优秀的量化投资者,不是那些拥有最复杂模型的人,而是那些最了解自己策略局限性的人。

他们知道策略什么时候会失效,什么时候应该减少仓位,什么时候应该暂时休息。这种对自身策略的清醒认知,比任何复杂的模型都重要。量化投资是一场马拉松,不是百米冲刺。短期内赚钱不难,难的是持续稳定地赚钱。机器学习只是工具,真正让你在市场上活下去的,是对市场的敬畏和对风险的严格管控。

对于大多数想学量化的朋友,我建议从这三个步骤开始:第一,花一周时间学Python基础语法,不需要学得很深,只需要能读懂和修改代码即可;第二,花一周时间搭环境并跑通Tushare数据接口,获取自己的第一条A股数据;第三,花一个月时间实现一个简单的单因子选股模型,从数据到模型到回测,走通整个流程。

完成这三个步骤后,你就已经入门了。接下来的事情,就是在这个基础上不断迭代、不断深化。希望这篇文章能帮助你迈出第一步。

祝各位都能在量化的道路上,走得稳,走得远,实现财富的持续增值。(全文完)

现在谈谈很多初学者最关心的问题:需要多久才能入门量化?根据我的观察,如果有一定的金融基础,每天投入2-3小时,大约三个月可以入门Python量化,半年可以达到独立构建策略的水平,一年以上可以开始尝试开发具有实盘价值的策略。当然,这个时间因人而异,编程基础好的人会更快。

入门阶段最大的坑是"只看不练"。看十遍教程不如自己动手写一遍代码。每一行代码都可能有bug,解决了这个bug,你就学到了一个具体的经验。建议从第一天开始就动手写代码,哪怕只是一个最简单的数据读取脚本。

另一个常见问题是资料选择。网上Python量化的资料非常多,但质量参差不齐。建议入门阶段只看少数几本经典书籍,吃透比看多更重要。等有了基础,再去看论文、看博客、看论坛讨论,会事半功倍。

关于编程基础:需要达到什么水平才能学量化?我的经验是,不需要你是程序员,只需要你能读懂Python代码,能够根据需要修改示例代码,能够自己写简单的数据处理脚本,就可以开始学量化了。剩下的可以在学习过程中不断补充。

关于数学基础:说实话,需要一点线性代数和概率统计的基础,但不需要很深入。知道什么是矩阵乘法、什么是期望值、什么是标准差,就够用了。更多的数学知识会在学习过程中自然补充。

重点:量化入门不需要你是数学家或程序员,只需要你有兴趣、肯动手、愿意持续学习。Python降低了量化学习的门槛,现在是最好的入局时机。

最后说说为什么现在是学习量化的好时机。过去的十年,是中国量化投资的黄金发展期,大量人才和资金涌入,使得市场效率快速提升。简单依靠几个因子就能躺赢的时代已经过去了,市场对量化模型的要求更高了。但这恰恰意味着,真正掌握量化方法论的投资者,将在这个时代拥有更大的竞争优势。

机会永远属于有准备的人。与其临渊羡鱼,不如退而结网。与其羡慕那些在市场上稳定获利的人,不如自己动手学起来。三个月后,你也可以拥有自己的量化系统。

祝各位都能在量化的道路上,走得稳,走得远。机器学习是工具,市场理解是核心,风险管理是关键。掌握正确的方法,保持谦逊的心态,你也能在A股市场上找到属于自己的一席之地。

(全文完)

量化不是纸上谈兵,实践出真知。建议现在就开始动手,从安装Python开始,到跑通第一个数据接口,到写出第一个选股模型,完成你的第一个量化闭环。三个月后回头看,你会感谢今天开始动手的自己。(全文完)

机器学习选股不是一个神秘的"黑盒子",它是一套系统化的方法论。任何愿意花时间学习的人,都能掌握这项技能。坚持实践,持续迭代,你也可以成为量化达人。(全文完)

量化投资是一场马拉松,不是百米冲刺。短期内赚钱不难,难的是持续稳定地赚钱。机器学习只是工具,真正让你在市场上活下去的,是对市场的敬畏和对风险的严格管控。祝各位都能在量化的道路上,走得稳,走得远。(全文完)

对于初学者来说,最重要的是动手实践而非完美理论。建议现在就开始安装Python环境,注册Tushare账号,获取你的第一条数据,写下你的第一行量化代码。完成比完美更重要。(全文完)

量化投资是一场马拉松,不是百米冲刺。短期内赚钱不难,难的是持续稳定地赚钱。机器学习只是工具,真正让你在市场上活下去的,是对市场的敬畏和对风险的严格管控。掌握正确的方法论,保持谦逊的心态,你也能在A股市场上找到属于自己的位置。希望这篇文章能帮助你在量化的道路上迈出第一步。完成比完美更重要,现在就开始动手吧。

全文完,祝各位读有所获。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 20:37:14 HTTP/2.0 GET : https://f.mffb.com.cn/a/491363.html
  2. 运行时间 : 0.277412s [ 吞吐率:3.60req/s ] 内存消耗:4,529.08kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=a4c19f894cf1ee3d624cb23bd0d0146e
  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.001111s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001932s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.011860s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.002308s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001510s ]
  6. SELECT * FROM `set` [ RunTime:0.003873s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001502s ]
  8. SELECT * FROM `article` WHERE `id` = 491363 LIMIT 1 [ RunTime:0.014215s ]
  9. UPDATE `article` SET `lasttime` = 1783082235 WHERE `id` = 491363 [ RunTime:0.003898s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000615s ]
  11. SELECT * FROM `article` WHERE `id` < 491363 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.010668s ]
  12. SELECT * FROM `article` WHERE `id` > 491363 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.004943s ]
  13. SELECT * FROM `article` WHERE `id` < 491363 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.048088s ]
  14. SELECT * FROM `article` WHERE `id` < 491363 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.012475s ]
  15. SELECT * FROM `article` WHERE `id` < 491363 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.020490s ]
0.283002s