Микаелян Саро
Микаелян Саро личный блог
03 марта 2020, 14:58

Мое имхо на оптимизацию алгоритма.

Приветствую!

Заранее прошу прощения за ошибки в тексте. иногда залипает буква «о» и приходится ее копипастом печатать.

Хотелось бы подискутировать на тему оптимизации. Много трейдеров, находятся в нескончаемых поисках лучших параметров для своих стратегий, и ставят оптимизацию, выше чем саму суть алгоритма и трейдинга. Лично сам я, крайне редко прибегаю к оптимизации. И не важно какой крутой бы не был тестер. с бэктестингом или форвард, 3д графики и различные коэффициенты — это все, не так будет важно при попытках переоптимизировать и подогнаться под график. 
Смысл всей оптимизации, под имеющиеся данные — найти наилучший результат. это по сути — просто статистика. Да мы можем подставить наоптимизированные цифры в новую история (форвард) и тем самым сделать вывод типа и на истории хорошо и на новых данных тоже хорошо, вот только гарантии, что онлайн — будет так же, нет никакой, если мы в самом алгоритме, не учли возможные изменения в рынке.
Нет речи о создании, конечно, грааля. Приведу пример: например парный трейдинг в классике, пара газпром/лукойл. торгуем себе от соотношения пары 8-9, а потом бац и разрыв уходит до 6 потом до 3 и все, что мы там и как бы не оптимизировали — рынок уже другой. Взять ртс. до 2008года потом до 2011 потом до 2014 — абсолютно разная бумага. Это нужно понимать и не делать оптимизацию на 15 лет и думать, что если все гладко, то у нас грааль. 
Конечно все это выбор каждого, потому расскажу в каких случаях я прибегаю к оптимизации.
Пример 1 
Алгоритм по паттернам. у каждого они свои. условно смотрю на величину бара на минутке, 5, 10 и 15, а так же их объемы. 
Следущим шагом я в алгоритме указываю минимальные значения которые готов рассматривать и максимальные. Далее идут в оптимизацию и смотрю — какие есть варианты. 
Мое имхо на оптимизацию алгоритма.
Сортирую по лучшему доходу и смотрю — ага, есть 100результатов из них есть варианты с большой частотой сделок и маленькой — доход соразмерен. Логичен ли для меня/алгоритма вариант с малой частотой сделок или наоборт? Дальше анализирую сами параметры. если их разброс очень сильный при соразмерных результатах — то нужно проверить на истории подлиннее. В идеале конечно останется несколько близких результатов и это можно будет просто в часть диверсификации алгоритма впихнуть. 
Мое имхо на оптимизацию алгоритма.
Дальше оцениваю наихудшие результаты. опять же не для галочки — а чтобы рассмотреть при каких параметрах — так случается. ввиду это случайностей или нелогичности таких параметров. возможно не хватает каких либо фильтров и тд.  но чаще всего, естественно, дело в слишком неподходящих параметрах  для данного алгоритма. 
Смотрю ли я на гладкость эквити или коэффициенты? практически нет. Редко удается в трендовом алгоритме, с малой частотой сделок, построить ровную эквити. это нужно понимать и не пытаться накрутить параметры ради подобной цели. 

Так же например если я проверяю доп фильтрацию. 
Мое имхо на оптимизацию алгоритма.
к этому же алгоритму добавил индикатор и смотрю, какой эффект он оказывает. какие сделки убирает. Например короткий период более подходящий или длинный период индикатора. и тд итп. как либо проверить это по другому просто невозможно!
Замечу, что при этом я не прогоняю все параметры оптимизации — а лишь добавленный индикатор, так как мне важен его анализ, а не красивый результат.

П.С. никого не отговариваю и никого не призываю к отказу от оптимизации. 

