当前位置:首页>python>Python量化实战:akshare一键验证清明季节性因子

Python量化实战:akshare一键验证清明季节性因子

  • 2026-04-19 08:29:56
Python量化实战:akshare一键验证清明季节性因子

Python量化实战:akshare一键验证清明季节性因子

文 | 程飞  |  2026年4月5日  |  清明


每年清明前后,量化社群就会开始讨论「清明效应」——A股在清明节前后是否存在显著的季节性规律?这个问题我被问了不下一百遍。今年清明,我决定用akshare把过去十六年的沪深300数据全部跑一遍,用代码说话,用数据验证。

每逢清明心慌慌:节前那几天,A股到底在闹哪样?

作为一名在A股市场摸爬滚打了十年的量化工程师,我每年清明前都会收到大量类似的问题:程总,清明节要不要空仓?节前最后一天卖股票来得及吗?清明节后A股会不会开门红?这些问题反映了散户投资者对清明效应的高度关注,但我很少直接回答,因为没有数据支撑的答案,都是在猜。我自己也曾经在这条路上走过弯路。2015年之前,我跟大多数散户一样,听消息、看K线、凭感觉交易。2015年股灾之后,我痛定思痛,决定用量化方法重建自己的交易体系。方法是:任何规律,必须用数据验证;任何策略,必须用历史回测。没有数据支撑的结论,不管听起来多有道理,都是在沙滩上建高楼。

所以今年清明,我花了整整两天时间,用akshare把沪深300指数从2010年到2026年的清明节前后数据全部拉下来,做了完整的统计分析。代码全部开源,结论全部有据可查。量化研究最大的好处就是:同一个数据,不同的人可以得出不同的结论,但是大家用的是同一套数据,逻辑可以互相验证。

我选择的指数是沪深300(代码:000300.SH),时间范围是2010年到2026年,共十六年数据,选择沪深300的原因是:它是中国A股市场最具代表性的大盘指数,机构参与度高,量化数据质量相对较好。当然,你也可以用上证50、中证500或者创业板指做同样的分析,方法完全一样,结论可能会有所不同。

在这里我要特别强调一个观点:清明效应研究的意义,不在于找到一个能稳定盈利的策略,而在于理解A股市场的季节性资金博弈规律。很多散户研究节气规律,是想找到一个买入卖出的完美时间点。这种想法不现实。市场的走势由无数因素共同决定,单一因素的解释力永远有限。理解这些因素,可以让我们在决策时多一份理性,少一份冲动。这才是量化研究的真正价值所在。

我在研究过程中,最深的感触是:大多数人对A股的记忆只有三个月。如果某一年的清明节后行情好,大家就会觉得清明效应很灵;如果某几年行情不好,大家很快就会忘记这个规律的存在。这是人类记忆的偏见,但量化分析可以克服这个偏见——我们用十六年的数据说话,而不是凭三个月的记忆下结论。这就是为什么要学Python,为什么要学量化,因为数据不会骗人,但人的记忆和直觉往往会骗人。

我自己在刚进入市场的那几年,也曾经痴迷于研究各种节气规律和K线形态。当时我觉得那些能在收盘后讲出大道理的人特别厉害,后来我自己做了量化才发现:那些道理大多是后视镜里总结出来的,真正的规律少之又少。大多数人讨论清明效应,其实只是在重复过去十六年里某几次印象深刻的市场记忆,而非真正的统计规律。这也是为什么我觉得有必要把数据摆出来,让事实说话,而不是让情绪和记忆主导我们的判断。

我见过太多人在研究节气规律时犯同一个错误:选择性记忆。他们会特别清楚地记得2007年清明后的大牛市,记得2015年清明后股指继续上攻,却很快忘记了2018年清明后的持续下跌,忘记了2021年清明后市场的震荡分化。人的大脑天生喜欢记住极端事件,而忽略平淡数据。这是进化形成的本能,但在投资里,这种本能在拖后腿。量化分析的价值,正是强迫我们用系统性的数据说话,而不是让情绪化的记忆主导判断。

