一键批量设置止损:脚本化交易风控的完整实战指南
“批量设置止损”这事情听起来像是个不起眼的小功能但真在实盘里泡过几年的人都知道它背后藏着的其实是交易纪律的落地问题。单独手动改一两个单子还好一旦持仓超过五笔、甚至十几笔价格又在快速波动的时候你根本没时间一单一单去点。等你想起来要设止损行情可能已经走过去了。所以我当初学入门编程的时候第一个真正派上用场的练手项目就是它——给交易软件写个脚本一键为所有持仓挂上固定点数的止损。这篇文章我尽量把从零到能用的完整思路写清楚包括中间我踩过的坑、想明白的原理以及一些实盘里才看得见的细节。如果你刚好也在学编程或者已经在用某个支持二次开发的交易平台这应该是一份能直接对着做的参考。1. 为什么要自己写这个脚本从手动操作的痛点说起先说个很现实的场景。某天开盘后我同时持有了七八个品种的订单有做多的也有做空的仓位分布在不同的货币对和商品上。那会儿行情走得很快我只顾着盯一个主力的单子等回头再看其他持仓的时候有个单子已经从浮盈变成了浮亏而且亏幅已经超过了我原本计划止损的位置。那一刻我意识到问题不在于我“不懂止损”而在于止损的执行成本太高了。手动操作在这种多持仓、快节奏的情况下天生就是滞后的。你可能要说平台不是有移动止损、挂单止损这些功能吗但很多平台的自带功能只能一笔一笔设或者只支持按价格设不支持按“距离当前价的点数”批量统一调整。更麻烦的是如果你有几十个单子当前价格每分钟都在变你要给每个单子计算对应的止损价再逐个填进去这个操作本来就是反人性的。所以当我开始接触平台的编程接口时第一反应就是这玩意儿必须写个脚本。目标很简单一个命令跑下去所有符合条件的持仓订单统一按我设定的点数比如做多单在当前价格下方50点设损做空单在当前价格上方50点设损自动挂好止损。这个脚本不解决选品问题也不解决方向判断问题它只解决一个问题当我想让所有订单都有止损保护时执行过程必须是瞬间完成、且完全没有遗漏的。2. 准备工作平台选择、账户环境与只读模式的安全底线写脚本之前先把环境搞清楚。不同平台的编程接口完全不一样有的平台用自带语言有的平台提供外部API接口。我当初用的是自带脚本语言的平台不需要额外装编译器编辑器也是平台自带的改完代码直接挂在图表上就能跑。这类平台对新手最友好因为所有接口文档都在官方帮助里你只需要查对应的函数名就行。在正式写代码之前有几件事必须确认清楚。第一你的账户是模拟账户还是真实账户。我强烈建议先在模拟账户上把脚本跑到滚瓜烂熟再用真实账户跑。第二你的平台是否允许脚本修改持仓订单。有些平台出于风控考虑对通过脚本下单和修改订单有权限限制你得在设置里把“允许算法交易”或者类似开关打开。第三搞清楚平台订单数据的读取方式——这直接决定了后面代码怎么写。还有一个很多人容易忽略的点脚本的运行模式。有的平台脚本一旦挂在图表上就会自动运行直到你手动移除有的平台则分“一次性运行”和“持续监控运行”两种模式。对于批量设置止损这种需求一次性运行就够用了——我需要的是跑一次把当前所有持仓都处理完然后脚本结束。这样也避免了脚本在后台长期运行可能带来的意外重复操作。安全底线在哪里在我动手之前我先用只读方式把持仓数据全部打印出来确认我能正确取到订单号、交易品种、订单方向、持仓量、开仓价和当前价。这一步太重要了。要是连数据都读不对后面所有计算都是建立在沙子上的。我见过不少新手一上来就急着写修改订单的代码结果根本没搞清楚方向参数怎么取最后把多单的止损价算成了空单的那已经不是没效果的问题了而是可能造成真实亏损的大事故。3. 核心逻辑拆解从“获取持仓”到“修改订单”的完整数据链路等你把环境跑通真正开始思考代码逻辑的时候你会发现这个脚本的核心链路其实是四步拿到持仓订单列表、过滤出需要处理的订单、计算每个订单的目标止损价、逐个提交修改请求。先说拿到持仓订单列表。平台一般提供函数用来遍历当前账户所有持仓订单有些是返回数组有些是回调方式。我用的平台返回的是一个订单集合里面每个元素包含订单的所有属性。你不需要一次性处理所有属性重点提取这几个订单编号、品种代码、订单类型持仓单还是挂单、方向买单还是卖单、持仓量、开仓价格、当前止损价格、当前止盈价格。别看这只是第一步里面有个细节特别容易踩坑平台返回的订单列表里不只有持仓单还可能有挂单、条件单甚至已经部分成交的单子。如果你不加筛选就把所有单子都统一改一遍很可能把计划挂单的止损也给改了那就完全背离初衷了。所以我在这一步的习惯是只保留状态为“已持仓”的订单同时按自己的需求决定是否排除某些品种或某个特定订单号。接下来是计算目标止损价。这是整个脚本里最需要动脑子的地方。固定点数的止损看起来简单但实现上有两种思路按“当前价格”算还是按“开仓价格”算。这两者差别很大。按当前价格算就是让止损线跟随现在的行情位置比如当前价1.1050做多单设50点止损那止损价就是1.1000做空单则反过来是1.1100。这种方式适合你想“统一控制所有仓位当前的风险敞口”的场景。按开仓价格算则是从你每一单的成本出发比如开仓价1.1000设50点止损无论当前价格涨到哪止损都固定在1.0950。这种方式适合你想“确保每笔交易的最大亏损可控”的场景。这两种我都在不同阶段用过实盘里我更多用的是按当前价格计算因为止损的意义在于控制当下的风险而不是死守开仓那一刻的成本线。但不管用哪种你都必须搞清楚平台里“一个点”到底是多少。有的品种1个点等于价格小数位的最后一位变动有的是倒数第二位黄金和原油的计价单位又不一样。如果这个搞错了你设的50点止损实际可能是500点后果不堪设想。最后一步提交修改订单请求。平台一般提供“修改订单”的函数需要传入订单编号、以及新的止损止盈价格。有些平台要求止损价必须同时带上开仓价、持仓量这些参数一起打包提交否则会报错。所以我在提交前通常会把原始订单的属性完整读出来只改动止损价一个字段其他原样传回。这算是一个保守但稳妥的做法能最大程度避免平台接口的“整单修改”陷阱。4. 环境变量与数值换算点数、价格精度和最小变动单位的三角关系写到这里必须专门把“点数换算”这件事单独拿出来讲因为这个坑我栽过而且栽得刻骨铭心。在绝大多数平台的脚本里订单的价格不是你想填多少就填多少它必须符合品种的最小价格精度。举个例子某个品种的报价精度是0.00001你计算出的止损价是1.10000这没问题但如果你的计算结果是1.100001平台要么直接拒绝修改要么自动帮你四舍五入成1.10000——看似没毛病但如果你不懂这个机制可能会误以为脚本出错了。更麻烦的是有些品种的“1点”并不是价格精度里的最小单位。平台通常会提供一个函数或者预定义变量告诉你当前品种的“点值”是多少。你需要用这个值来做乘法而不是自己想当然地拿0.00001去乘。打个比方假设当前价格是1.10543你要设50点止损平台的1个点是0.0001那么止损价就是1.10543减去50乘以0.0001结果是1.10043。但如果平台里1个点是0.00001那同样写50点止损实际止损价就变成1.10543减去50乘以0.00001也就是1.10493。你看同一个“50点”在不同平台定义下实际止损距离差了整整十倍。这就是为什么我在脚本里绝不敢写死价格而是始终调用平台提供的点数转换函数来动态计算。除了点数还有一个“库存费”或者叫“隔夜利息”对止损价的影响。有些平台在计算持仓盈亏时会考虑库存费但修改止损价的脚本不需要管这个因为止损价本身只是一个价格触发的条件不代表实际盈亏。但有一种情况需要你注意当你修改止损后平台显示的“止损距离当前价格”可能跟你设的点数有细微出入这通常是因为平台把价格做了精度舍入或者把点差计算进去了不用太纠结。如果你做的是指数差价合约或者加密货币价格精度和点值的差异更大BTC这种几个小数位变动就可能差出几百美元。所以我在写脚本时习惯加一段“调试输出”跑完脚本后把每个订单的目标止损价、实际提交后的止损价、以及平台回传的结果都打印出来自己核对一遍再放心。刚开始可能觉得多此一举等你习惯了会发现这是救命的习惯。5. 完整代码实现带注释的批量止损脚本可直接套用直接上代码吧。以下是我当初写的版本用的是平台的类C语言脚本风格函数名和语法你根据自己平台的文档替换就行。代码的核心思路是遍历所有持仓订单按当前价和指定点数计算止损统一修改。我已经把关键注释写进去了方便你对照理解。// 批量设置止损脚本 - 按当前价格计算固定点数止损 // 适用场景一次性运行遍历当前所有持仓订单并修改止损 input double StopLossPoints 50.0; // 止损点数可在平台属性里修改 input bool ModifyAll true; // 是否处理所有持仓订单 input string ExcludeSymbol ; // 需要排除的品种代码留空则全部处理 void OnStart() { // 1. 获取当前账户所有持仓订单总数 int totalOrders PositionsTotal(); if(totalOrders 0) { Print(当前没有持仓订单脚本结束); return; } Print(开始批量设置止损持仓订单总数: , totalOrders); int modifiedCount 0; int failedCount 0; // 2. 遍历每一个持仓订单 for(int i 0; i totalOrders; i) { // 获取订单编号注意订单编号在修改时需要用到 string symbol PositionGetSymbol(i); if(symbol ) { Print(第 , i, 个订单获取失败跳过); failedCount; continue; } // 获取订单方向0表示做多1表示做空 long direction PositionGetInteger(POSITION_TYPE); double currentPrice PositionGetDouble(POSITION_PRICE_CURRENT); double currentStopLoss PositionGetDouble(POSITION_SL); double tickSize SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE); double tickValue SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE); // 计算1个点的价格距离注意不同平台定义 double pointDistance tickSize; // 如果平台直接给价格精度这就是1个点的距离 // 3. 判断是否跳过指定品种 if(ExcludeSymbol ! symbol ExcludeSymbol) { Print(跳过排除品种: , symbol); continue; } // 4. 根据方向计算目标止损价 double newStopLoss 0.0; if(direction POSITION_TYPE_BUY) // 做多单止损在下方 { newStopLoss currentPrice - StopLossPoints * pointDistance; } else if(direction POSITION_TYPE_SELL) // 做空单止损在上方 { newStopLoss currentPrice StopLossPoints * pointDistance; } else { Print(方向识别失败订单编号跳过); failedCount; continue; } // 5. 调用平台的价格修正函数确保止损价符合最小精度 newStopLoss NormalizeDouble(newStopLoss, (int)SymbolInfoInteger(symbol, SYMBOL_DIGITS)); // 6. 如果当前止损价已经更优比如已经小于目标止损价是否跳过 // 这个可选逻辑防止脚本把原本更紧的止损拉宽稍后详解 if(!ShouldOverrideExistingStopLoss(currentStopLoss, newStopLoss, direction)) { Print(订单的现有止损比目标止损更严格保留原止损。当前: , currentStopLoss, , 目标: , newStopLoss); continue; } // 7. 提交修改订单请求 bool success PositionModify( PositionGetInteger(POSITION_TICKET), newStopLoss, PositionGetDouble(POSITION_TP) ); if(success) { modifiedCount; Print(订单修改成功: , symbol, , 方向: , direction, , 新止损: , newStopLoss); } else { failedCount; Print(订单修改失败: , symbol, , 错误码: , GetLastError()); } } Print(批量止损执行完成成功: , modifiedCount, , 失败: , failedCount); } // 判断是保留原止损还是覆盖 bool ShouldOverrideExistingStopLoss(double currentSL, double targetSL, long direction) { if(currentSL 0.0) return true; // 原本没有止损直接设 if(direction POSITION_TYPE_BUY) { // 买单原止损价 目标止损价时原止损更严格应保留 if(currentSL targetSL) return false; } else if(direction POSITION_TYPE_SELL) { // 卖单原止损价 目标止损价时原止损更严格应保留 if(currentSL targetSL) return false; } return true; }这段代码我从头到尾梳理过的但你要用的话还是得注意以下几个细节。第一PositionModify函数不一定叫这个名字很多平台叫OrderModify或者TradeOrderModify参数顺序也不同务必查文档。第二代码里我特意做了一个“保留更严格止损”的判断这个逻辑不是必须的但非常有用。因为当行情已经朝有利方向走了一段你现在的止损如果比脚本算出来的目标止损更靠近开仓价也就是更严格那脚本就不应该把它往外拉。这个细节避免了“批量设止损”反而放松了风控的尴尬情况。第三我只修改了止损价止盈价用原值传回。如果你希望批量设置止损的同时也把止盈统一改掉可以模仿同样的逻辑加一个TakeProfitPoints参数。但我个人建议止盈和止损的思路不太一样止盈往往和你的交易策略绑定不同品种不同逻辑不太适合一刀切。所以脚本里默认不动止盈。6. 实盘运行前的核查清单模拟账户、小资金测试、单笔试跑流程代码写完千万别直接往实盘账户上挂。哪怕是再简单的脚本我也强烈建议走一遍完整的测试流程。我自己总结过一套“三级测试法”用到现在都没出过事。第一级是编译检查和语法测试。在平台编辑环境里点编译确保没有语法错误。这一步会暴露大部分低级问题比如变量名拼写、括号不匹配、函数参数数量不对。编译通过不代表逻辑正确但至少代码能跑起来。第二级是模拟账户全量测试。把脚本挂到模拟账户的某个图表上跑一次观察输出日志。我在模拟账户故意设置了十几个订单有做多有做空有带原止损的有不带原止损的还有不同品种的。跑完以后逐单核对日志看有没有计算错误、有没有意外跳过、有没有平台拒绝修改的订单。如果模拟账户都跑不通那真实账户也别考虑了。第三级是真实账户小资金测试。选一个波动不大、持仓量也很小的品种手动开一笔最小的单子然后跑脚本只让它处理这一个单子。确认止损设置在预期位置再手动平掉整个流程走完。这一步验证的是真实账户环境和模拟账户之间的细微差异比如点差、佣金、服务器处理时间等。没问题了再扩展到全部持仓。除了测试流程每次正式运行前我还会检查几件事。一是当前是否有正在成交中的订单如果有脚本跑的时候这些单子可能还没进入持仓列表容易漏掉。二是有没有持有到期即将交割的品种有些平台对这类品种的挂单和修改会限制。三是止损点数的设置是否符合自己当前的风险计划别手一滑把50填成5000那这个脚本就从保护变成了灾难。运行完脚本之后我也习惯再手动抽查一两单打开平台的持仓界面确认止损真的挂上去了。不是因为不信任脚本而是交易软件偶尔会有状态同步延迟日志显示成功界面可能还没刷出来。以平台实际接受的最终状态为准。7. 我踩过的三个大坑订单未同步、止损精度、行情跳价竞态讲几个真实的翻车经历你提前知道至少能少走不少弯路。第一个坑是订单未同步问题。平台读取持仓列表后脚本开始逐单处理期间如果有新订单成交进来或者某个订单被手动平仓脚本持有的订单列表就和平台实际状态不一致了。这个时候你拿着一个已经平掉的订单号去修改止损平台肯定报错。我遇到过最离谱的一次是脚本跑到一半行情剧烈波动有个止损单被触发平仓了结果脚本还试图去修改这个已经不存在的订单连续报了十几个错误。从那以后我在遍历持仓时加了一道检查每次修改前先确认订单状态仍然是持仓状态如果不是就直接跳过。第二个坑是价格精度修正函数用错。有的平台NormalizeDouble只能处理小数点后位数但外汇平台常见的五位报价和三位报价混在一起如果你把所有品种都按五位精度处理某些品种的止损价会被截断得不成样子。后来我改成按每个品种自身的精度动态获取而不是全局统一这个问题的报错率一下子就降下来了。第三个坑是行情跳价竞态。脚本读取当前价和提交修改之间哪怕只隔了零点几秒价格也可能已经变了。特别是数据公布或者大资金进出的时候价格跳得飞快。我算出的目标止损价是基于旧价格的等提交上去新价格已经远离了这个止损位。这样设出来的止损实际上比预期宽了或者窄了。这个没有办法完全消除只能尽量缩短从读取到提交之间的时间差减少中间环节别在循环里做多余的重型操作比如不要每次都打印一大段格式化日志那会拖慢执行速度。这三个坑都有一个共同的教训交易脚本的底层逻辑和普通程序不太一样你面对的不是稳定的数据库而是实时变化的市场状态。每一行代码都要考虑“如果这笔订单已经不在了怎么办”“如果价格已经变了怎么办”。想清楚这些你的脚本才真正达到了实盘标准。8. 从“能用”到“好用”批量设置止损脚本的进阶改进方向脚本跑通之后你大概率会和我一样开始琢磨怎么让它更好用。我后来陆续加过几个功能核心思路都是围绕“减少操作步骤、提高容错率”。一个很实用的改进是按浮盈浮亏过滤订单。比如“只给亏损超过一定金额的订单设置止损”或者“只给浮盈订单设置移动止损”这在行情反转的时候特别有用。再比如把脚本改成“重复运行脚本时不修改已经带止损的订单”这样就变成了一个纯粹的补漏工具专门处理那些忘设止损的裸单。还有一个更高级点的方向是自动止损移动。不只是设一个固定止损而是根据当前价格实时提高止损价也就是追踪止损。这个逻辑写起来也不复杂每次价格变动后重新计算止损如果新计算的止损价更优则提交修改。但要注意频率控制不能每次tick都提交一次那平台会把你当异常交易者处理。我一般加一个时间间隔限制比如每10秒才检查一次或者价格变动超过一定点数才触发。另外有条件的话可以加上“操作确认弹窗”。在脚本运行前弹出一个确认框显示即将处理的订单数量、涉及的品种列表、统一设置的止损点数等你确认了再执行。这个功能不能省尤其是真实账户上多一步确认就可能少一次误操作。平台通常提供弹窗函数或者输入参数确认机制如果用不了弹窗就在日志里打印汇总信息然后加几秒延时给你一个反悔的时间窗口。总的来说从“能用”到“好用”不是功能堆得越多越好而是要让每一次操作变得可控、可预期、可回退。我就是在这个过程中慢慢把脚本从几十行扩展到了两三百行但始终没忘它最初的目的让止损这件事变得像呼吸一样自然不需要思考就能执行到位。写脚本这件事和做交易本身挺像的。一开始追求的是不出错后来追求的是在极端情况下也不出错。这个批量设置止损的脚本表面上只是把几个平台接口调用串起来实际上它把我从“手动改单改不过来”的痛苦里解放了出来也让我养成了任何订单进场后先想好止损位在哪的习惯。先想好止损再进场这应该才是当时写这个脚本带给我的最大收获。

