Разбираем алгоритм Genetic Programming (GP) — классический метод, который выращивает не числа, а формулы. Почему знаменитый алгоритм в каноническом виде проигрывает обычному случайному поиску во всех тестах, и какая одна строка возвращает ему силу? Ответ касается любого оптимизатора с пропорциональным отбором. В конце статьи — готовый код GP на MQL5, который можно сразу использовать для своих задач.
Генетическое программирование (GP) Джона Коза — один из самых известных эволюционных методов. Его выращивают не числа, а программы: формулы, правила, деревья решений. Трейдеру GP знаком как способ вырастить торговое правило из индикаторов. Но под любой такой задачей лежит один и тот же механизм: популяция деревьев, отбор по пригодности и обмен поддеревьями между родителями.
В этой статье GP перенесён в нашу серию в каноническом виде, по статье Коза 1994 года и деталям из его книги 1992 года. Задача — понять, насколько хорош этот механизм сам по себе, если поставить его на наш стенд, что и остальные алгоритмы. Каждая координата задачи здесь — это отдельное дерево-формула, а значение формулы переводится в значение параметра.
Первый же прогон дал неожиданный результат: каноническая версия набрала показатели ниже чистого случайного поиска при том же бюджете испытаний. На нашем стенде главным выявленным фактором оказались не деревья и не кроссовер, а формула отбора. Она чувствительна к масштабу пригодности, и на нашем стенде отбор почти перестаёт отличать хорошие решения от плохих.
Опубликована статья Генетическое программирование — Genetic Programming (GP):
Генетическое программирование (GP) Джона Коза — один из самых известных эволюционных методов. Его выращивают не числа, а программы: формулы, правила, деревья решений. Трейдеру GP знаком как способ вырастить торговое правило из индикаторов. Но под любой такой задачей лежит один и тот же механизм: популяция деревьев, отбор по пригодности и обмен поддеревьями между родителями.
В этой статье GP перенесён в нашу серию в каноническом виде, по статье Коза 1994 года и деталям из его книги 1992 года. Задача — понять, насколько хорош этот механизм сам по себе, если поставить его на наш стенд, что и остальные алгоритмы. Каждая координата задачи здесь — это отдельное дерево-формула, а значение формулы переводится в значение параметра.
Первый же прогон дал неожиданный результат: каноническая версия набрала показатели ниже чистого случайного поиска при том же бюджете испытаний. На нашем стенде главным выявленным фактором оказались не деревья и не кроссовер, а формула отбора. Она чувствительна к масштабу пригодности, и на нашем стенде отбор почти перестаёт отличать хорошие решения от плохих.
Автор: Andrey Dik