Микаелян Саро
Микаелян Саро личный блог
17 мая 2017, 13:14

Оттачивание алгоритма и фильтрация разных рыночных ситуаций

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

 

Данная статейка просто изложение в тексте моих мыслей при создании алгоритма. Пусть это будет продолжение предыдущей статьи о том как собирал свой велосипед. 

После того как собрал алгоритм, внес в него не мало коррективов, в частности закрываю тейком, это позволило сэкономить чутьчуть денег, так как алгоритм «случайно» мог достигнуть равновесной цены, и при закрытии по рынку могли сталкиваться с ситуацией когда равновесная была достигнута в пике и далее рынок сильно отскочил от него. Понятно что тейком, внес новый риск что сделка может не закрыться по расчетной цене, но благо это можно обойти ожидая новую равновесную цену (я в своем алгоритме предусмотрел ситуацию, если тейк не сработает то на след баре крыть по рынку).

Итак теперь график эквити выглядет так 

Оттачивание алгоритма и фильтрация разных рыночных ситуаций

Понятно вроде бы красиво, но бывают слишком крутые просадки. Иследующим шагом стало изучение ситуаций, при которых алгоритм лосит.

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

Не менее важно смотреть на размер убытка.

Итак по Эквити обозначил проблемные зоны, которые нужно постараться уменьшить

Оттачивание алгоритма и фильтрация разных рыночных ситуаций
И нужно обращать внимание не только на просадки, но и на зоны «перепроизводства» и «застоя». 
То есть, если алгоритм слишком много заработал и перестал так приносить денег, значит это была случайность, которая в будущем может оказаться убытком. Зоны застоя, чаще говорят о том что или алгоритм делает слишком мелкие сделки либо рыночная ситуация не позволяла заработать по алгоритму. 

Далее переносимся на график, и ниже будут обозначены проблемные зоны непосредственно с графика.

Оттачивание алгоритма и фильтрация разных рыночных ситуаций
Оттачивание алгоритма и фильтрация разных рыночных ситуаций
Определил для себя главную проблему. Ситуация в которой Сбер идет в разнобой с ммвб и этот процесс продолжительный. И пока что решить конкретно эту проблему не смог. Есть конечно идеи анализировать не только движение сбера и ммвб, но и ртс, так как заметил что если сбер не идет за одним то 100% идет за другим. И если данную проблему удастся решить, то в след статье опишу как добился этого.
Острота проблемы заключается не в том, что это убыточная позиция а в том что она слишком долгая. продолжительность 500баров, хотя обычные сделки в пределах 50-100баров.
Но в поисках решения этой проблемы обратил внимание на самый важный элемент в стратегии — корреляцию. Понятно что теоретически профит там где будет обратная корреляция, то есть сбер сильно отклонился от ммвб и нужно совершать срочно сделку с расчетом на то что ммвб перетянет сбера. Но оказалось в цифрах все наоборот. 

Оттачивание алгоритма и фильтрация разных рыночных ситуаций
Как и на первых двух скринах, так и на третьем, если обратить внимание на выделенные зоны, то понятно что если корреляции нет, то лучше не торговать в принципе. Вообще всегда на график старайтесь выносить все, участвующие в открытии позиции, данные, так намного проще анализировать проблемы. 
Итак отфильтровал сделки только если кореляция больше нуля. Логика работает таким образом, если сложилась неэффективность рыночная то я ее сейчас смогу отработать только если бумаги движутся в одном направлении. НО важен еще момент добора позиции (в предыдущей статье упоминал добор) чем больше мы наберем позицию, тем больше рискуем, и в данном случае добор осуществляется только при корреляции выше 0.9 (если в теме не очень разбираетесь, кореляция от -1 до 1 меняется где -1 обратная корреляция, а 1 прямая, и чем ближе к 1 тем лучше, остальное можно в википедии почитать). таким образом алгоритм теперь добирает позицию чаще в плюс чем в минус. именно это решение было самым полезным как я считаю.  то есть можно рисковать при первом входе, но каждый новый вход нужно делать с меньшим риском.