34 Комментария
  • 3Qu
    03 марта 2020, 15:06
    Только неверно: оптимизация — это никаким боком не статистика. Две большие разницы.)
      • (1:10) || algo
        03 марта 2020, 16:37
        Микаелян Саро, совсем не оптимально работать на дырявой клавиатуре, да еще и писать об этом в посте на серьезную тему. Клава рабочая стоит от 500-1000 руб., вроде. Нервы уже чуть дороже, а репутация трейдера, способного взять с рынка хотя бы на клаву — еще дороже :)
        • 3Qu
          03 марта 2020, 16:40
          (1:10) || algo, ну некогда человеку до магазина дойти. Я уже полгода мышку меняю.)) И я его понимаю.)
          • (1:10) || algo
            03 марта 2020, 16:46
            3Qu, мне было б лень каждый текст copy-paste дрючить, а Саро, видно, ну очень трудолюбивый человек =))
              • (1:10) || algo
                03 марта 2020, 16:48
                Микаелян Саро, суньте в usb что-нибудь. должно работать
          • (1:10) || algo
            03 марта 2020, 16:48
            Микаелян Саро, фтопку такой ноут… а клаву через usb он разве не поймет? нервы реально дороже. бывают занудные проблемы, которые много эмоций сосут, но решаются легко и просто. на мой взгляд, это одна из таких
          • 3Qu
            03 марта 2020, 17:08
            Микаелян Саро, чтобы не дергаться, «о» можно набрать так нажимаем Alt, и не отпуская +0238. О — Alt +0206. + и цифры набираются на цифровой клавиатуре! Раскладка должна быть переключена на русскую!
            • VladMih
              03 марта 2020, 17:10
              3Qu, а вы там на что нажимаете, чтобы получилось «днргаться»? ))
              • 3Qu
                03 марта 2020, 17:12
                VladMih, на клавиши почти не смотрю, иногда промахиваюсь.))
  • Андрей Синкин
    03 марта 2020, 15:10
    Соглашусь, что просто тупой набор индикаторов без привязки к торговому методу — это просто подбор фильтров для приближения к идеальным сделкам на истории и оптимизация в данном случае просто максимально подгоняет сделки к идеальному результату.
    Я считаю, что оптимизация в ТСЛаб — это мощный инструмент статистики и если к обработке данных под свою стратегию подходить в рамках логики самой стратегии, то оптимизация не такой уж и враг, а хороший помощник. Очень много трейдеров статистику обрабатывают в ручную)
    А красивая эквити достигается путем риск-менеджмента — это логики работы стоп-лосса и необходимости перевода в БУ, а также трейла, который для роботов можно делать с любыми логиками, которые невозможно осуществить вручную.
    • 3Qu
      03 марта 2020, 15:24
      Андрей Синкин, 
      Соглашусь, что просто тупой набор индикаторов без привязки к торговому методу — это просто подбор фильтров для приближения к идеальным сделкам на истории и оптимизация в данном случае просто максимально подгоняет сделки к идеальному результату.
      С привязкой к торговому методу оптимизация остается подгонкой. Метод м.б. и не рабочим, но оптимизацией мы его туда загоним.
      Единственно рабочий метод наруливания стратегии — это статистика. И критерием должно быть не макс прибыль, и даже вообще не прибыль.
      Что должно быть — эт не знаю, т.к. для разных даже функциональных узлов стратегии могут быть свои критерии. На этот вопрос нет однозначного ответа и выбор метода решается конкретной статистикой на истории.
      • Андрей Синкин
        03 марта 2020, 15:34
        3Qu, 
        Согласен, что не рабочий метод можно на истории сделать рабочим за счет грамотного сопровождения позиции и оптимизация будет просто подгонка. И результаты у этого «не рабочего» метода будут в любом случае слабыми, неустойчивыми и т.д.
        Но когда метод показывает хорошие результаты и без оптимизации, и, например, если торговля ведется от зон с высокими объемами, по сигналам с определенными параметрами (объем, размер бара и т.д.), то на истории под конкретный инструмент можно определить оптимальные параметры (объем, размер бара, проход цены и т.д.), то это уже можно назвать статистика, т.к. определили рабочие параметры нашей торговой системы к определенному инструменту.

        • VladMih
          03 марта 2020, 15:56
          Андрей Синкин, хотел бы я посмотреть как вы сделаете приемлемые результаты нерабочим методом с подгонкой лет эдак хотя бы за 10 подряд.
          Если он нерабочий, то никакая подгонка его не реанимирует.

          Я вообще не понимаю что такое нерабочий метод.
          Или метод логически обоснован и он есть, или его попросту нет.
  • VladMih
    03 марта 2020, 15:47
    Паттерн оптимизируется отдельно, индикатор «проверяется» отдельно.
    А логика тут в чём? Мне кажется такой подход (запрячь в одну телегу коня и трепетную лань без попытки их «синхронизировать») хуже, чем переоптимизация. Перегнул чуток, но вы поняли.

    Могу согласиться с подходом, когда индикатор применяется просто как фильтр — ну тогда можно, конечно, посмотреть чего от него больше, вреда или пользы. При таком подходе можно оптимизировать отдельно параметры индикатора.
    И всё же считаю, что лучше потом окончательно оптимизировать ВСЕ параметры совместно. Ну просто не понимаю почему нет!
    Опасность переоптимизировать?
    Ну так не надо ПЕРЕ, надо просто оптимизировать ))
      • VladMih
        03 марта 2020, 17:08
        Микаелян Саро, я думал пост про "оптимизацию алгоритма".
        Про предварительный подбор фильтра я б и не отвечал.
      • Михаил Березовиков
        03 марта 2020, 18:04
        Микаелян Саро, Саро привет, на данный момент дописывается робот на базе кластерного анализа, и там очень много параметров оптимизации, существует ли способ при больших количествах параметрах оптимизации прогнать оптимизацию, но ускоренно, важно чтобы в просчёте участвовали одновременно все параметры, или можно не со всеми но поэтапно оптимизировать? Если да, то эффективно ли вообще выйдет таким подходом оптимизировать (по кускам)....


        • LogikoMen
          03 марта 2020, 20:35
          Михаил Березовиков, делай по кускам. Другого выхода нет. Мой совет. Смотреть не на показатели. А на изменение показателей рядом стоящих по параметру. Чем меньше разброс, тем лучше. Но тема большая, и в автором не раскрыта.
  • 3Qu
    03 марта 2020, 16:39
    я сторонник настройки систем (не люблю слово — оптимизация)) на небольших периодах. Имхо, 200-300 сделок вполне достаточно для настройки, и еще 100 для проверки. Если пустышку тянем, то большая история и много сделок ничего не дадут. Если стратегия рабочая, то и небольшого количества хватит для оценки.
    • LogikoMen
      03 марта 2020, 20:36
      3Qu, да. И стратегия живет так же — не долго. Вопрос — как вы определяете. Что система (оптимизированная) сдохла?
      • 3Qu
        03 марта 2020, 20:48
        LogikoMen, 
         И стратегия живет так же — не долго.
        Исходя из чего такие выводы? С потолка? Даже исходя из здравого смысла такой вывод не прокатывает.
        А стратегия по любому живет недолго — 1-2 года. Рынок меняется. И настраивать на большой истории нет смысла. Ловите плюшки которых уже давно нет и оптимизируюте под все сразу.  Усредняетесь под все сразу. В результате большую часть сегодняшних реалий просто пропускаете мимо.
        • LogikoMen
          03 марта 2020, 21:44
          3Qu, вопрос стоял не в правильности подхода. А как определить смерть системы. Постоянные системы. Которые не сливают — хоть какая то гарантия сохранения денег. Оптимизированные под короткий период — тыкать пальцем в небо. Для короткой истории выбрать что то — нужен правильный подход. Его хоть озвучите?
          • 3Qu
            03 марта 2020, 22:09
            LogikoMen, постараюсь озвучить, хотя трудно.
            1. Определяем принципы стратегии. Какие конкретно статистические свойства будет использовать.
            2. на модели все это прогоняем, и уточняем свойства и их статистику. Прибыль не является главным критерием. Скажем, если удачная сделка, даже с большой прибылью выпадает из общей статистики, мы уточняем статистику, чтобы этой сделки не было, не совершалась.
            2. Дальше тест не менее 100-300 сделок, и можно переделывать систему под реал.
            Обычно хорошо себя показывает. Отклонение на реале ~20-25%.
            Т.е., мы оптимизируем не макс прибыль, а условия входа в сделку под максимум распределения удачных сделок в стратегии, независимо от их прибыльности.
            Как-то так.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн