选股公式中,未来函数和过拟合是导致回测漂亮、实盘失效的两大主因。避免未来函数的核心是确保公式在回测时只使用“当时已发生”的数据,避免过拟合的核心则是控制参数数量并验证样本外表现。这两类问题无法被彻底“消除”,但可以通过规范编写与严谨检验将其影响降到最低。
识别未来函数的常见写法
未来函数指公式在历史K线上引用了“当时尚不可知”的数据,造成回测信号失真。常见写法包括:
- 使用未来数据函数:如某些平台提供的“ZIG”拐点函数、向后引用未来周期数据的函数,这类函数会直接调用后续K线结果。
- 用当日收盘价确认当日信号:若公式在收盘前用当日收盘价计算信号并假设当日成交,实盘中无法在收盘价确定前下单,属于时间错配。
- 信号与成交价错位:回测假设信号出现当天以收盘价成交,但实际信号生成往往晚于收盘,应使用次日开盘价或设置信号延迟。
判断方法:在回测报告中,将信号出现日与K线走势对照,若信号总出现在局部高低点“精准转折”处,通常存在未来函数。更稳妥的做法是在模拟盘中运行一段时间,观察信号是否与实盘推送一致。
过拟合的预警迹象与检验方法
过拟合指公式参数被过度优化,恰好拟合了历史行情的噪声,而非真实规律。以下迹象提示存在过拟合:
- 参数微调后表现剧烈波动,最优参数附近的“孤峰”明显,而非平缓的高原区
- 回测收益极高、回撤极小,胜率接近完美,明显偏离同类策略的合理水平
- 策略在不同股票、不同市场阶段的表现差异悬殊,仅在特定样本上有效
检验方法:将历史数据切分为样本内(用于优化参数)与样本外(用于验证)两部分。若样本外表现显著低于样本内,说明参数被过度拟合。更严格的检验是向前走一步分析,即不断用过去数据优化、用未来数据验证,模拟真实决策流程。
设计稳健选股公式的通用逻辑
稳健公式通常遵循以下原则,而非依赖复杂参数:
- 减少参数数量:参数越多,过拟合空间越大。优先使用有经济逻辑支撑的固定规则,如基本面阈值、估值分位,而非可自由调整的技术指标周期
- 参数高原而非孤峰:若参数在较大范围内表现接近,说明规律较稳定;若仅在某一个精确数值上表现优异,多为过拟合
- 多市场、多周期验证:在牛市、熊市、震荡市及不同行业板块中分别测试,观察逻辑是否普遍成立
- 关注逻辑而非结果:公式背后的选股逻辑应有合理的经济解释,如低估值、盈利改善、趋势确认,而非纯数据挖掘出的巧合规律
回测只是参考而非承诺。即便通过了样本外检验,市场结构变化仍可能使历史规律失效,实盘前应通过模拟盘验证信号的可执行性,并定期评估策略表现。
常见问题
如何快速排查一个选股公式是否含未来函数?
最直接的方法是将公式中的信号与K线走势逐日核对,重点观察信号是否出现在局部高低点的“精准转折”处。也可将公式加载到不同周期的K线上,若信号随周期切换出现明显偏移,通常存在时间引用问题。
参数越少越好吗?
参数少能降低过拟合风险,但并非唯一标准。关键在于参数是否有经济逻辑支撑,以及参数在合理区间内是否表现稳定。一个逻辑清晰、含两三个参数的公式,通常比含十几个可调参数的公式更值得信赖。
样本外测试表现不佳说明什么?
说明公式可能过度拟合了样本内的特定行情,其“规律”在未知数据上不成立。此时应减少参数或简化规则,而非继续调整参数去“补救”样本外表现,否则会陷入新一轮过拟合。