Но, остается самая бесячая проблема

Оттачивание алгоритма и фильтрация разных рыночных ситуаций
Ситуация в которой и корреляция хорошая, но сделка идет в убыток. Причина естественно в том что Сбер растет быстрее ммвб. Эту проблему постараюсь тоже решить (пытаюсь придумать логику, в которой алгоритм будет анализировать направление движения двух бумаг, и если обе идут в одном направлении то сделки открывать только в этом направлении. в частном примере там можно было бы открывать лонг, если возникает сигнал, а шорт игнорировался бы, или же закрылся раньше. Посмотрим что получится (если получится)

Кроме этого есть обратная ситуация когда обе бумаги идут в одну сторону и ммвб перетягивает сбер в свою сторону
Оттачивание алгоритма и фильтрация разных рыночных ситуаций
И эту ситуацию (золотую жилу) стоит лучше отрабатывать, например удваивать донабор, или увеличивать в прогрессии каждый следующий добор. НО эту ситуацию пока не реализовал, так как нужно для начала научиться правильно анализировать направленность рынка. Другими словами решение проблемы предыдущего скрина, поможет решить и текущую.
Итог, к чему привели текущие фильтры
Оттачивание алгоритма и фильтрация разных рыночных ситуаций

Часть проблем удалось решить, как и уменьшить сильные просадки. Да, естественно приходится жертвовать частью прибыли, но это вопрос лишь приоритетов, кому что важнее. 
К слову ничего не мешает оба варианта использовать в работе но с разным обьемом денег, это уже философия.
Извините за слишком длинную(из-за картинок) статью, надеюсь мысли были полезными.

37 Комментариев
  • vito2000
    17 мая 2017, 13:26
    Вот за такие посты я все еще читаю СмартЛаб.
  • Enter1
    17 мая 2017, 13:33
    те же грабли у меня
  • Replikant_mih
    17 мая 2017, 13:33

    Класс! Отличный пост.

    Видна логика работы с идеей, со стратегией, и это вам не закодил, прогнал в оптимизатре, выбрал лучший вариант, а обоснованный алгоритм, всё логично, сначала ищешь резервы, затем способы их реализации. На мой взгляд именно в таком ключе и надо работать с идеями и стратегиями. Ну и результат (разница начального и конечного графиков) налицо.

  • Дмитрий. А
    17 мая 2017, 13:35
    Да, я тоже)) Вообще мне кажется, что Саро гений в Тс лабе и логике и ему не нужны никакие советы)) 
  • Replikant_mih
    17 мая 2017, 13:36
    Правда не удавалось следить именно за повествованием применительно к конкретной стратегии — эту информацию я воспринимал как ветер в ушах ну или бла-бла-бла)), но это вообще не помешало уловить смысловую нагрузку текста касаемо способов и алгоритмов работы со стратегией.
  • Oleg Only Algo
    17 мая 2017, 14:38
    руками больше заработаешь. реально!!! Я этой мути столько переписал
    • Oleg Only Algo
      17 мая 2017, 14:39
      Oleg Only Algo, но пока не начнёшь писать роботов понимание о рынке долго ждать придётся, тут как бы нужная вещь эти алгоритмы
      • Oleg Only Algo
        17 мая 2017, 14:41
        Oleg Only Algo, и особенно тслаб — полезная штука
    • Replikant_mih
      17 мая 2017, 14:58
      Oleg Only Algo, Легкое ощущение диссонанса) — ник и сообщение)
      • Oleg Only Algo
        18 мая 2017, 09:11
        Replikant_mih, в 2016, когда волатильность стала не та — выключил свой надежнейший алгоритм, который каждый год в плюс до этого работал в хороший. Попытался подстроить, но стабильного результата так и не нашёл и решил торговать руками по тому же алгоритму, но с учётом внешнего фона, новостей и интуиции. Результаты лучше. Но стратегия прибыльная ОБЯЗАТЕЛьно должна быть, иначе слив сто процентный
        • Replikant_mih
          18 мая 2017, 11:25
          Oleg Only Algo, Все-таки даже интуиция это не неведомая связь с космосом, по большому это тоже мыслительный процесс, только подсознательный. Я к тому, что если руками торгуется хорошо, а алгоритмически не очень — это говорит о сложностях с формализацией стратегии, условно говоря «недоработал», «недожал». Ну а в целом согласен.
      • Oleg Only Algo
        18 мая 2017, 09:07
        Микаелян Саро, терпеть убытки или недополученную прибыль так же тяжело, это же деньги 
    • Дмитрий. А
      17 мая 2017, 19:44
      Oleg Only Algo, ой не знаю не знаю)), у каждого по своему, у меня наоборот, руками не получалось, а вот через алго, даже несложные системы трендовые, удается зарабатывать, пусть немного, но плюс, а руками не получалось.
  • Siryoyo
    17 мая 2017, 16:03
    Эти кривые в посте выше out-of-sample построены? Если нет, то выглядит как жесткий фитинг…
  • Siryoyo
    17 мая 2017, 16:34

    Раньше не надо, надо позже:)

    Я к тому, что если вы его разрабатываете/оптимизируете/учите, например, на барах 2015 года и ранее, то кривые (результат out-of-sample) должны строить на барах позднее 2015 года, чтобы в этих данных не было пересечений.

      • Siryoyo
        17 мая 2017, 17:15
        Микаелян Саро, да безусловно вы можете работать, как вам удобно. Факт в том, что вы занимаетесь оверфитингом, как я понял. На мой взгляд, потеря времени.
          • Siryoyo
            17 мая 2017, 17:27

            Микаелян Саро, да, есть понятие training set, где вы подбираете параметры, веса, фильтруете убыточные кейсы и т.д., есть validation set, где вы тьюните гиперпараметры модели и test set, где вы смотрите и оцениваете результат стратегии. Если на test set модель не разваливается, то можно фитить дальше:)

            Мне каажется, это какие-то очевидные вещи ...

  • SenSoR
    17 мая 2017, 16:41
    Как всегда качественный пост. Однозначно в избранное! =)
  • Sergey Pavlov
    18 мая 2017, 07:42
    А теперь для качественности и осмысленности результатов добавьте хотя бы пару предыдущих лет к полученной эквити:)
  • ves2010
    18 мая 2017, 10:09
    сбербанк 15ти минутка поресечение цены закрытия со скользящей средней… фикс сумма 1мио



    • Sergey Pavlov
      18 мая 2017, 10:56
      ves2010, ага, они всё же уверены, что надо заниматься переподгонкой:)

      Но по правде тут со сбером всё не так гладко, ибо средняя в 0.13% в реальности при этом же объеме в 1 мио станет средней менее 0.1%, а это ой как маловато будет, если убрать 2008 и начало 2009…
      • ves2010
        18 мая 2017, 11:12
        Sergey Pavlov, у афтора средняя  вообще 0.07%… ну и в реальности среднюю можно легко поднять до 0.3-0.4% 
          • ves2010
            18 мая 2017, 12:31
            Микаелян Саро, эээ не горячись… я как бы намекаю что сбербанк торгуется элементарно и просто… как и си… гораздо интереснее боты в ри, миксе и луке… имхо самый трудный это лук… 
              • BRIGHT FUTURE
                23 мая 2017, 20:07
                Саро, разрешите задать простенький вопрос: не могу разобраться как сделать, чтобы алгоритм не открывал сделки с 18.45 до 19.05.
                это примерный скрипт
                буду благодарен, если подскажите :)
                  • BRIGHT FUTURE
                    24 мая 2017, 11:57
                    Микаелян Саро, Спасибо, большое! Все получилось.
        • Лупин Пастор
          22 сентября 2017, 14:15
          ves2010, как это сделать?

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

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