Блог им. Replikant_mih

Алго. О том, как важно задавать правильные вопросы и находить адекватные ответы).

Представим процесс создания и верификации стратегии как исследование, и сведём этот процесс к следующей упрощенной модели: цель исследования это вопрос, само исследование — процесс ответа на вопрос, результат исследования – ответ на вопрос.

 

Так вот часто, эти три компонента в модели А. Не согласованы, Б. Процесс согласования не проходит через сознательный уровень. Поясню:

(А) – Ну тут обычно всё просто: если ты задаёшь один вопрос, а отвечаешь как будто на другой вопрос, то и ответ в итоге не будет отвечать на поставленный вопрос. Или ближе к алго: если ты хочешь оценить робастность стратегии, а в процессе исследования делаешь что-то несусветное, твои выводы не скажут ничего про робастность. Например, я оцениваю робастность стратегии и хочу получить наилучшие параметры для торговли (вопрос), делаю оптимизацию на истории и отбираю ТОП1 прогонов, беру от него набор значений параметров (ответ).

(Б) – Многие тупо не отдают себе отчет что они делают, почему именно так, как процесс ответа на вопрос согласуется с вопросом, как ответ соответствует вопросу и т.д. Ну т.е. многие исследуют именно так, а не иначе потому «а вот я слышал, что это работает», «я пробовал, вроде сработало» или ещё почему-то. Не скажу, что более глубокий уровень осознанности в этом деле прям обязательный, если у тебя что-то работает (твой подход) – ну и отлично.


Но я люблю осознанность:

— На какой конкретно вопрос я хочу ответить в итоге? (Робастна ли стратегия-идея? Выбрать лучшие параметры? Лучшие с какой точки зрения? С точки зрения иметь шанс уцепиться за лучший результат из возможных или же максимизировать вероятность получить хороший стабильный?). А правильный ли я вопрос задаю? Почему именно такие приоритеты я поставил?

— А соответствует ли моё исследование задаваемому вопросу? Почему конкретно я решил, что такой алгоритм анализа позволяет ответить на мой вопрос? Какой алгоритм мог бы лучше ответить?

— Ответ является полным и соответствующим постановке вопроса? Или, может, он «уплыл» и живёт своей жизнью? Может быть, ты спрашивал «А или Б», а ответ получился «да».

 

 

Ну и для иллюстрации несколько примеров того, для какого «вопроса» какой процесс на мой взгляд адекватен:

 

  1. Взять стратегию захардкодить параметры и прогнать один раз. Адекватно для ответа на вопрос: а какой результат я получу в будущем если в будущем все графики повторятся один в один как в прошлом. На практике для реальной торговли такой вопрос бесполезен.
  2. Взять стратегию, прогнать на всей истории с разными наборами значений параметров, выбрать лучший прогон, взять от него значения параметров. Адекватно для ответа на вопрос: какие наилучшие выбросные значения были на фактической истории. На практике для реальной торговли такой вопрос бесполезен.
  3. Взять любой подход (например, какой-то из ранее описанных (например (2)) и пройтись скользящим окном по истории из прошлого в будущее делая на левой части окна то, что что предполагает исследование, а в правой части окна смотреть, какие в торговле это результаты даёт. В данном случае проходимся окном и смотрим, если мы отбираем лучший прогон по какой-то метрике и его на OSS в работу пускает и делаем это много раз, какие результаты на суммарной OOS это даёт. Адекватно для ответа на вопрос: а работает ли такой подход к созданию стратегии (в т.ч. к определению значений параметров). Ну вернее, конечно, а работал ли этот подход к созданию стратегий в прошлом, если быть точным. Полностью применимо на практике, поскольку является инструментом объективного метаанализа.
  4. Взять исторические данные, итерируясь, на каждой итерации смещать OOS окно по этим данным, и на каждой итерации все остальные данные использовать в качестве IS, обучающей выборки, выборки для оптимизации – кому как нравится. K-Fold валидация, короче. Адекватно для ответа на вопрос: что если оставить за скобками динамику развития закономерности (фактор времени), но при этом выжать максимум из имеющихся данных и посмотреть как работает какой-то подход (по сути речь о вариации на тему (3)). Применимо на практике, добавляет много объективности, позволяет выжимать многое из данных, с осторожностью, если фактором времени и динамики развития закономерности нельзя пренебрегать.

 

Ну и вывод: задавайте правильные и нужные именно вам вопросы, подыскивайте адекватные вопросам схемы и алгоритмы, убеждайтесь, что итоговый ответ отвечает на поставленный вопрос. И да прибудет с вами алго-сила!

 

 


Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.

2.8К | ★4
16 комментариев
Плюсанул, хотел у тебя спросить получилось что-нибудь в итоге найти «рабочее» по спросу-предложению?
avatar
Илья Нечаев, Оно как-то работает… временами. Короче все свелось как и в остальных стратегиях к вопросу, как понять, сейчас те времена когда это будет работать или те, когда не будет)).

avatar
Replikant_mih, просто вопрос работает из-за случайности и просто низкой базы рынка (индекс) или это действительно преимущество которое ты смог получить при помощи алгоритма и тестовой выборки. А профит сколько на сделку в процентах закладываешь?
avatar

Илья Нечаев, «профит сколько на сделку закладываешь»

