Для численного моделирования переподгонки я взял дневки фьючерса на индекс РТС, с середины декабря 2006 по начало мая 2020, которые корректно склеены. Сначала рассмотрим систему максимальной доходности для 1 фьюча, торгуемого в обе стороны. Её эквити будет сумма модулей логарифмических приращений дневок, взятая нарастающим итогом. Финансовый «результат» 5207% (логарифмических), или 391% годовых. Число дневных баров 3356, коэффициент Шарпа с нулевым смещением (нулевой % ставкой) 9,8.
Наша «подгонка» будет состоять из 2 этапов. На первом мы моделируем наличие 3 индикаторов с порогом, просто присваивая каждому приращению случайное целое от 1 до 8, которое будет номером кластера. Напомню, что каждый индикатор с порогом делит массив баров на 2 кластера, а 2^3=8. На втором этапе суммируем дневные приращения внутри каждого кластера и приписываем кластеру позицию лонг, если сумма положительна и шорт, если отрицательна. Получаем эквити, для которой можно посчитать число сделок (перемен позиции), доходность, к-т Шарпа.
Методом Монте-Карло я настругал 1 000 000 (миллион) таких эквити. Средние результаты не впечатляют. Число сделок на каждую 1500-1700 с очень небольшими отклонениями, средняя годовая доходность 22,8% (общая за период 304%) , средний Шарп 0,57. Хочется только отметить, если взяты 3 не случайных индикатора, результаты должны быть существенно лучше.
Гораздо интереснее обстоит дело с экстремальными значениями. Число случайных эквити с Шарпом более 1 составляет 0,78%. С шарпом более 1,1 – 0,18%. Максимальная эквити имела Шарп 1,47 и итоговую логарифмическую доходность 781,7% (среднегодовую 58,7%).
Таким образом, подгоняя всего 3 индикатора и по одному порогу на каждый из них, мы, при некотором усердии, можем «добиться» очень много.
Гистограмма распределения к-тов Шарпа за миллион испытаний очень напоминает чуть –чуть покореженную гауссову кривую, с укороченным левым хвостом и растянутым правым. Мода чуть меньше среднего (Шарп 0,53 против среднего 0,57). Мне стало интересно, что будет, если сократить число сделок. Для этого я модифицировал испытания Монте-Карло так, чтобы с вероятностью 50% сохранялся предыдущий номер кластера, в противном случае снова делался бросок 8-гранной кости. Если не считать того, что число сделок сократилось до 600-900, не изменилось практически ничего.
Надо хорошо подумать, являются ли обычные наши меры против переподгонки достаточными. Кажется, что не очень. Не зря новые системы приходится вводить с опаской. А также, хотелось бы обсудить, как модифицировать эту простейшую схему моделирования, чтобы сделать её более адекватной практике.
Если используется конкретное свойство и обычная логика, то в любом случае переподгонка, но она только на руку. В этом случае переподгонка полезна, и чем точнее подгоняется, тем лучше для системы.
Если же мы не знаем что ищем, то переподгонка нам обеспечена.
Я думал что можно забороть переподгонку проверяя статистическую значимость результатов работы модели, но всё ж таки даже когда есть целый ансамбль гарантированно не переподогнанных моделей, то это совершенно не является гарантией его адекватности тому что будет в ближайшем будущем.
Когда-нибудь скорее всего сработает хорошо, но так и машки банальные тоже когда-нибудь точно хорошо отработают ))
Тест Уэлча посчитайте ещё ) я серьёзно.
ru.wikipedia.org/wiki/T-критерий_Уэлча
Но потом подумал… и с двумя параметрами тоже оставил. )))
Теперь по теме. Для себя я пока вопрос с количеством параметров решил так — на этапе первичного поиска ТС их может быть много. С одной стороны это конечно токсично с точки зрения переподгонки. С другой, можно представить что я просто объединил множество 2х параметных систем, до которых додумались мои клоны в миллионе параллельных миров. И ведь каждый мой клон уверен что изучает 2х параметную ТС. А вот на этапе более детальной оптимизации действительно параметров должно быть минимум. Осталось только договориться с собой что есть первичная промывка золотосодержащего песка, а что — вторичная. И какие принципы оптимизации вообще использовать. Тут конечно есть мысли и даже конкретные, но пока на практике до них не дошёл.