前言国内期货量化研究里双均线、布林带、突破周期等参数从 5 扫到 60用网格或遗传算法跑一圈TqBacktest总有一组 Sharpe夏普比率衡量收益相对波动的指标特别好看。研究者容易兴奋觉得可以上快期模拟甚至实盘。但“扫参扫出来的最优”常常是过拟合参数只是在那段历史上记住了噪音和偶然行情换半年、换品种、加一点手续费曲线就塌。天勤TqBacktest能较快跑历史快是工具优势不是结论可靠性的保证。下面说明过拟合长什么样、天勤回测里哪些执行规则必须与实盘一致、以及一份可打印的上线前验收清单。清单全部勾选只能降低“回测好看、实盘变形”的概率不能保证未来盈利。一、过拟合的典型信号看到就要警惕最优参数在扫描网格里是尖峰相邻周期很差唯独某一个点极好像“山上孤峰”。样本内参与扫描的区间极好样本外未参与扫描的区间平庸或亏损。手续费加倍或滑点加大后净值由正变负。回测用主连、实盘用具体月或换月规则不一致信号失效。回测在 K 线iloc[-1]未收盘 bar算信号实盘在[-2]已收盘 bar等于两套策略。参数个数相对样本长度过多例如 2 年 5 分钟数据却扫 20 个自由度自由度比数据还多。这些不是天勤特有的问题而是研究纪律问题工具越快越要刻意放慢验收。二、天勤回测里必须固定的执行规则与实盘同一套以下名词在天勤里都有明确定义回测与实盘不一致等于白回测名词含义应对齐什么TqBacktest天勤历史回测环境构造TqApi时传入与 TqSim/TqKq 切换方式文档化is_changing(kl.iloc[-1], “datetime”)最后一根 K 线时间变表示新 bar触发时机与实盘相同iloc[-2]倒数第二根 bar通常作“已收盘”信号 bar勿回测用 [-1] 实盘用 [-2]TargetPosTask调仓工具同一 priceACTIVE/PASSIVEBacktestFinished回测结束异常循环应捕获并退出勿为扫参改坏循环结构KQ.m主连代码若回测主连实盘映射 underlying_symbol回测主循环骨架应与实盘相同只是make_api()里账户对象换成TqBacktest(start_dt, end_dt)。三、上线前检查清单可打印勾选数据与合约留出样本外区间未参与任何扫参单独跑一组固定参数主连/具体月/指数分工写进文档实盘执行 symbol 明确换月日移仓或重新映射规则已写并测过参数与统计最优参数附近是“平原”相邻参数绩效相差在团队阈值内非孤峰默认参数不取边界极值如周期5 或60 才最优要怀疑参数数量与样本年数匹配避免过密网格成本与敏感性回测设置手续费按期货公司标准量级对 ACTIVE 对价执行做滑点敏感性手续费×1.5 或×2 再跑涨跌停、夜盘时段过滤与实盘代码相同执行与模拟TqKq快期模拟含夜盘跑至少一周get_trade与日志对账拒单、部分成交、资金不足路径测过emergency、组合风控若存在模拟触发一次流程扫参结果 CSV 存档参数→指标不只记最优一行通过清单才允许申请TqAccount小仓位书面签字四、样本外与 walk-forward 怎么做简单做法2018–2022 年网格扫参只用于“选参方法”最终固定一组参数2023–2024 年完全不参与扫描只验证这一组。若样本外很差说明过拟合应回到更简单规则或更少参数。进阶 walk-forward滚动窗口每段用过去训练、下一段验证。天勤可对每段起止日期各建TqBacktest多进程跑每进程独立TqApi扫完api.close()汇总表格比较样本外稳定性。五、参数扫的技术注意天勤侧扫参循环里不要泄漏未来指标只用当时可见 bar。多进程时注意内存每进程一个 API 实例。主连扫参结论迁移到具体月时必须再跑具体月样本外不能跳过。tick 回测与 K 线策略成交模型不同不可直接比 Sharpe。六、团队流程比指标更重要把“未过 checklist 不上实盘”写进流程比事后向客户解释回撤体面。最优参数不是交付物可复现的研究包代码版本、数据区间、执行规则、样本外表才是。总结扫参结果越漂亮越需要把验证流程做得克制而严格因为实盘真正奖励的是稳定性而不是样本内极值。除了样本外检验还要做执行一致性和成本敏感性复核回测里必须和实盘在同一套 datetime 触发逻辑、同一根 bar 上算信号、同一 TargetPosTask 价格模式上落地。把成交路径的差异通过 TqKq 或快期模拟交叉验证把拒单、部分成交、emergency/熔断等异常路径也跑进验收清单才能减少“回测很美、实盘很惨”的概率。最终你留下的不是最炫耀的参数而是最能在真实市场里跑通的那一组纪律。FAQ1平原怎么定量例如最优 Sharpe 与相邻±2 格周期 Sharpe 差小于 0.3团队自定。2遗传算法、贝叶斯优化更易过拟合样本外与平原检查更要严。3多品种各扫各的每品种独立样本外勿用 A 品种最优参数硬套 B。4回测太快是否数据有问题快不等于错但要核对 BacktestFinished 是否正常结束、成交笔数是否合理。风险提示历史回测不代表未来表现不构成投资建议。