基于合成数据的交易策略

文章探讨了交易策略中过度拟合的问题,指出传统回测的局限性。为构建更稳健的策略,文章提出在模拟前使用合成数据生成多种市场“替代现实”,通过机器学习方法如GANs训练模型,从而增强策略的鲁棒性,使其能更好地应对未来的不确定性。

Image

基于合成数据的交易策略

也就是说,找到在历史数据上表现得如此好的东西,以至于当策略看到新数据(样本外数据或实盘交易)时,它会表现得很差。

我们随意修改数据,调整设置,添加指标,调整参数以及其他一切,直到我们找到一个我们认为在未来能够持续有效的策略。

这种持续的优化引入了统计学著作中众所周知的许多陷阱,由此产生的策略通常被称为“过拟合”。

回测会说谎

过拟合策略失败的原因是它们认为自己已经学会了世界的运作方式,但我们只给了它们一个样本——历史数据。

Image

如果只看历史数据,策略会受限于2维或3维,需要在前进时应对多个维度。不是已经发生的,而是可能发生的。

在过去的十年里,我一直在反复强调这些统计陷阱,当然也有许多巧妙的技术可以减轻发现“说谎的回测”的风险,例如:

但这些技术都是在模拟后进行的。那么在模拟前可以做些什么呢?

替代现实

让我们在构建交易策略时引入替代价格现实

我们仍然可以(也应该)在模拟后对策略进行严格的稳健性测试,但将替代现实添加到构建过程中可以在模拟前完成。

例如:

  • 如果新冠疫情的下跌没有被如此激进地买入怎么办?
  • 如果需要额外2-3周才能达到相同的价格恢复水平怎么办?
  • 如果需要额外2-3年才能达到相同的价格恢复水平怎么办?
  • 如果新冠疫情完全被避免,市场走上了不同的路径怎么办?

所有这些替代现实可能发生的。我们的交易策略应该能够应对任何这些现实——这不是目标吗?

那么我们该怎么做呢?

合成数据

合成数据是具有与实际OHLC数据相似统计属性,但由人工生成的开盘-最高-最低-收盘(OHLC)价格数据。

我们可以创建数百或数千个替代现实。这样,单一的真实现实——真正的历史数据——就成为我们训练数据的一小部分,而不是我们所有的训练数据。

这在理论上会产生更智能的策略,它们“经历”了更多的糟糕情况。

我们可以在数千个现实中构建(训练)自动化交易策略。最终,在理论上,找到更稳健的策略,能够处理各种市场可能性。

为未知的未来构建,而不是已知的过去!

数据生成方法

有多种方法可以生成合成数据。最常见的如下:

Vs shifted – 移动K线的开盘/收盘时间,这样,你可以创建10:01-10:06,10:06-10:11,以及10:02-10:07,以及10:03-10:08,等等,而不是10:00-10:05,10:05-10:10。 噪音调整 – 随机地从K线中添加或减去波动性(单独或批量)。

媒体无法播放。

重新加载

蒙特卡洛置换 – 重新洗牌K线间K线内价格变化的对数,然后指数化回原始OHLC。保留统计属性但破坏模式。 机器学习 (GANs) – 生成对抗网络 (GANs) 和深度学习方法可以学习历史数据的分布并生成新数据。

构建策略

一旦合成数据生成,我们就可以在构建交易策略时对其进行分析。

这当然不是为了人工处理,而是为了自动化策略生成。

找到在各种数据路径上表现平均良好的策略,可能比在单一价格路径上表现非常好的策略更强大和稳健

Image

最佳回测 → 到最持久的转变至关重要。

总结

在单一价格路径上构建策略可能很脆弱。合成数据不能取代真实数据,但它可以增强训练过程,以找到更稳健的设置。

合成数据只减少了一个脆弱性来源(单一路径依赖)。它并不能消除对样本外数据蒙特卡洛噪音测试、执行假设等的需求。

使用各种数据生成方法有助于分散任何单一数据生成方法中的陷阱。

最后,合成数据不能保证更好的性能——没有任何东西可以。但它可以通过在搜索过程中使策略暴露于更多的路径变化来提高稳健性

👉在合成数据交易策略阅读更多并查看示例。我已将此功能添加到Build Alpha中,以便非编码人员可以使用所有这些模拟前模拟后的技术来构建和交易策略。

  • 原文链接: x.com/buildalpha/status/...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
buildalpha
buildalpha
江湖只有他的大名,没有他的介绍。