ARIMA模型预测上证指数:从平稳性检验到滚动预测的实战指南
简介一份基于ARIMA模型对上证指数进行预测的毕业设计报告适合金融统计、时间序列分析方向的学生与研究者参考旨在解决非平稳股价序列的建模预测问题。报告系统梳理了移动平均(MA)、自回归(AR)、自回归移动平均(ARMA)及ARIMA过程的理论基础重点说明差分运算对非平稳序列的平稳化作用明确指出许多非平稳序列经差分后转为差分平稳序列即可适用ARIMA模型。借助EViews 7软件报告完整展示了数据序列分析、模型建立、参数估计最大似然估计、贝叶斯估计和残差白噪声检验等流程结合上证指数历史数据给出预测结果同时也讨论了模型的优缺点与预测局限认为股票价格受复杂不确定因素影响理论难以彻底预测。资源为单个doc文档共1个文件压缩包约644KB内容包含中英文摘要、目录、正文及完整建模分析特别适合毕业设计选题或系统学习ARIMA建模的读者对照参考。目前已有181人学习下载是一份兼顾理论与实操的时间序列分析参考资料。1. 基于ARIMA模型对上证指数的预测先接受一个反直觉结论答辩现场最常见的尴尬是PPT里贴出一条“预测曲线和真实曲线几乎重合”的图评委问了一句“那你的策略赚钱了吗”——全场安静。用ARIMA模型对上证指数的预测真正难的不是跑通代码而是理解这套线性工具在股价这类强非平稳序列上能做什么、不能做什么。这篇文章按毕业设计报告的完整链路来讲数据怎么拿、平稳性怎么处理、p/d/q三个参数怎么定、模型怎么诊断、预测怎么评估。我尽量把每一步的参数选择和踩坑写出来让你照着能复现而不是看完只知道“ARIMA可以用”。先泼一盆冷水ARIMA对指数价格的拟合效果通常看起来很好但对收益率的预测能力接近随机这恰恰是毕业设计里最值得展开讨论的点也是评委最常追问的点。2. 先看懂ARIMA在做什么平稳性、差分与三个参数的直觉2.1 ARIMA(p,d,q)到底在拟合什么自回归与滑动平均的直觉ARIMA由三块拼起来。AR(p)是自回归项用过去p个时刻的观测值线性组合预测当前值MA(q)是滑动平均项用过去q个时刻的预测误差来修正当前预测d阶差分负责把非平稳序列变成近似平稳序列。一句话总结先差分去掉趋势再用AR项和MA项刻画残差里的线性相关性。对上证指数日线收盘价来说原始价格序列明显带漂移直接套ARMA模型会得到“价格依赖昨天价格、依赖大前天价格……”这样一堆高度相关的系数看着拟合得很漂亮实际预测只有一个效果把最新价格平移一小段。原因是价格序列本身近似随机游走最强的预测变量就是它自己其他滞后项贡献的增量信息极少。所以我一般建议要么对原始价格序列做一阶差分后建模要么直接拿对数收益率建模。对数收益率在数学上等价于对对数价格做一阶差分好处是数值更稳定而且天然消除了价格量纲的影响不同时间段的收益率可以直接比较。这也是金融时间序列里比直接差分收盘价更干净的做法。2.2 金融数据天然违背ARIMA假设为什么上证指数是非平稳的ARIMA的核心假设是差分后的序列平稳且残差是白噪声。上证指数恰恰在几个层面违背这些假设。第一波动率聚集。某段时间指数大涨大跌另一段时间缩量横盘这导致收益率序列的方差不是常数。ARIMA假设同方差但金融数据的方差会随时间变化这也是GARCH类模型存在的理由。第二收益率分布尖峰厚尾。上证指数日收益率的历史分布比正态分布更集中在零附近但尾部事件千股跌停、政策跳空出现的频率远超正态预测。ARIMA的估计方法基于最小二乘或极大似然对极端值非常敏感一次异常行情就能把模型参数拉偏。第三线性相关性弱。对上证指数日对数收益率做自相关检验绝大多数滞后阶的ACF值落在正负两倍标准差之内说明历史收益率对当期收益率几乎没有线性预测力这也是市场弱式有效的一种表现。ARIMA能捕捉的是“残差里还有没有线性结构可挖”如果结构本来就不存在定出来的p和q再漂亮也只是在拟合噪声。2.3 差分阶数d过差分是新手最容易踩的第一个雷d参数决定差分的次数。对上证指数价格序列先做对数变换再检验平稳性这是第一步。import numpy as np import pandas as pd from statsmodels.tsa.stattools import adfuller # df 为日线数据包含 close 列按日期升序 close df[close].astype(float) log_price np.log(close) # 对原对数价格做 ADF 检验 adf_price adfuller(log_price, autolagAIC) print(flog(price) ADF stat{adf_price[0]:.4f}, p-value{adf_price[1]:.4f}) # 对对数收益率做 ADF 检验 log_return log_price.diff().dropna() adf_ret adfuller(log_return, autolagAIC) print(flog(return) ADF stat{adf_ret[0]:.4f}, p-value{adf_ret[1]:.4f})这段代码的逻辑很直接先检验对数价格是否平稳再检验对数一阶差分是否平稳。ADF检验的原假设是序列存在单位根p值小于0.05时拒绝原假设认为序列平稳。上证指数对数价格的p值通常在0.5以上而收益率序列的p值通常在0.0001以下说明d1是对数价格到收益率的正确差分阶数。参数说明里有两个容易忽略的点。autolagAIC表示用AIC自动选择检验用滞后阶数比手动指定maxlag更稳妥。diff().dropna()会删掉第一个缺失值这是必须的否则adfuller会报错或者结果失真。一个常见误用是对收益率序列再做一次差分把d取成2。这样做的后果是模型拟合的“平稳序列”变成了收益率的差分预测结果在还原回价格时会放大每次预测误差错一步后面全部漂移。判断d是否过差分有个简单方法差分后再看一次ADF如果p值已经在0.01以下、且差分序列的样本方差比上一层更大基本就是差分过度了。3. 定阶与建模从ACF/PACF到信息准则的完整流程3.1 拿到上证指数数据数据源与预处理建议做毕业设计常用Tushare、AkShare、Baostock这类库拉取上证指数日线。拿到的数据里一般有open、high、low、close、volume等列建模只用close。数据预处理必须做三件事按日期升序排序、把日期设为索引、确认没有重复日期和空值。import akshare as ak df ak.stock_zh_index_daily(symbolsh000001) df df.rename(columns{date: date, close: close}) df[date] pd.to_datetime(df[date]) df df.set_index(date).sort_index() df df[[open, high, low, close, volume]] # 检查缺失与重复 print(df.index.is_monotonic_increasing) print(df[close].isna().sum()) df df[~df.index.duplicated(keepfirst)]这里我用AkShare举例因为它不需要token对毕设来说门槛最低。symbolsh000001代表上证指数如果你用Tushare对应ts_code000001.SH。数据预处理这一步容易被忽视但问题往往藏在里面AkShare返回的日期已经是datetime格式但不同数据源可能返回字符串需要统一转格式指数数据一般没有停牌缺失但节假日会导致日期索引不连续ARIMA不要求索引连续只要按时间顺序排列即可重复日期会让模型把同一天当成两个时间点滞后阶错位必须先去除。训练集我通常取最近2000到3000个交易日既足够估计参数又不会让早期市场结构影响近期预测。3.2 ACF/PACF定阶看图定阶的边界在哪拿到平稳序列后传统定阶方法是看自相关函数ACF和偏自相关函数PACF的截尾特征。AR(p)对应PACF在p阶后截尾MA(q)对应ACF在q阶后截尾。对上证指数收益率这两张图的典型特征是几乎所有的柱子都落在置信区间内偶尔有一两根超出两倍标准差但这种“超出”只是随机波动。from statsmodels.graphics.tsaplots import plot_acf, plot_pacf import matplotlib.pyplot as plt fig, axes plt.subplots(2, 1, figsize(12, 6)) plot_acf(log_return, lags40, axaxes[0], titleACF of log return) plot_pacf(log_return, lags40, axaxes[1], titlePACF of log return) plt.tight_layout() plt.show()看图定阶在这个场景下很考验经验。如果ACF在滞后1阶有明显负相关说明可能存在MA(1)如果PACF在滞后1阶明显超限说明可能存在AR(1)。但上证指数大多数时间段的ACF/PACF都像白噪声这时继续用“靠眼力”定阶就没有统计依据了。我的经验是把ACF/PACF当作辅助诊断工具而不是定阶依据。它们可以帮你确认序列是否接近白噪声也可以帮你缩小p和q的搜索范围但在指数收益率上最终定阶几乎都依赖信息准则扫描。3.3 用信息准则自动定阶遍历p和q的完整代码信息准则定阶的原理是给模型复杂度加惩罚。AIC和BIC都同时考虑拟合优度和参数数量BIC对参数数量的惩罚更重。毕设报告里一般建议把AIC、BIC同时输出并解释选择依据。import warnings warnings.filterwarnings(ignore) from statsmodels.tsa.arima.model import ARIMA import itertools train log_return # 平稳序列对数收益率 best_aic float(inf) best_order None best_model None p_range range(0, 6) d_range range(0, 2) # 对收益率序列d 只能取 0 q_range range(0, 6) for p, d, q in itertools.product(p_range, d_range, q_range): try: model ARIMA(train, order(p, d, q)) fitted model.fit(method_kwargs{disp: False}) if fitted.aic best_aic: best_aic fitted.aic best_order (p, d, q) best_model fitted except Exception: continue print(fBest order: {best_order}, AIC: {best_aic:.2f})这段代码做了几件事遍历p从0到5、q从0到5对收益率序列固定d0用AIC选优并把异常拟合跳过。我在代码里保留了d_range但注释说明了对收益率序列d只能取0。如果你对对数价格建模d应该固定为1而不是让程序去遍历0、1、2。三个需要说明的参数写法。method_kwargs{disp: False}用于关闭优化过程的控制台输出不加的话会打印一大堆收敛信息。try-except很重要ARIMA在部分参数组合下会碰到奇异矩阵或收敛失败直接中断程序会让整个调参过程崩溃。p和q的搜索范围0到5对日频收益率完全够用再大容易过拟合而且拟合速度会明显变慢。选完最佳阶数后记得打印一下模型摘要重点看系数显著性和AIC值。best_model ARIMA(train, orderbest_order).fit() print(best_model.summary())摘要里每行系数后面有P|z|列如果某个AR或MA项的p值大于0.05说明该项不显著。毕设里常见的情况是最优模型的AIC最低但所有系数的p值都很大——因为收益率序列本来就接近白噪声任何阶数的参数都在往噪声里拟合。遇到这种情况不必硬调参数直接在报告里写“该序列线性相关性微弱模型预测能力有限”反而是加分项。4. 模型诊断与评估别被漂亮的拟合曲线骗了4.1 残差白噪声检验拟合好不等于预测准ARIMA建模完成后诊断的核心是残差检验。残差应该近似白噪声均值为零、没有自相关、没有异方差迹象。如果残差还有显著自相关说明模型没把信息提取干净需要调整阶数。from statsmodels.stats.diagnostic import acorr_ljungbox resid best_model.resid # Ljung-Box 白噪声检验检查残差在滞后 1 到 20 阶的自相关性 lb_test acorr_ljungbox(resid, lagslist(range(1, 21)), return_dfTrue) print(lb_test[lb_pvalue].head(10))Ljung-Box检验的原假设是残差序列是白噪声。p值大于0.05时不能拒绝原假设说明残差没有显著自相关模型通过诊断。我在代码里选择了1到20阶滞后而不是只检验一个滞后因为只看单阶容易漏掉高阶自相关。实际写报告时还应该结合残差图残差如果是围绕零轴上下随机波动、没有明显趋势和波动聚集才是健康的。对上证指数一个很容易出现的现象是残差在大跌日附近出现明显的极端值在平静期又缩得很小。这说明模型没捕捉到波动率变化残差方差不稳定。此时可以在报告里坦诚说明ARIMA的局限或者引入GARCH类模型做对比。4.2 预测效果的三种评估口径RMSE、MAPE、方向命中率模型评估不能只看一张拟合曲线图。我建议至少算三个指标RMSE衡量平均绝对误差水平、MAPE衡量相对误差、方向命中率衡量预测的涨跌方向是否与实际一致。方向命中率对金融预测尤其重要即使误差大方向判断正确也有业务价值。import numpy as np from sklearn.metrics import mean_squared_error test log_return[-n_test:] # n_test 为测试集长度 forecast best_model.forecast(stepsn_test) rmse np.sqrt(mean_squared_error(test, forecast)) mape np.mean(np.abs((test - forecast) / test)) * 100 direction_hit np.mean(np.sign(forecast) np.sign(test)) print(fRMSE: {rmse:.6f}) print(fMAPE: {mape:.2f}%) print(fDirection hit rate: {direction_hit:.2%})这段代码的前提是建模序列本身是收益率test和forecast都代表收益率预测。RMSE和MAPE都直接作用在收益率序列上量级很小这是正常的。方向命中率则用np.sign比较预测收益率与实际收益率的符号是否一致。有三处容易踩坑。第一如果建模对象是价格而非收益率MAPE公式里的分母会出现零值或负值问题需要先判断第二np.sign会把0判定为0若预测值恰好为0会导致方向判定失真实际应用中可以把0归入“不判断”类第三RMSE和MAPE只看数值大小参考意义有限必须和“用昨天价格直接当预测”的基准模型对比ARIMA如果连这个基准都跑不赢说明模型的预测信息其实很弱。4.3 滚动预测 vs 一步预测毕设中最常见的统计口径陷阱这个陷阱值得单独写一段。很多毕设直接在训练集上算拟合值再和真实值画在一起得到“预测曲线完美贴合”的效果。这不是预测这是回带拟合值。正确的做法是滚动预测。模拟真实场景每天收盘后用截至当天的所有历史数据重新估计模型然后预测下一日收益率。重复这个过程直到测试集结束把每天的预测值拼成一条预测序列。forecast_list [] history list(train.values) # 训练集收益率 for actual in test.values: model ARIMA(history, orderbest_order) fitted model.fit(method_kwargs{disp: False}) yhat fitted.forecast(steps1)[0] forecast_list.append(yhat) history.append(actual) forecast_roll np.array(forecast_list) rmse_roll np.sqrt(mean_squared_error(test, forecast_roll))每次循环都重新拟合一次模型这才能反映模型在真实使用中的表现。这里有一个计算耗时问题如果测试集有500个交易日、每次拟合耗时1秒循环就要8分钟以上。毕设里可以每5个交易日重新拟合一次模型中间交易日直接用最近一次拟合结果预测训练代码会快很多也能接受。滚动预测的RMSE会比一次性forecast明显更大。这不是代码写错了而是正常现象一次性forecast在步数增加时预测值会收敛到序列均值滚动预测每天都在输入最新信息但每次都要承受重新估计的参数不确定性。5. ARIMA预测上证指数的六条踩坑记录5.1 训练集切分不当导致“未来数据泄漏”现象模型在测试集上的预测效果好得不像话RMSE低得离谱但换一个时间段马上翻车。原因对全序列做差分或对数变换后再切训练/测试相当于测试集的信息已经参与过变换参数的估计更隐蔽的是有人用全序列的均值做去中心化后再切分未来数据影响了训练数据的中心位置。解决先切分再变换。训练集和测试集分开做差分、对数变换所有统计量只从训练集估计。参数定阶时只使用训练集做信息准则扫描确定阶数后再在测试集上验证。5.2 收益率序列的d参数被误设为1现象对收益率序列用ARIMA(p,1,q)建模预测结果是一条几乎水平或缓慢漂移的直线还原成价格后偏差越来越大。原因收益率已经是平稳序列d再取1等价于对收益率再做一阶差分模型描述的是“收益率的变动率”而预测目标是收益率两者口径不一致。解决定阶时把d固定为0。如果建模对象是收盘价d取1如果建模对象是收益率或对数收益率d取0。这一点在章节3.3的代码注释里已经写明实际操作时很容易手滑。5.3 非交易日缺口导致滞后错位现象模型拟合摘要里所有滞后的系数都异常或者在预测长假后的第一个交易日时误差特别大。原因上证指数有春节、国庆长假相邻交易日之间实际间隔可能超过一个自然日。ARIMA的滞后项是按“上一个样本点”计算的如果数据里缺少这些间隔标记模型会把春节前最后一个交易日和春节后第一个交易日当作相邻日。解决如果只是建模指数日线直接按交易日序列建模即可滞后项的含义就是“上一个交易日”不用补自然日。但如果你的代码把日期索引转成自然日频率再差分就会出现问题。保持交易日索引不重置是最简单的规避办法。5.4 过差分导致预测结果近似常数现象模型对测试集的预测值几乎不变方向命中率在50%附近徘徊。原因d取2以后预测序列经过两次差分还原误差逐级累积最终结果趋近于一个恒定值。这个问题在价格序列建模时特别常见。解决用对数收益率序列建模从根源上避开d的歧义。如果非要直接用价格用ADF检验确定d的最小取值ADF的p值已经显著小于0.05时就不需要再做第二次差分。5.5 数据源不一致导致结果无法复现现象同一天的数据A同学和B同学拉到的收盘价不同模型系数对不上。原因不同数据源对上证指数的复权处理和缺失值填充规则不同。指数本身不复权但有的数据源会在分红除息日做调整有的会把缺失交易日记为前一日收盘价。解决固定一个数据源并写进毕业设计的数据说明里。我的做法是正文统一用AkShare获取后在数据清洗步骤里打印头尾日期和样本量保证读者能复核。换数据源后至少要重新跑一遍平稳性检验和定阶扫描。5.6 样本量太少导致定阶不稳定现象取最近500个交易日做训练每次滚动预测时的最优阶数都不一样预测结果忽好忽坏。原因样本量少时ACF/PACF的置信区间宽信息准则选出的阶数方差大。上证指数在2015年、2016年和2024年都出现过行情结构剧烈变化的时段用太短的样本估计参数模型捕捉的是近期特定行情特征而不是稳定规律。解决训练窗口至少取1500到2000个交易日。如果毕业设计里想讨论不同市场阶段的表现可以按年份分段做子样本分析但每个子样本的拟合和预测逻辑要完全一致不要在子样本里再重新扫描阶数。6. 把预测结果落地方向命中率优先而不是最小化RMSE前面把ARIMA对上证指数预测的完整流程走了一遍最后补充一个实操技巧评估时把方向命中率作为核心指标而不是盯着RMSE优化。原因很简单指数预测的RMSE再小也小不过“用昨日收盘价当今日预测”的基准。你费尽心思把RMSE从0.012降到0.011对实际决策几乎没有区别。但方向命中率不同如果模型能稳定达到52%以上的涨跌方向判断正确率在策略回测里就有意义了。# 将价格预测转换为方向判断 pred_close np.exp(forecast_roll.cumsum() log_price.iloc[-1]) actual_close np.exp(test.cumsum() log_price.iloc[-1]) # 方向命中率基于收盘价涨跌 actual_dir np.diff(actual_close) 0 pred_dir np.diff(pred_close) 0 directional_accuracy np.mean(actual_dir pred_dir) print(fDirectional accuracy: {directional_accuracy:.2%})这段代码展示了另一种评估口径把收益率预测还原成收盘价序列再计算每日涨跌方向是否判断正确。cumsum()把日收益率累加成累计收益率再加log_price.iloc[-1]还原成对数价格最后exp映射回价格区间。实际使用时有三个经验值可以参考。第一日频上证指数的方向命中率在50%附近波动非常正常能连续100个交易日稳定超过52%已经算有信息量第二仅基于ARIMA做方向预测不能直接驱动交易但可以作为风险过滤器和仓位调整参考比如模型连续预测到负收益率时降低仓位第三把ARIMA和波动率预测模型结合比单独使用更有实用价值ARIMA抓方向、GARCH抓幅度两者互补。我自己的教训是第一版毕业设计过于追求RMSE把p和q调到5以上训练集上拟合曲线几乎完美滚动预测换到另一年直接失效。后来改用滚动预测评估并如实写清楚“指数收益率线性可预测性弱”这个结论老师反而认可。这个方向的价值在于它让你真实理解线性时间序列模型的边界也让你掌握一套严谨的模型评估方法论。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