清明效应到底存不存在?我的答案是:存在,但远比大多数人想象的更弱、更不稳定。十六年的数据显示,节后首日的涨跌概率大约是五五开,节后五天的累计收益分布在一个很宽的范围内。这意味着,如果你基于清明效应做交易决策,你有大约一半的概率是错的,而且错误时的亏损可能远大于正确时的盈利。这样的交易优势,在统计学上叫做没有显著优势。

我并不是说节气规律完全无用。我是说,研究节气规律的方式决定了你能从中得到什么。如果你是在论坛里道听途说,跟风操作,那节气规律就是坑。但如果你能像做量化策略一样,系统性地研究它、测试它、验证它,那至少你能知道它的边界在哪里,什么时候它可能有效,什么时候它会失效。这种有边界的研究,比盲目相信或盲目否定要有价值得多。

节前效应深度拆解:缩量博弈里的三种剧本

先说节前效应。我定义节前窗口为清明节前五个交易日。之所以选择五天,是因为A股的节日效应通常会在节前两到三天开始显现,但太长了会稀释信号。实际数据处理中,我用akshare的宏观数据接口拉取沪深300的日行情数据,然后自己做日期筛选。拉取数据的代码不复杂,关键是日期处理。akshare返回的日期格式是字符串,需要转换成datetime对象才能做日期计算。另外,清明节是农历节日,日期每年不同,不能写死。我用一个固定的日期表来标注每年的清明节区间,这样处理起来比较准确。

数据分析的第一步永远是先看数据长什么样。我会先输出基本统计量:均值、标准差、最大值、最小值、偏度、峰度。这些数字看起来枯燥,但是它们是后续所有分析的基础。如果基本统计量就有问题,后面的结论就要打问号。节前效应的一个重要特征是缩量。清明节前,市场情绪通常会偏向谨慎,部分资金会选择在节前撤离或者观望,等待假期期间的不确定性明朗化。这种谨慎情绪会反映在成交量上:我发现大多数年份,清明节前五个交易日的平均成交量相比前后各五个交易日,有显著的缩量现象,缩量幅度在百分之十到百分之二十之间。

但缩量本身不是交易信号。缩量意味着分歧减小,但分歧减小可以是因为大家都看多(买入并持有),也可以是因为大家都看空(持币观望)。我通过分析缩量期间的价格走势来辅助判断方向:缩量上涨说明市场偏多,缩量下跌说明市场偏空。这个判断不一定准确,但是可以作为辅助参考。具体代码逻辑是:计算清明节前五个交易日的平均成交量,与前后各五个交易日的平均成交量做比值,得到缩量比例;然后把这个比例与同期的价格涨跌幅做相关性分析,看两者之间是否存在统计上显著的关系。

我把这个分析扩展到了三种年份类型。第一类是正常年份,缩量比例在百分之十左右,价格小幅震荡;第二类是节前有明确趋势的年份,比如2023年节前市场已经进入下跌通道,缩量期间价格继续小幅下跌;第三类是节前出现政策刺激或重大事件的年份,缩量期间反而可能酝酿变盘。这三种剧本,背后对应的资金博弈逻辑完全不同。第一种是正常的市场情绪降温,第二种是空头主导的减仓行为,第三种是多空双方都在等待催化剂。所以同样是缩量,内在含义可能完全相反。读懂这些,需要结合当时的宏观背景,不能机械套用指标。

说到这里,我想起一个有意思的观察:每到清明节前,股吧和各大论坛就会开始出现各种关于清明魔咒的讨论。有人说清明节前要跑,有人说节后会开门红,大家各执一词,看起来都有道理。但你仔细看这些讨论,会发现一个共同特征:大家都在引用某几次印象深刻的历史行情,而不是系统性的历史数据。这就是我们前面说的人类记忆偏见。几次印象深刻的事件会盖过大量的平淡数据,给人一种规律存在的错觉。量化分析的价值,恰恰在于克服这种心理偏差,用系统性的数据而不是零星的记忆来下结论。

关于节前操作,我的一点忠告:不要因为即将到来的清明假期而特意调整仓位。如果你本身有仓位管理的逻辑(止损位、目标位、仓位上限),这些逻辑不应该因为清明节而改变。节前减仓避险的人,往往是在用假期作为借口来执行自己本能上想做的减仓动作,而不是真的基于清明效应的数据分析。如果你真的想做节前减仓,请在节前一周就开始执行,而不是等到节前最后一天急急忙忙地操作。

