Да, если смотреть грубо, в основе у меня есть широкий перебор гипотез. Но это не “тупой brute force”.
Тупой brute force — это когда все посчитали, получили огромную таблицу, отсортировали по PnL и потом не понимаем, что с этим делать.
Я трейдер с 15-летним стажем, и у меня задача другая: заранее задать, что именно я хочу получить: минимальную просадку, Recovery Factor, Profit Factor, ограничение по серии убытков, достаточное количество сделок, конкретный тип PM.
Отбор можно делать не только после всей оптимизации, а уже в процессе расчета. Если вариант уже нарушил условие, например получил loss streak больше допустимого или ушел в неподходящую просадку, его нет смысла тянуть дальше как кандидата.
Сейчас мы обсуждаем простой пример с базовыми индикаторами. А если перейти к многоуровневым последовательным системам, там параметры живут внутри самих логических веток:
если A(x1) прошло -> проверяем B(x2, x3)
если B не прошло -> идем в C(x4)
если C(x4) прошло -> включаем PM(y1, y2, y3)
То есть оптимизируется не просто общий набор параметров θ, а сама структура:
ветка + условие + параметры условия + PM + метрика
И тут как раз скорость вычислений играет большую роль. Она позволяет считать не один общий “черный ящик”, а последовательно разбирать конкретные ветки: где фильтр дает эффект, где ломается метрика, какой PM выживает, какая ветка вообще имеет смысл.
В таких задачах Байес и Монте-Карло могут дать кандидатов или локальные хорошие точки, но они не дают полной карты логики: какая ветка работает, где ломается, какой фильтр реально нужен, какой PM выживает.
Поэтому сильная сторона моего подхода не в том, что “просто все перебрать”, а в управляемом переборе: метрики, ограничения, pruning и анализ групп результатов по ходу расчета.
Например, без Байеса и без Монте-Карло за счет правил отбора и последовательной логики расчета пространство с 5 млрд вариантов можно сократить до 1.7 млрд. То есть речь не о слепом переборе, а о контролируемом сужении пространства гипотез.

