Ниже будет много бытовой терминологии и фривольных аналогий.
Поиск каких-либо закономерностей всегда в качестве промежуточного шага содержит оптимизацию много-параметрической фитнес-функции (ФФ). От выбора ФФ зависит очень многое во время исследований. В частности, уровень переобученности. В алготрейдинге это оценка умения проходить торговой системой (ТС) интервалы вне выборки обучения. Как минимум, не нести на них серьезные убытки, максимум — получать прибыль.
Самой распространенной ФФ в мире алготрейдинга, скорее всего, является размер прибыли. Грубо говоря, алгоритм расчета ФФ — результат бэктеста ТС в виде числа.
Внешний вид ФФ сложно представить, т.к. это многомерная функция. Однако, в некоторых случаях все же удается наделить гипотетическую визуализацию неким интуитивным пониманием.
Одна из таких визуализаций — многомерная сфера с шипами, чем-то напоминающая трехмерную модель созвучного с короной вируса.
На концах этой ФФ-короны находятся параметры ТС, которые наиболее удачно проходят обучаемый интервал.
Сложно сказать, как часто в алготрейдинге сталкиваются с очень стабильными рыночными закономерностями, но такое точно бывает. Проторговка этих закономерностей сродни чернозему, когда почти любая воткнутная в землю палка прорастает.
Иначе говоря, если осознаете закономерность (а так не всегда бывает, особенно с МО) и строите на ее основе ТС с камими-то входными параметрами. То какие параметры не подавай на вход — везде прибыль. Там приходится выбирать только между большой прибылью и не очень.
И вот визуально такие ФФ представимы, как очень волосатые шары (или ежики). Все в волосках (иголках) разного размера. Чем длиннее ФФ-волосок, тем более вкусное поведение ТС на соответствующем кончику волоска наборе входных параметров.
В качестве небольшого отсутпления.
Любая осознанная ТС — это результат мыслительного процесса, который, грубо говоря, характеризуется некой нейросетью (НС) головного мозга. Сама НС — это заранее заданный набор правил взаимодействий, которые настраиваются через множество входных параметров. Поэтому в общем случае ТС всегда является моделью какого-то вида НС с большим количеством неявных (неосознаваемых) входных параметров.
Например, знаменитая осознанная ТС на основе МАшек имеет близнец в виде неосознанной НС-модели, где для воссоздания аналогичного поведения требуется много неявных входных параметров.
Поэтому при разговоре о внешнем виде ФФ, надо понимать, что параметров значительно больше, чем кажется на первый взгляд.
Вернемся к волосатому шару. Такую ситуацию можно характеризовать, как полную свободу выбора входных параметров, что вполне оправдано для постоянно рабочих закономерностей. Но бывают периоды слома, форс-мажора рынка, когда закономерность исчезает на некоторое время. И очень важно не потерять на них много во время торговли.
Очевидно, что при огромной волосатости найдутся волосинки, которые великолепно пройдут такие плохие периоды. Попробую раскрыть эту мысль на простом примере.
Вот у вас есть миллион замечательных наборов входных параметров (волосинок) ТС — все показывают отличные результаты на обучаемой выборке. Берем кусок котировок любой природы. Например, случайное блуждание (СБ), где нет никаких закономерностей. Среди миллиона волосинок найдется несколько (тысяча), которые очень хорошо пройдут этот СБ-участок. Возможно, даже заработают на нем. А внешне линия прибыли может даже не изменяться по своему наклону и количеству сделок.
И казалось бы, если бы мы заранее знали хоть одну волосинку из этой тысячи, то даже не заметили бы подвох с СБ. Но как найти нужную соломинку в стоге великолепного сена?
В случаях сверх-волосатости ФФ популярен подход усовершенствования ФФ. Т.е. данная ТС рассматривается, как недостаточно хороший кандидат-критерий для принятия решений, оценки входных параметров ТС. Изменения ФФ предполагает надежду, что среди алмазов можно найти бриллианты. И это неплохая гипотеза.
Один из результатов подхода изменения ФФ — уменьшение волосатости, чтобы бриллианты было проще увидеть. Часто для этого пишутся фильтры — парикмахер, придающий некий порядок на голове.
Но ниже расскажу об альтернативной работе со сверх-волосатостью.
Можно в обучаемый интервал вставлять плохие периоды, о которых написал выше. Только брать не СБ, а природные ценовые данные. Например, с других символов, где ваша закономерность не наблюдалась — сливает ТС.
Такой подход будет создавать огромные плеши на волосатой ФФ-сфере, подвергая ТС соответствующим стресс-тестам. Делать это до тех пор, пока не будет проедена плешь — останется малая часть от начальной шикарной шевелюры. Эти оставшиеся волоски и брать в качестве настроек боевой ТС.
Еще раз.
Идея в том, что, натаскивая ТС на разных плохих периодах, все равно останутся волоски, что будут хорошо торговать закономерность. Но при этом увеличивается шанс, что когда придет реальный плохой интервал, он будет похож на один из тех, что был добавлен в тренировку.
Допускаю, что у кого-то возникнет аналогия с методом Монте-Карло. Но там совершенно иной подход проверки ТС, основанный на генерации искусственных интервалов из якобы характеризующих рынок статистических характеристик.
Но если хочется генерировать плохие интервалы таким образом — почему нет?
Вроде, все хорошо, кроме самого простого - п.1 и п.4: определения степени волосатости. Посчитать даже миллион наборов входных параметров — огромное количество времени на вычисления.
Поэтому степень волосатости придется, наверное, определять косвенным путем. Например, сколь быстро во время генетической оптимизации нарвались на волосинки. Сразу вляпываетесь — волосатый.
Волосатость — признак запущенности. Волосатость надо брить.
Если по-серьезному, то «волосатость» говотит о переизбытки параметров, с помощью которых всегда можно подогнать эти параметры под любой кусок истории. Такая волосатость (всплески) всегда будет сопровождать говноEA в тесте.