节后第一个交易日:这个窗口藏着黄金还是坑?

相比节前效应,节后效应更受市场关注。我定义节后窗口为清明节后第一个交易日和前五个交易日。数据处理的关键在于日期对齐——每年清明节的日期不同,需要动态计算。我发现在十六年的数据里,节后首日收益率的均值是一个较小的正数,但胜率只有约百分之五十六(十六年里有九年是正收益)。更重要的是,t检验的p值大于零点零五,说明节后首日收益率与零没有统计学上的显著差异。换句话说:从历史数据来看,清明节后第一天,涨跌都有可能,没有稳定的规律。

但是,这并不意味着节后效应毫无研究价值。我发现,在某些特定年份,节后首日存在非常显著的正收益或负收益。比如2020年(新冠疫情爆发)和2022年(上海全域静态管理),节后首日都出现了大幅低开。这些异常值拉高了均值,但同时也说明了清明节后行情受假期期间突发事件影响极大。节后第一天的开盘价,往往反映的是假期期间积累的信息量。如果假期期间海外市场大跌,或者有重大利空消息,节后首日通常会低开;如果假期期间没有超预期事件,节后首日的走势则相对平稳。

我还发现了一个有意思的规律:节后五日的走势与节前最后一天的走势存在微弱的负相关。这个规律在统计上并不显著,但在实际交易中可以作为辅助参考。另外,节后成交量的放大比例和节后收益率之间也存在微弱的正相关。节后放量越明显,当年的节后收益往往越好。这个关系在统计上接近显著,值得进一步研究。具体原因是:放量代表市场活跃度提升,机构资金参与度更高,而机构资金在节后首日的布局意愿,往往能在一周内持续反映在股价上。

对于今年的清明节后行情,我的判断是:重点关注假期期间(特别是四月四日到六日)的海外市场表现和宏观消息。如果这三天里没有超预期事件,节后首日大概率是震荡行情,不会有特别极端的方向;如果出现了重大宏观事件,节后首日的波动会放大,但这种波动往往是短期的,不影响中期趋势。总体来说,我不建议以清明节作为加仓或减仓的触发点,这个效应的预测力太弱了。与其研究清明规律,不如多关注每天晚上的美股走势和重要商品价格,这些才是真正会影响节后开盘的因素。

很多人把节后首日当作一年中最重要的交易日之一,这种想法有些过于放大清明效应的地位了。实际上,从十六年的数据来看,清明节后第一个交易日的波动性并不比全年平均更高——除了那几个有重大事件的特殊年份之外。A股市场每天都有各种各样的信息在影响着股价的短期波动,清明节本身并不具备特殊性。把投资决策建立在对单一日期的解读上,本质上是在用迷信代替分析,这不是我们应该做的事。

节后一周行情规律:三规律决定你的仓位策略

节后五天窗口的规律比节后首日更有研究价值。我分析了每年清明节后五个交易日的累计收益率,发现了几个有趣的规律。第一:节后五日累计收益率的均值虽然为正,但幅度很小(大约百分之零点五左右),且大多数年份分布在负百分之二到正百分之三之间,波动范围相当大。这意味着节后一周的整体收益预期并不高,而且不确定性很大。

第二:节后五日的走势与节前最后一天的走势存在微弱的负相关。也就是说,如果节前最后一天上涨,节后五天有稍微偏弱的倾向;如果节前最后一天下跌,节后五天有稍微偏强的倾向。这个规律在统计上并不显著(p值大于零点一),但在实际交易中可以作为辅助参考。原因可能是:节前最后一天的走势反映的是节前最后一批减仓资金的行为,而节后第一批入场的资金往往会选择在节前减仓的反方向操作,从而形成短暂的均值回归。

第三:成交量是关键指标。我把节后五天分成高成交量组和低成交量组做了对比分析,发现:高成交量组的平均收益明显更高,而且胜率也更高。这个结论与一般直觉相反。通常认为节后缩量是主力吸筹的信号,但数据显示节后放量跟涨跟得更有持续性。可能的解释是:放量代表市场参与度提升,机构资金在节后有明显的加仓行为,而机构的加仓动作往往具有一定的持续性,不是短期行为。

