Обсуждение статьи "Оптимизация на основе кривых Безье — Bezier Curve-based Optimization (BCO)"

 

Опубликована статья Оптимизация на основе кривых Безье — Bezier Curve-based Optimization (BCO):

Разбираем Bezier Curve-based Optimization (BCO) — один из самых современных алгоритмов, в котором новые решения строятся как точки на кривых Безье. Переносим его в MQL5 и проверяем на стандартном стенде, композитном тесте и стенде со сдвигом области поиска. Попутно выясняем, что на самом деле обеспечивает его эффективность.

В 1960-х годах инженер Renault Пьер Безье искал способ описать плавные обводы кузова так, чтобы их мог повторить станок с числовым управлением. Решение оказалось изящным. Кривую задают несколько контрольных точек, которые не лежат на ней, а лишь притягивают её к себе: сдвинул точку — изогнул линию. Сегодня кривые Безье есть в каждом графическом редакторе, в шрифтах, анимации и не только.

В этом году группа авторов во главе с Вэйгуо Чжао предложила применить ту же идею к поиску оптимума. Алгоритм Bezier Curve-based Optimization (BCO) строит новую позицию агента как точку на кривой, контрольными точками которой служат сам агент, его соседи, лучшее найденное решение и центр популяции. Алгоритм заявлен как эффективный для задач большой размерности — то есть ровно для случая, когда у советника десятки параметров.

Звучит убедительно, и именно здесь стоит насторожиться. Трейдер, выбирающий оптимизатор, видит название, красивую идею и таблицы сравнений с конкурентами. Он не видит, что происходит внутри: работает ли механизм, вынесенный в название, и не выигрывает ли алгоритм за счёт особенностей тестовых функций. А от этого зависит, можно ли ждать тех же результатов на собственной задаче.

В этой статье мы разберём BCO по частям. Реализуем алгоритм на MQL5, проверим на стандартном стенде, композитном тесте и стенде со сдвигом области поиска и посмотрим, как именно он получает свой результат. 


Автор: Andrey Dik