Профит — сколько дают)) — я издержки закладываю). По профиту ниже 0.2% не рассматриваю варианты. В идеале от 0.5%. Я пока не добился чтобы «управляемо» получать 0.5%+. Впрочем, я не сильно уже и пытаюсь). Больше другими стратегиями занимаюсь.

avatar
Replikant_mih, Можете более подробно объяснить: «все остальные данные использовать в качестве IS» ?
avatar

Astronomer, Ну это я своими словами объяснял K-Fold кросс-валидацию). IS в данном случае синоним обучающей выборки, train (если в категориях ML), или выборка, где проводим оптимизацию (если в категориях обычного алго). Если этого не хватит — готов ещё дообъяснить), главное понять что именно).



 

avatar
Replikant_mih, Меня интересует вопрос следующего характера. Количество Iteration 1,2,3… и количество вот этих блоков Train и Test влияет на качество оптимизации? Существуют какие либо методы определения интервала InSample (белая линия) и OutOfSample (Зеленая). Спасибо за ответ. 




avatar
Astronomer, Я для себя так на этот вопрос смотрю: я не допускаю склеивание из пересекающихся OOS, т.е. когда я тест смещаю, шаг смещения у меня равен размеру теста, не меньше (иначе пересечения), не больше (иначе тест не всю выборку покроет). А дальше на что смотрим — по сути, не важно на какие размеры кусков (и соответственно, сколько итераций) ты нарезал, в итоге у тебя склеивается тест (OOS) одного и того же размера. А на что мы тогда смотрим — профит от маленького числа итераций — экономия времени вычислений (в каких-то случаях это важно, например, если вопрос стоит в считать 30 минут или 5 дней, в каких-то не важнен если речь о том, чтобы считать 7 секунд или пару минут). Дает уменьшение шага смещения и размера каждого отдельного OOS куска, вернее увеличение числа итераций, какой-то профит — по идее да — ты же типа фитишься под некий участок, если там есть закономерность, ты её транслируешь на OOS, если ты берешь большой OOS в отдельной итерации, закономерность, может, уже ушла, затухла, а ты её используешь на протяжении всего большого OOS куска. Аргумент про то, что OOS должен быть большой для того чтобы посмотреть закономернсть на разных состояниях и т.д. здесь не катит, потому что как выше написал, не важно какого размера у тебя OOS в итерации, склеивается в итоге в большой OOS одинакового размера. + Больше кл-во итераций раздувает выборку и делает результат более репрезентативным. Да, в нескокольких соседних трейнах у тебя будет много пересекающих участков данных, но ты же наверняка наблюдал, что в одни данные чуть добавить шума или чуть сместить и т.д. и уже совсем другие результаты, поэтому такое увеличение кол-ва прогонов (размера выборок) по мне — во благо. Ну и в итоге имеем, что это некий trade-off между временем на выполнение и профитами от роста числа прогонов (и уменьшения размера отдельного OOS куска). Сила этих плюсов на мой взгляд не такая большая и явная, так что бы не стал слишком увлекаться увеличением числа прогонов (и уменьшением размера отдельного OOS).
avatar
Replikant_mih, Спасибо вам за развернутый ответ.
avatar
Replikant_mih, но ведь в итоге вы выберете вариант который
А. Показывает лучший результат на всех пяти квадратиках
Б. Показывает лучший результат на последнем
А если так — не проще ли подобрать параметры на всем интервале сразу?
avatar
MoscowTrades, 
но ведь в итоге вы выберете вариант который
А. Показывает лучший результат на всех пяти квадратиках
Б. Показывает лучший результат на последнем

Нннет, я так делать не буду, поэтому и «не проще ли подобрать параметры на всем интервале сразу?» — тоже нет).
avatar
Сленг у тебя специфический. Слова типа «верификация» знаешь )
avatar
Андрей К, Ну сленг он да, как отголоски нашего опыта).
avatar
Прочитав сей опус, у меня зародился правильный вопрос. Где!?
В смысле где «взять стратегию», как описано у автора в «нескольких примерах».
avatar
Ну и вывод: задавайте правильные и нужные именно вам вопросы

Навеяло....

Каждый интеллигентный человек должен постоянно задавать себе три вопроса:
-Кто я такой?
-С какого я района?
-Почему я такой дерзкий?

как говорил Кирилл Николаевич, ответ — число ) он что-то знал про правильные вопросы, как пить дать )
avatar

Читайте на SMART-LAB:
Фото
📅 График торгов на майские праздники
Публикуем режим работы бирж в праздничные дни. 🔴 Московская биржа 9 и 10 мая торги на всех рынках Московской биржи проводиться не...
Фото
Каким будет курс рубля в мае
Главное Рубль в прошлом месяце ускорил восстановление и полностью нивелировал мощную волну ослабления, стартовавшую в конце января. В...
Фото
13 мая выпуск облигаций ТЛК / ЯрКамп Лизинг (ruBB-, 200-250 млн руб., YTM 29,34%)
🔵  На 13 мая запланировано размещение нового выпуска облигаций Транспортной лизинговой компании / ЯрКамп Лизинг 🔵 Обобщенные параметры...
Фото
Сети. Кто сейчас самый дешевый? Сводный пост по сетевым компаниям по отчетам РСБУ за Q1 26г.
Введение Россети Центр Россети Ленэнерго Россети Московский регион Россети Волга Сводные таблицы Введение Все...

теги блога Replikant_mih

....все тэги



UPDONW
Новый дизайн