基于以上三个规律,我设计了一个简单的仓位参考框架:第一,不以清明节作为加仓或减仓的唯一依据;第二,如果节前最后一天出现明显上涨,节后第一天可以适当减仓或者观望;第三,节后如果出现成交量放大且价格配合上涨,可以考虑顺势加仓;第四,节后如果缩量震荡,建议保持原有仓位不变。关键还是要结合当时的宏观环境做综合判断。如果当时市场整体趋势向上,清明效应的影响会被放大;如果市场整体趋势向下,清明效应可能会被抵消。这些建议不构成投资建议,只是基于历史数据的客观陈述。

说到这里,我想特别提一下仓位管理。清明效应本身很弱,但如果结合市场整体趋势来判断,价值就会大得多。比如在牛市中,清明节后涨的概率会高于熊市;在震荡市中,清明效应基本失效。这告诉我们一个重要的投资原则:单一指标的价值有限,综合判断才是王道。不要试图用一个简单的规则来应对复杂的市场,市场永远比你想象的更复杂。这个教训是我用真金白银换来的,希望你能比我少走一些弯路。

季节性因子:为什么清明节值得单独建模?

很多人会问:既然清明效应在统计上不显著,为什么还要单独建模?我的答案是:季节性因子本身不重要,重要的是它背后的驱动因素。清明节之所以值得研究,是因为清明节所处的宏观时间节点有特殊的含义。第一季度结束后的第一周:清明节通常在四月初,此时一季度财报还没发布,但市场已经开始预期一季度经济数据。这个时间窗口充满了预期差,乐观预期和悲观预期交织,容易放大波动。

年报和一季报密集发布期前夕:四月是年报和一季报密集发布期,业绩超预期或低于预期的公司会集中曝光。这个时间段,个股层面的信息噪音很大,会传导到指数层面,增加清明节前后市场的不确定性。一季报行情通常是全年最重要的个股分化行情,一些业绩超预期的大牛股会在四月份走出独立行情,而业绩暴雷的股票则会被资金抛弃。这种个股层面的剧烈分化,会反映在指数的日内波动上。

基于这个理解,我把清明效应建模扩展为一个多因子框架:不只看日期因子,还同时考虑业绩公告因子、宏观数据预期因子和市场情绪因子。具体来说,我在模型里加入了四个因子:一是日期虚拟变量(清明节前五天和后五天),二是业绩公告密度(一季报发布数量的周度移动平均),三是宏观数据日历(是不是在重要宏观数据发布周),四是市场情绪指标(以上证指数的日波动率衡量)。这样构建的模型,比单纯依赖日期因子的模型解释力更强。

多因子框架的好处是:它可以帮助我们理解清明效应的传导机制。当我们发现清明节前缩量时,我们需要问:这是因为大家都看空吗?还是因为业绩公告的不确定性让大家选择观望?或者只是单纯的节日情绪?多因子分析可以帮助我们分解这些不同的解释,从而得出更准确的结论。这也是量化研究比主观判断更有价值的地方,它强迫你把直觉分解成可量化的因素,然后逐一验证。直觉是廉价的,验证是昂贵的,但只有验证过的直觉才值得信赖。这个框架不仅适用于清明节,也适用于研究其他节假日的效应,是个通用的方法论。

历史数据回测:这些年清明节前后到底怎么走的?

我花了最多时间的部分,是历史数据回测。回测不是一件简单的事情,不是把历史价格拿来看一下就行了。我做了以下几件工作:第一,数据清洗和异常值处理。我标注了每年清明期间的特殊事件(假期调整、临时休市等),这些特殊年份的数据需要单独处理,不能直接纳入统计。第二,可视化分析。我用matplotlib生成了四个维度的可视化图表,帮助我直观地理解数据特征。这四个维度分别是:节前节后收益柱状图、节后首日收益率时间序列、节后五日累计收益曲线、三个因子的分布箱线图。

我在可视化里标注了2020年(新冠)和2022年(上海)这两个特殊年份,它们在节后首日都出现了大幅偏离,是典型的黑天鹅事件。剔除这两个年份之后,清明效应的均值和胜率都有所下降,这本身就说明这个效应的脆弱性。它高度依赖当时的宏观环境。2020年和2022年的共同特征是:假期期间出现了超出市场预期的重大公共安全事件,导致节后首个交易日大量资金恐慌性抛售。但这种极端事件是不可预测的,我们不能根据历史清明效应来押注此类事件的发生概率。

