欢迎访问 外汇EA下载与MT4/MT5自动交易资源 - 聚合外汇EA、黄金EA、量化交易工具与自动化交易实战内容。
登录 注册

排列和组合 - MetaTrader 5 库

author emer | 666 人阅读 | 0 人评论 |

这种情况并不经常发生,但每隔一段时间就需要迭代一组对象的所有组合或排列。或者更具体地说,给定一组 N 个对象,您希望一次考虑其中 k 个(对于每个组合或排列)。

实际上,组合和排列算法可以用作解决某些问题的强力方法,通过尝试每种可能的组合或排列,直到找到最佳解决方案。

循环 k 排列算法可在现实世界中用于解决部分旅行商问题 (TSP) 或其他类似问题,例如寻找外汇中三角套利的候选货币。

以下是针对每个问题及更多问题的解决方案。以下通用算法允许访问长度为 N 的序列的每个组合或排列,一次获取 k 个项目。

我们已尽一切努力使这个 API 库尽可能快。审查了许多用于组合/排列的算法和库,并执行了大量基准测试、代码分析和微优化。

该库中的堆算法以更有效的方式重新实现,提供比其标准实现更快的性能。


附件下载

📎 permut_library.mqh (25.64 KB)

📎 combinations_demo.mq5 (6.12 KB)

📎 currencyarbitrage_demo.mq5 (24.13 KB)

Source: MQL5 #25724

🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录