静悄悄的脑力报废:从碎片化侵蚀到深度思考复健

静悄悄的脑力报废:从碎片化侵蚀到深度思考复健

1. 先给"脑力报废"画个像:它是怎么被一步步磨掉的我注意到一个很吊诡的现象:身边几乎没有人会承认自己"变笨了",但几乎每个人都偶尔会对着手机屏幕发呆,想不起来刚才准备干什么;明明刷了两个小时的…

2026/10/13 15:47:51 阅读更多 →
Spring Boot宿舍管理系统:从设计到部署的完整毕业设计指南

Spring Boot宿舍管理系统:从设计到部署的完整毕业设计指南

每年毕业季我都会在社区里看到一大堆“宿舍管理系统”相关的帖子,不少同学私信问得最多的就是:这东西到底怎么做才能既过了查重、又能在答辩时讲清楚,还能让评委觉得工作量够。这套基于Spring Boot的学生宿舍管理系统,可以说是我见…

2026/10/13 15:47:51 阅读更多 →
轻日历:旧电脑上的轻量日历替代方案,绿色无弹窗

轻日历:旧电脑上的轻量日历替代方案,绿色无弹窗

简介:轻日历是人生日历的瘦身升级版,定位为一款简洁小巧、界面清爽的桌面日历小工具,面向偏好轻量应用的日常用户。它提供黄历、农历、黄道吉日、节假日安排等日历信息,同时集成天气、便签、记事、纪念日、截图、报时等实用功能&a…