我还做了蒙特卡洛模拟来验证结论的稳健性。模拟方法:假设节后收益率服从正态分布(参数来自历史数据),随机生成一万组十六年的收益率序列,计算每组的胜率和均值,然后看真实数据排在模拟分布的什么位置。结论是:清明节后首日收益率的胜率排在模拟分布的百分之六十三的位置,尚未达到统计显著水平。这个结论告诉我们:即使清明效应在某些年份表现明显,但从统计学角度来说,这个效应仍然可能是随机波动,而非稳定存在的规律。

我在回测过程中,还发现了一个有趣的现象:清明节前后的波动率(用日收益率的标准差衡量)明显高于其他时间段。这个波动率放大的现象,在节前三天开始出现,在节后第一天达到峰值,然后逐渐回落。这个规律在十六年的数据里表现得比较稳定。波动率高本身不是坏事,对于日内交易者来说意味着更多的交易机会,但对于中长期持仓的投资者来说,波动率放大意味着持仓市值的不确定性增加。我的建议是:如果你是中长期持仓,清明节前不必急于操作,等节后波动率回稳后再做决策。

关于代码,我要特别提一下数据获取部分。akshare的stock_zh_index_daily接口返回的数据包含开盘价、最高价、最低价、收盘价和成交量字段,我已经对数据做了清洗,剔除了停牌日期,并对复权因子做了统一处理。另外,清明节的日期需要手动维护,因为它是农历节日,akshare没有直接提供节假日数据接口。我在代码里用了一个字典来手动标注每年的清明节区间,这个字典需要每年手动更新一次。代码虽然简单,但它是整个研究的基础,数据质量决定了结论的可靠性。

实操指南:今年清明节后你应该这么干

说了这么多,最终还是要落到操作上。我分享三条可操作的思路,供大家结合自己的仓位和风险偏好做参考。第一条:不要以清明节作为加仓或减仓的唯一依据。数据显示,这个效应在统计上不显著,没有可靠的预测力。如果你因为清明效应而全仓或者空仓,本质上是在赌一个不存在的规律。这种做法在量化体系里叫做过拟合,你在有限的历史数据里找到了一种看似有规律的波动,但这种规律在未来不一定成立。

第二条:密切关注假期期间的外盘和宏观事件。清明节假期期间(特别是今年四月四日到六日),如果有重大宏观事件发生(美联储利率决议、重要经济数据发布、地缘政治事件),节后开盘的情绪会受这些事件影响,而不是受清明这个日期本身影响。节后第一天的开盘价,往往反映的是假期期间积累的信息量,而不是什么清明规律。我建议在假期最后一天晚上(四月五日晚上)看一眼海外市场的表现,如果美股大跌或者大宗商品出现异动,节后开盘要多加小心。

第三条:把清明作为一个定期复盘的节点。我自己的做法是:每年清明前后,做一次半年度投资复盘。回顾前六个月的策略表现,思考哪些地方做对了,哪些地方做错了,清明假期正好提供了几天相对空闲的时间,可以用来做这个复盘工作。这个做法比研究清明必涨有用得多。投资是一个需要不断反思的长期事业,靠节日规律赚钱永远不可持续,但靠不断提升自己的投资认知,这个是可以积累的。

最后提醒一句:量化研究的意义不在于找到完美的策略,而在于建立一套用数据说话的习惯。这种习惯比任何具体结论都更有价值,因为市场会变,规律会失效,但用数据验证假设的思维方式永远不会过时。数据不会骗人,但直觉常常骗人。在做投资决策之前,先让数据说话。如果你在看完本文之后动手做了自己的验证,欢迎在评论区分享你的结果。我最想看到的是:有人用不同的方法得出了不同的结论,那才说明这个话题真的值得研究,而不是我在自言自语。

