Пост из разряда мыслей вслух в расчете кто-то из более опытных и более умных коллег поделится толковым суждением.
Наверное почти никто не откажется от системы без параметров, которая идеально или хотя бы приемлемо торгует любой инструмент. Мне кажется, что такая система ровно одна и она невозможна либо никому недоступна — заглядывание в будущее. Иным способом получить безпараметрическую и не нуждающуюся в оптимизации систему нереально.
Поэтому все разговоры о том, что система должна быть без параметров или что кто-то продает такую систему или просто нашел, лишенными практического смысла. Потому что такие системы, если они и работают, то они разные для разных инструментов, а значит в чистом виде безпараметрическими не являются. Значит там разные модели в основе, а значит оптимизации проводилась или требуется, но в каком-то скрытом или неосознаваемом виде.
Значит у нас есть какая-то модель, раз есть модель и есть разрыв между ней и реальным рынком, то надо как-то притянуть за уши эту модель к реальному рынку — калибровки. Технически это всегда (поправьте, если я ошибаюсь) решение задачи оптимизации. И тут возникает всем известная проблема — переподгонка или оверфит. Калибруем модель, а получаем оверфит. Обидно. Ведь бывают и хорошие модели.
О чем я пытаюсь подумать? Как понятийно или по содержанию различить калибровку от переподгонки? Не с точки зрения техники и не с точки зрения результата, а понятийно. Возможно ли это? Например, дать определение, чтобы отграничить калибровку от переподгонки.
В чем тут трудность с пониманием? То, что в одной ситуации будет дикой переподгонкой, в другом — вполне сойдет за калибровку. Очевидный пример. Если мы вертим сгенерированное СБ без какой-либо памяти и на нем находим какие-то модели или уже известные модели пытаемся «оптимизировать», то мы априори понимаем, что это оверфит и ничего иного не дано.
Однако, много моделей на рыночных временных рядах имеют какую-то область калибровки, за границами которой наступает переподгонка. У плохих моделей потенциал по калибровке мал и легко попасть в переподгонку. У хороших моделей калибровочный потенциал пошире. Собственно, это мы знаем из опыта из практики и можно дать определение хорошей модели. Модель тем лучше, чем труднее из калибровки попасть в переподгонку. Видимо, идеальная модель это такая, которую можно только откалибровать и невозможно чрезмерно зафиттить. Существует ли такие модели — отдельный разговор.
Внимательный читатель спросит, что же я хотел сказать или о чем спросить у внимательного читателя? Вот я даже до конца не могу толком это сформулировать в силу какой-то своей тупости. Но я эту проблему хорошо понимаю как проблему, а уверенного решения не вижу или не знаю. Но в практических ситуациях как-то легко могу понять, где идет калибровка, а где уже оверфит.
Потом попробую иллюстрации на эту тему опубликовать.
напрмер покупка при пробое хая предыдущего дня и продажа при пробое лоя предыдущего дня
или цена выше открытия покупаешь ниже открытия продаешь
торговля графических паттернов тоже без параметров
в конечном итоге пробой любого уровня — это система без параметров
Или не дня а 3 четырёхчасовиков?
Пробой типичных ценовых каналов, типа Дончиана или «черепах» предполагает выбор периодов, за который определяются экстремумы для каналов.
А в остальном — согласен.
это часов может быть много… 5ти минуток россыпью… а день это такая вещь в себе…
вот сам смотри
для того чтоб простейше торговать надо предсказать направление движняка вверх или вниз
а для тейка надо предсказать направление + величину движения — т.е уже сложнее
а для тейка и трейлинга надо предсказать направление движения+ величину движения + волатильность движения
т.е прогноз реально усложняется и вероятность точного прогноза резко падает
т.е прикинем что точность каждого прогноза 70%=0.7
для первого случая — так и останется точность 70%
для второго случая точность прогноза будет 0.7*0.7=49%
а для третьего варианта с тейком и трейлингом точность прогноза 0.7*0.7*0.7=35%
мораль в том… что я не ванга и прогноз даю только вверх или вниз
Для меня калибровка — это то, что в пределах здравой трейдерской логики торговой системы. Как только параметры начинают выходить за пределы стратегической логики по месту или по сигналу — это уже переоптимизация, подгонка, ЭТО долго работать не может. Это типа как уловить кратковременную неэффективность текущего рынка, которая не обязана быть вечной или хотя бы долгой.
Если же алгоритм четко соответствует задуманной логике по месту и сигналу, параметров может быть хоть миллион.
Кстати, ТСЛаб дает пример робота по ТС без параметров. Я там насчитал не менее 6-ти параметров. А если учесть, что ни одна ТС не может долгосрочно работать без определения места где брать сигналы, то там еще десяток надо добавить — такая вот будет… безпараметрическая ТС. ))
По крайней мере, тесты работают на любом инструменте без каких либо изменений системы.
Реал система пока в стадии проектирования. Но, по прошлому опыту уже могу сказать, что реал не сильно будет отличаться от тестов.
ЗЫ кстати, о переобучении. Если вы имеете дело с реальными зависимостями, а не плодами вашего воображения, то переобучения быть в принципе не может.
На этот вопрос общего ответа нет.
Не знаю, отсутствие параметров в системе это очень очень узкий (считай не существующий) частный случай от параметрической системы. Другое дело что параметрическая система может пойти в бой не в результате оптимизации, подбора параметров и т.д., а другим путем, типа вот я взял без параметров или взял первые попавшиеся параметры и оно заработало, так и берем, буду хвастаться что без параметров и подгонки.
По поводу переподгонки выше правильно написали — когда учишь нейросеть обычно отрисовываешь 2 графика — скользящая ошибка на трейне и на тесте. Т.е. по мере обучения меряешь ошибку. Обычно в норме как выглядит: на трейне начинает падать, на тесте начинает падать. На трейне начинает падать все медленнее, на тесте — тоже все медленнее, но, конечно, на тесте темпы замедления сильнее, так вот когда на трейне ошибка продолжает падать, а на тесте достигается некий экстремум и ошибка разворачивается — опа на — пошла переподгонка дальше. Если тормознул до этой точки — недоученность.
Если вернуться к классическим стратегиям — ещё раз: переподгонка возникает от того, что ты оптимизируешь не так как надо), а не от самого факта оптимизации. Даже просто если убрать в голове предвзятость и поселить установку, что не надо выбирать лучшие результаты из бэктестов и что на отложенной выборке результаты не будут повторяться, а будут как-то распределены и иметь какие-то вероятности пойти туда-то и туда-то — уже это позволит серьезно скорректировать процесс, там так-то не надо быть мегамозгом чтоб обходить переподгонку — достаточно иметь правильные установки.
Ну а вообще оч. рекомендую позаниматься ML'ем — другой взгляд на те же вещи, более фундаментальный) формируется.
Пусть есть вектор параметров (X1) и вектор слегка измененных параметров (X2)
Соответствующие им эквити Y(X1) и Y(X2)
Какие требования мы в идеале предъявим к функции Z = Y(X1) - Y(X2) ?
В идеале хотелось бы, чтобы Z представляла из себя функцию монотонную. Прямая – очень хорошо, значит ровно на каждой итерации зарабатывается чуть больше. Какой-нибудь колокол – очень плохо. Формулируем математически желаемое.
Применяем эту хрень к многообразию оптимизационных векторов параметров и выводим математическое требование уже к нему.
Примерно так можно попытаться.
Тоже самое можно применить и к любому другому параметру. Если у параметра не прослеживается физический смысл, то это....
Тест Вальда, тест правдоподобия и тест множителей Лагранжа. Считаются оптимальными критериями.
интересный комментарий. А в чем разница между идейной и параметрической подгонкой, если ни одна, ни другая, не дают возможности использования системы на других инструментах/таймфреймах?
Или даже не так.
Разве параметрическая подгонка имеет обобщающую силу?
попробую зайти по другому.
Некий трейдер, в результате «идейной» подгонки (Ваше определение), простым перебором множества гипотез, получил систему, которая без параметров дает приемлимые результаты на (варианты):
-одном инструменте
-многих инструментах
-на всех инструментах :)
Вопросы:
1. Чем это плохо, почему это хуже, чем подгонка параметров и какое отношение это вообще имеет к подгонке параметров (в каждом из вариантов и желательно в сравнении с параметрической подгонкой).
2. А что такое «обобщающяя сила» в вашем комментарии (может быть я неверно вас понял)?
Заранее благодарен за развернутый ответ!
1. Плоха любая переподгонка, неважно какого она типа
2. Обобщающая сила это, то что отличает плохую модель от хорошей. Хорошая способна давать статистически значимые прогнозы за пределами обучающей выборки (только не надо писать здесь про OOS, walk-forward, k-fold и прочую малополезную чепуху)
спасибо. Диалога не вышло, а жаль.