2026/10/13 15:47:51 阅读更多 →

最新新闻

Rust性能优化实战:五个技巧榨干硬件性能

Rust性能优化实战:五个技巧榨干硬件性能

很多人聊 Rust 性能优化,第一反应是“这语言天生就快,还用得着调?”我最初也这么想,直到接手一个用 Rust 写的日志处理服务,在单机 8 核上处理一千万条日志要跑十几秒,调完之后压缩到两秒出头,C…

2026/10/13 16:37:10 阅读更多 →
5G智慧校园解决方案:云网端架构、专网组网与评审避坑指南

5G智慧校园解决方案:云网端架构、专网组网与评审避坑指南

简介:这份PPT围绕5G智慧校园解决方案展开,面向教育信息化管理者、智慧校园规划人员及行业方案设计师,系统梳理了教育信息化从1.0“三通两平台”迈向2.0“三全两高一大”的政策背景与现实需求,并针对教学质量提升、资源优质共享、校…

2026/10/13 16:37:10 阅读更多 →
Python声纹识别实战:EcapaTdnn/ResNetSE等四大模型对比与工业部署

Python声纹识别实战:EcapaTdnn/ResNetSE等四大模型对比与工业部署

简介:本资源是一套基于PaddlePaddle实现的声纹识别系统完整工程,面向人工智能方向的学习者、语音算法初学者及高校课程设计实践者,聚焦于说话人身份验证这一典型生物特征识别任务。项目集成EcapaTdnn、ResNetSE、ERes2Net、CAM等前沿模型&…