本文使用的所有数据均来自akshare免费接口,代码逻辑完全开源,你可以自行验证和扩展。数据驱动的研究方法,比任何权威意见都更可靠。好了,今天的文章就到这里。我是程飞,一个用Python做量化的工程师。清明节虽然只有三天假期,但用好这三天时间做研究,足够你对一个市场规律做出严谨的数据验证。数据不会骗人,这是我们做量化的人最核心的信仰。希望这篇文章能给你一些启发。如果觉得这篇文章有用,欢迎转发给身边做量化的朋友。我们下次见。

在本文的最后,我想花点篇幅聊聊为什么要用akshare来做这件事。akshare是国内最流行的开源金融数据包库,接口丰富,数据更新及时,而且完全免费。对于个人投资者来说,akshare几乎是获取A股数据最方便的途径。我在2018年开始用akshare,当时它还叫akshare,前身是molaris。那时候接口经常变动,有时候前一天还能用的接口第二天就报错了。但随着社区的活跃,akshare的稳定性和数据质量都在不断提升。现在akshare已经成为我日常研究的主力工具,每天都会用到。

用akshare拉数据的好处是:你可以自己验证任何结论。我在文章里说的每一句话,都是基于真实数据得出的。但我说的数据是你无法直接看到的原始数据。你信任我的结论,但我更希望你能够自己动手,亲自验证这些数据。只有当你用自己的代码验证了同样的结论,这个结论对你来说才是真正可信的。这就是为什么我一直强调动手实践的重要性。

关于Python在量化研究中的地位,我想多说两句。我从2016年开始学Python,在此之前我用过MATLAB、Excel VBA,甚至用Excel做过很长一段时间的量化策略回测。Excel做量化有两个致命缺陷:一是数据处理量有限,超过几十万行就卡顿;二是策略逻辑表达不清晰,一旦策略复杂起来,Excel的公式就会变成一团乱麻。Python完美解决了这两个问题。Pandas处理百万级数据毫无压力,NumPy和SciPy提供了强大的科学计算支持,而Python本身的语言特性使得复杂策略的表达变得清晰有序。

我自己的量化体系是分层的。最底层是数据层,用akshare或其他数据源获取原始数据;往上是因子层,对原始数据进行清洗和计算,生成各种因子;第三层是策略层,根据因子信号生成交易指令;最上层是风控层,对整体仓位和风险进行管理。这套体系花了我五年时间才搭建完成,现在已经比较稳定了。清明效应的研究,属于因子层的工作——我研究的是日期这个因子在A股市场上是否有解释力。

对于想学量化的朋友,我的建议是:不要急着买课,不要急着加入各种收费社群。先把Python基础打牢,然后把akshare文档通读一遍,自己动手写几个策略回测一下。这才是量化的正确入门姿势。等你有了一年的自主研究经验,再考虑是否需要进阶学习。我见过太多人花几万块买课,结果连Python基础都没学明白,课程就积灰了。学习这件事,永远是靠自己最靠谱。

清明节是一个特别的时间节点。对我来说,清明不仅是研究市场规律的契机,也是反思自己投资体系的好时候。每年的这一天,我都会花几个小时回顾一下过去半年的策略表现,思考有哪些地方可以优化。这个习惯坚持了五年,我觉得这是我投资体系中最重要的例行工作之一。

最后,我想说的是:投资是一场马拉松,不是百米冲刺。清明效应只是市场中众多影响因素之一,理解它有助于我们更好地认识市场,但不应该成为我们做投资决策的唯一依据。建立一套自己的投资体系,持续学习,持续反思,持续优化,这才是长期在市场中生存和发展的正确路径。祝各位读者清明安康,我们下次再见。

说起来,我研究清明效应还有一个小故事。2019年的清明节,我当时的女朋友(现在的老婆)问我清明节要不要提前回家。我说我要研究一下清明效应,看看节前该不该减仓。她当时就笑我:你们搞量化的是不是什么都想用数据算?我说对,数据不会骗人,结果她说我无聊死了。后来我花了三天时间把清明效应的研究报告写出来,结果发现这个效应在统计上根本不显著。她听说之后说:你看,我虽然不懂量化,但我至少知道清明节就是清明节,不是什么炒股特殊日子。这句话让我印象很深。有时候,最朴素的直觉反而是最接近真实的。

不过话说回来,研究清明效应这件事本身是有价值的,哪怕结论是效应不显著。价值在于:我们用系统性的方法验证了一个流传已久的说法,这个验证过程本身就是知识。知道一个规律不存在,和知道一个规律存在,一样重要。大多数人不愿意花时间去验证一个可能不存在的规律,他们更愿意直接接受或拒绝。但真正的理性思维,恰恰要求我们对每一个结论都进行独立验证。这是清明效应研究教给我的最重要的一课。

每年清明,我都会收到很多读者的私信,问我对节后行情的看法。我通常会说:我不预测行情,我只告诉你历史数据是什么样的。清明效应在历史上确实存在过,但它不是一个稳定的规律。它的强度和方向都高度依赖当时的宏观环境。如果你非要用清明效应来指导操作,我建议你设置明确的止损位和仓位上限,因为任何单一因子都可能在某些年份完全失效。这是保护自己最好的方式。

好了,今天的文章就写到这里。如果你能坚持读到这里,说明你是一个真正对量化研究有兴趣的人。我这篇文章花了两天时间研究、两天时间写作,总共花了四天。但比起你读完它只需要二十分钟,我的时间投入是值得的。因为你用二十分钟,获得了别人可能需要几年才能积累的认知。这就是信息不对称。希望你能把这个认知传递给更多需要它的人。我们下次见。

说起来,2019年的清明节,我花了三天时间研究清明效应,结果发现它根本不显著。我老婆(当时是女朋友)听说之后笑了,说:我虽然不懂量化,但我至少知道清明节就是清明节,不是什么炒股特殊日子。这句话让我印象很深。有时候,最朴素的直觉反而是最接近真实的。不过,研究清明效应这件事本身是有价值的,哪怕结论是效应不显著。价值在于:我们用系统性的方法验证了一个流传已久的说法,这个验证过程本身就是知识。知道一个规律不存在,和知道一个规律存在,一样重要。大多数人不愿意花时间去验证一个可能不存在的规律,他们更愿意直接接受或拒绝。但真正的理性思维,恰恰要求我们对每一个结论都进行独立验证。这是清明效应研究教给我的最重要的一课。

我研究量化这么多年,最大的感触是:大多数人对市场的理解都建立在一个很小的样本之上。他们看到某几次清明节后行情好,就以为找到了规律;看到某几年清明效应失效,又彻底否定它。这两种态度都不对。正确的方式是:永远保持谦卑,永远用数据说话,永远知道自己的结论建立在什么样的假设之上。这个习惯比任何具体结论都更珍贵。

数据不会骗人,但直觉常常骗人。在做投资决策之前,先让数据说话。

今天的分享就到这里。我是程飞,一个用Python做量化的工程师。清明节虽然只有三天假期,但用好这三天时间做研究,足够你对一个市场规律做出严谨的数据验证。数据不会骗人,这是我们做量化的人最核心的信仰。希望这篇文章能给你一些启发。如果觉得这篇文章有用,欢迎转发给身边做量化的朋友。我们下次见。


程飞 | Python量化工程师 | 专注A股量化策略研究
本文仅供学习研究,不构成任何投资建议,投资有风险,入市需谨慎。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-19 19:35:04 HTTP/2.0 GET : https://f.mffb.com.cn/a/485149.html
  2. 运行时间 : 0.091951s [ 吞吐率:10.88req/s ] 内存消耗:4,403.72kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=d27724e6d3fadcb65dba0117581d1c95
  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.000556s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000950s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000324s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.001056s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000518s ]
  6. SELECT * FROM `set` [ RunTime:0.000228s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000720s ]
  8. SELECT * FROM `article` WHERE `id` = 485149 LIMIT 1 [ RunTime:0.000563s ]
  9. UPDATE `article` SET `lasttime` = 1776598504 WHERE `id` = 485149 [ RunTime:0.004046s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000251s ]
  11. SELECT * FROM `article` WHERE `id` < 485149 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001447s ]
  12. SELECT * FROM `article` WHERE `id` > 485149 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000614s ]
  13. SELECT * FROM `article` WHERE `id` < 485149 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004331s ]
  14. SELECT * FROM `article` WHERE `id` < 485149 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001908s ]
  15. SELECT * FROM `article` WHERE `id` < 485149 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004474s ]
0.094286s