Что делают оптимизаторы
Оптимизаторы существуют для поиска лучшего возможного решения задачи. Что под этим понимается? Прежде чем ответить на этот вопрос, давайте сначала проясним, что же является решением. В торговле на бирже под решением понимается некий набор правил торговли и, возможно, системных параметров.
У всех торговых систем есть не менее двух правил (правило входа и правило выхода), и у большинства имеется один или несколько параметров. Правила содержат логику системы и обычно имеют вид команд типа если- то на языке, на котором написана торговая система. Параметры определяют поведение описанной в правилах логики; они могут включать длины скользящих средних, важности связей в нейронной сети, пороги сравнений, уровни защитных остановок и цели фиксации прибыли и т.д.
Простая система пересечения скользящей средней, использованная как пример в предыдущей главе, имеет два правила: одно — для приказа на покупку, другое — для приказа на продажу. У нее также был один параметр — длина скользящего среднего. Правила и параметры полностью определяют систему и ее поведение. Для получения лучшего эффекта от торговой системы может потребоваться изменение параметров и формулировок правил.
Нет сомнения, что одни сочетания правил и параметров, которые определяют системы, работают хорошо, а другие — плохо; т.е. решения бывают разного качества. Хорошее качество модели или решения, измеренное относительно некоего стандарта, называется пригодностью. Противоположность пригодности, т.е. показатель неадекватности решения, называется расходом.
На практике пригодность определяется функцией пригодности — блоком программы, который рассчитывает показатель относительной привлекательности решения. Функция может быть запрограммирована для определения пригодности именно так, как пожелает трейдер: например, пригодность можно определять как общую прибыль за вычетом максимального падения капитала. Функция расходов устроена аналогично, но чем выше ее значение, тем хуже работает система. Сумма квадратов ошибок, часто вычисляемая при использовании систем с нейронными сетями или линейной регрессией, может служить примером функции расходов.
Теперь можно определить наилучшее возможное решение задачи: это решение, имеющее максимальную пригодность или минимальный расход. Оптимизаторы пытаются найти лучшее решение проблемы с помощью поиска максимума функции пригодности или минимума функции расхода.
Лучшее возможное решение задачи может быть найдено разнообразными способами. В некоторых случаях задача может быть решена простым методом проб и ошибок, особенно если поиск решения не полностью автоматизирован, а проводится вручную. В других случаях могут потребоваться сложные процедуры и алгоритмы. Например, симуляция процесса эволюции (в генетическом оптимизаторе) — очень мощный метод поиска качественных решений для сложных задач. В некоторых случаях лучшее решение — аналитическая (вычислительная) процедура, например метод сопряженных градиентов. Аналитическая оптимизация — эффективный подход для задач с гладкими (дифференцируемыми) функциями пригодности, например задач, встречающихся при обучении нейронных сетей или разработке множественных моделей линейной регрессии.