2026/10/13 16:37:09 阅读更多 →
Rust性能优化五技巧:数据结构、内存分配与缓存友好

Rust性能优化五技巧:数据结构、内存分配与缓存友好

Rust 的性能优化,说起来很有意思。大家选 Rust 多半是冲着性能来的,但真正把程序写出来之后,你会发现“能跑”和“跑得快”之间还有很长一段路。我早期做 Rust 项目时也走过弯路,一度以为堆一些 unsafe 代码、换更高级的算法就是优…

2026/10/13 16:37:09 阅读更多 →
开源大模型本地部署四件套:环境配置、私有部署、LoRA微调与LangChain接入

开源大模型本地部署四件套:环境配置、私有部署、LoRA微调与LangChain接入

简介:本资源是一套面向AI工程师与大模型应用开发者的开源大模型全栈实践工具包,聚焦环境配置、私有化部署、LoRA微调及LangChain集成四大核心环节,助力开发者快速落地本地化大模型应用。压缩包共79个文件,涵盖45个Python脚本&…

2026/10/13 16:37:09 阅读更多 →
实习和校招到底在选什么?从简历到面试的完整求职指南

实习和校招到底在选什么?从简历到面试的完整求职指南

1. 实习和校招到底在选什么很多同学第一次接触实习和校招的时候,脑子里冒出来的第一个问题往往是“我该投哪家”“简历怎么写”“面试问什么”。这些问题当然重要,但如果只盯着这些操作层面的东西,很容易陷入一种“做了很多准备却始终不得要领…

2026/10/13 16:36:05 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →