Обсуждение статьи "Алгоритм оптимизации быков — Bull Optimization Algorithm (BOA)"

 

Опубликована статья Алгоритм оптимизации быков — Bull Optimization Algorithm (BOA):

Представляем эволюционный алгоритм без оператора селекции: лучшая особь становится единственным партнёром по скрещиванию для всей популяции, а классическая мутация заменена мультипликативной с самонастраивающимся шагом. В статье разбираем три ключевые идеи, реализуем алгоритм на MQL5 во фреймворке C_AO и проверяем его на стандартном стенде и античитер-тесте — где BOA вплотную приближается к порогу топ-45, но не входит в рейтинг.

Когда трейдер берётся за оптимизацию параметров торговой стратегии, он почти всегда упирается в одну и ту же стену: пространство поиска огромно, целевая функция шумна и многоэкстремальна, а времени и вычислительных ресурсов всегда меньше, чем хотелось бы. Стандартный перебор в тестере MetaTrader 5 справляется с малым числом параметров, но при шести-восьми переменных задача становится физически непроходимой. На сцену выходят метаэвристические алгоритмы, и здесь трейдер сталкивается со следующей проблемой: какой именно алгоритм выбрать?

Самый популярный кандидат — генетический алгоритм (GA), хорошо изученный и заслуженно проверенный десятилетиями практики. Он стал штатным оптимизатором в MetaTrader 5. Тем не менее с момента появления GA исследователи в области метаэвристик регулярно задают вопрос: можно ли модифицировать классическую схему так, чтобы получить алгоритм с другим характером поведения — иначе устроенным балансом исследования и уточнения, иной механикой передачи информации между поколениями? Подобные эксперименты порождают семейство алгоритмов «на основе генетических операторов», в котором классический GA — лишь одна из возможных реализаций.

В 2015 году турецкий исследователь Огуз Финдик опубликовал работу, в которой предложил один из таких экспериментов. Финдик сформулировал три наблюдения о поведении классического GA, с которыми он считал нужным поработать: о роли оператора селекции при сходимости популяции, о характере классической мутации, о пассивной роли лучшей найденной особи. На основании этих наблюдений он построил алгоритм с другой архитектурой: оператор селекции из цикла удалён, лучшая особь становится активным родителем для всех остальных через скрещивание, а вместо классической мутации работает мультипликативная — пропорциональная текущему значению гена. Алгоритм получил название Bull Optimization Algorithm (BOA).

Автор: Andrey Dik