相关新闻

一键Shell脚本部署Docker与K8s集群:cri-dockerd与kubeadm实战

一键Shell脚本部署Docker与K8s集群:cri-dockerd与kubeadm实战

/* 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 1:40:10 阅读更多 →
Python语言元素详解:变量、数据类型、运算符与输入输出基础

Python语言元素详解:变量、数据类型、运算符与输入输出基础

/* 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 1:40:10 阅读更多 →
用Comsol计算光子晶体陈数:从Berry曲率到拓扑不变量

用Comsol计算光子晶体陈数:从Berry曲率到拓扑不变量

简介:面向光子晶体与拓扑光学研究者的资源包,聚焦陈数计算与仿真。内容涵盖光子晶体能带结构计算原理、陈数概念解析,以及利用软件结合脚本进行仿真的完整方案。压缩包共五个文件,包含两篇讲解文档,分别介绍光子晶体建…

2026/10/13 1:40:10 阅读更多 →

最新新闻

MAS v3.12 免费激活 Windows 与 Office 快速教程:一条命令去掉未激活水印

MAS v3.12 免费激活 Windows 与 Office 快速教程:一条命令去掉未激活水印

MAS v3.12 免费激活 Windows 与 Office 快速教程:一条命令去掉未激活水印 【免费下载链接】Microsoft-Activation-Scripts Open-source Windows and Office activator featuring HWID, Ohook, TSforge, and Online KMS activation methods, along with advanced tro…

2026/10/13 2:16:27 阅读更多 →
STM32与W5500以太网芯片MQTT接入阿里云物联网平台实战

STM32与W5500以太网芯片MQTT接入阿里云物联网平台实战

1. 项目缘起与整体设计思路嵌入式设备联网这件事,说简单也简单,说坑也多。早些年做数据采集终端,想让一块STM32把传感器数据传到云端,方案无非就那么几种:串口接4G模块、WiFi模组透传、或者直接上以太网。串口方案开发…

2026/10/13 2:16:27 阅读更多 →
Mavros深度解析:ROS与Ardupilot可靠通信的七层机制

Mavros深度解析:ROS与Ardupilot可靠通信的七层机制

/* 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 2:16:27 阅读更多 →
mmap直挂模型权重:从30秒到1.2秒的底层原理与落地实践

mmap直挂模型权重:从30秒到1.2秒的底层原理与落地实践

做推理优化的朋友大概率见过这一幕:同一个 70 亿参数的权重文件,同事的脚本从启动到模型 ready 只要一秒出头,而你的进程还在各种初始化日志里打转,三十秒后才看到 first token。我第一次看到 1.2 秒这个数字时也不信,…

2026/10/13 2:16:27 阅读更多 →
AI日报制作全流程:信息筛选、内容写作与效率优化实战

AI日报制作全流程:信息筛选、内容写作与效率优化实战

1. 一份“AI日报”到底在记录什么每天早上花十五分钟翻一遍行业动态,把值得关注的信息筛出来、理清楚、写明白,这件事我坚持了快两年。很多人觉得“日报”就是流水账,把新闻标题复制粘贴一遍完事,但真正做过内容的人知道&#xff…

2026/10/13 2:16:27 阅读更多 →
Label Studio:两条 Docker 命令完成第一次数据标注并导出模型训练格式

Label Studio:两条 Docker 命令完成第一次数据标注并导出模型训练格式

Label Studio:两条 Docker 命令完成第一次数据标注并导出模型训练格式 【免费下载链接】label-studio Label Studio is a multi-type data labeling and annotation tool with standardized output format 项目地址: https://gitcode.com/GitHub_Trending/la/labe…

2026/10/13 2:15:26 阅读更多 →

日新闻

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

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

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

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/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

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

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

2026/10/12 0:16:38 阅读更多 →
影刀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/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →