Николай Флёров
Николай Флёров личный блог
11 августа 2017, 12:06

ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров


  ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров

Для того, чтобы лучше понять материал, можно ознакомиться в этими статьями:
https://smart-lab.ru/blog/180975.php
https://smart-lab.ru/blog/259824.php 
Там же видео как я оптимизировал 2,5 года назад(2015 год)

+++ Спасибо за твой плюс или коммент, они важны для меня!+++
*Картинки из статьи можно смотреть тут
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров
Первое — я провожу большую оптимизацию и получаю несколько отчетов.
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров

(Рис.  Отчет лучших 10 результатов по разным инструментам и TimeFrame)
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров

Важно сравнить результаты на разных Тикерах и ТаймФреймах. Можно сначала провести оптимизацию без «реИнвеста», но все равно в дальнейшем придется оптимизировать и в тех мани-менеджмента, которые я собираюсь торговать, а возможностей в PortfolioSimulation(«реинвест модуль») больше.

По умолчанию в PortfolioSimulation(модуль оптимизации с «реИнвестом») велс сбивает все тикеры в портфель. Протестировать с разными мани-менеджментами по отдельности в одной оптимизации их не получится так просто.(PS — к слову в TsLab вообще нельзя оптимизировать несколько тикеров, а мани-менеджменты нужно  прописывать самому с нуля естественно в API). Но сделать это можно, тем более, если Вы планируете торговать >=10 контрактами, сравнивать все равно придется. Результаты с разными мани-менеджментами будут отличаться иногда довольно сильно.

(Рис. Недельные изменения в %-ах, недельная Equity и недельные просадки)
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров
Интересующий меня результат можно посмотреть в WLD, загрузив в него результаты оптимизации, либо в Excel или R, результаты у меня сохраняются автоматически в csv.(из рисунка видно что, сохраняется Equity, просадка и дневные изменения).

(Рис. Результаты. Мани-менеджмент Риск на сделку 1%)
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров
*Картинки из статьи можно смотреть тут
Также иногда пользуюсь R — анализ выходит еще быстрее и информативнее. (если будут плюсы напишу подробнее)
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров

ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров

Многие алгоритмисты смотрят на лучшие результаты, которые могут быть разбросаны по полотну всех результатов, и представлять различные экстремумы и аномалии(ситуации которые не повторятся в будущем), однако если анализировать множество лучших результатов в совокупности, средние результаты будут ближе к реальности. 
(Рис. Аномалии)
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров
(Рис. Пучок лучших результатов)
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров
Я обычно смотрю не лучшие результаты, а область в которой сконцентрировано большинство хороших результатов и если рынок не поменяется кардинально, с большей вероятностью эта область останется прибыльной. Среди результатов лучшей области могут попадаться и очень плохие результаты, в отличие от первого варианта, также они могут быть более скоррелированные, из-за того, что находятся в непосредственной близости друг к другу. *Про работу с корреляциями будет подробно чуть ниже.

(Рис. Таблица полотна результатов с условным форматированием по разным Тикерам и TF)ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров
   *Картинки из статьи можно смотреть тут

ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров
Можно узнать как двигались лучшие параметры от года к году, чтобы найти общие устойчивые области.
(Рис. Отчет оптимизации генетикой отдельно по каждому году. Год 2008-2009)
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров

Чтобы посмотреть по остальным годам кликните на следующую картинку
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров
В примере стратегия «так себе», главное что хотел показать — такой анализ может быть очень полезным.
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров

Форвардный тест в классическом виде не работает, в первую очередь потому что мы не знаем какой «лучший» параметр брать для проверки. Так как лучший параметр, как правило является подгонкой, то и форвардный тест -будет показывать, что ваша стратегия сливает на форварде. Поэтому либо нужно брать достаточно большой пучок Equity( например 40-50) и тестировать/торговать на большом наборе параметров. Либо нужно брать значения из стабильной области параметров, однако уверен, что следует также брать несколько наборов параметров.

В итоге получаем пучок форвардных Equity(склеенных из Equity периодов OutOfSample лучших N результатов на InSample)
*ставьте плюс, если хотите подробнее про это
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров
Данная стратегия устойчивая и с маленьким количеством параметров, поэтому разброс пучка не очень сильный, но есть стратегии, в которых результаты OutOfSample отличаются кардинально.

(Рис. Средний рез. из пучка форвардных Equity (склеенных из OutOfSample 40 результатов), Si — 7 лет, InSample — 1год, OutOfSample — 1год)ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров
Одним из трудоемких процессов был — отсев результатов с высокой корреляцией. Теперь он решен путем кластеризации Euity. Под кластеризацией я понимаю группировку похожих Equty в кластер, из которых для оптимизации портфеля будет взята только одна из множества данных Equty. В конечном итоге мы получим набор Equity, которые не коррелируют сильно ни с одной другой в будущем портфеле.

Я предпочитаю отбирать параметры по скоррелированности просадок(не по Equity), многие советуют работать с дневными изменениями(returns).

(Рис. Автоматически сгенерированные нескорелированные Equity лучшей области полотна результатов(20% от всего полотна) в виде котировок, для оптимизации портфеля в WLD)
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров
*Картинки из статьи можно смотреть тут

Чтобы лучше понять суть метода работы с «Equity-котировками», можно ознакомиться с постами smart-lab.ru/blog/180975.php и smart-lab.ru/blog/285828.php

(Рис. Одна из загруженных в WLD Equity)
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров
(Рис. Неоптимизированный портфель 90 нескоррелированных Equity)
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров

(Рис. После оптимизации осталось 46 Equity с разными весами в портфеле, но не >10%)
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров

Все отчеты генерируются автоматически самим оптимизатором.
Вот так он выглядит сейчас (для тех, кто читал предыдущие статьи).
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров

Надеюсь Вам было интересно/ полезно.
+++ Спасибо за твой плюс или коммент, они важны для меня!+++
*Картинки из статьи можно смотреть тут

__примеры тем:
Ваши вопросы по Wealth/ TsLab API 1.2
Как сделать так, чтобы Welath не стоил так дорого(800$),
Как перевести стратегию с Wealth на TsLab или обратно,
Как можно тестировать стратегию на устойчивость в Wealth
Датамайнинг
Какой язык учить и в чем проторговывать стратегии бесплатно
Как находить пары для парного трейдинга/арбитража, тестировать их
Как создавать свои мани-менеджменты Wealth/TsLab и тестировать их

__запись лимитирована: 

instagram.com/_nikfly
vk.com/hi_you
facebook.com/nikolay.flerov
Telegr - @NikolayFly;
Skype — horoshij_den 
37 Комментариев
  • Sergey Pavlov
    11 августа 2017, 12:15
    «Красота-то какая! Лепота!»
    Как это всё живёт в реальных торгах?
      • Stoic
        11 августа 2017, 16:22
        Николай Флёров, Это с какой суммы? Как думаете, реально делать 20% в месяц на рынке деривативов?
  • Artemunak
    11 августа 2017, 12:17
    1. спасибо.
    2. Ник на лчи.
    3. Куда пропадал.
  • Андрей К
    11 августа 2017, 12:23
    с екселем и визуализацией зачетная идея
  • Вячеслав Герасимов
    11 августа 2017, 12:31
    +++ поставил как смог
  • ves2010
    11 августа 2017, 12:49
    все резко упрощается если параметров оптимизации… или параметра оптимизации нет совсем…
    • Cristopher Robin
      11 августа 2017, 14:36
      ves2010, оптимизация это как стероиды, главное не переборщить
  • ves2010
    11 августа 2017, 12:49
    один
  • Жери
    11 августа 2017, 12:49
    алкотрейдинг)
    • Stoic
      11 августа 2017, 16:17
      Кузя,  и это тоже)
  • Astrolog
    11 августа 2017, 13:01
    Кластеры, это главное, творческий подход.
  • SergeyJu
    11 августа 2017, 13:04
    1. Интересно.
    2. Я каждую эквити свожу к дневкам, как и портфели. В общем, похоже.
    3. У меня оптимизация по году совершенно неустойчива. В общем, желательно оптимизировать по максимально доступному материалу. Например, есть 10 лет. Делаем 10 оптимизаций с выброшенным одним годом. Для каждой оптимизации этот год — аутофсемпл.
    4. По какому критерию включать и отключать системы — трудный вопрос. Пока я не нашел ответа, стараюсь брать их так, чтобы вклад в риск (в рублях) был примерно одинаковый. 
    5. Можно монтекарлить. И это, реально, весьма быстро. Мне кажется, зря Вы с вэлсом связались, жутко тормозная вещь.
    6. А можно попробовать жадный алгоритм кластеризации. Сночала строим несколько хороших пар(портфель из 2 эквити). Потом, перебором, по одиночным эквити, строим из них лучшие тройки. Выбрасываем совпавшие. Перебором строим четверки. На каждом этапе видим, что улучшается в портфелях. 

  • Sergey
    11 августа 2017, 13:20
    Хорошая статья, плюсовать не могу, нет рейтинга.

    Как сделать так, чтобы WealthLab не стоил так дорого?
  • home30
    11 августа 2017, 13:53
    А что AmiBroker совсем тру программеры не уважают? Он вроде быстрее считает.
    • SenSoR
      11 августа 2017, 15:09
      home30, Сижу на ами. Да, быстрый. Но на нем нет таких плюшек, как в велсе, но мне и ами хватает… я не тру программер))
      • home30
        11 августа 2017, 16:32
        SenSoR, это вы в Ами тестировали свои стратегии, которые крутятся у вас на стриме?
        • Replikant_mih
          11 августа 2017, 16:46
          home30, Я кажется нашел человека, который смотрит стримы SenSor, они действительно существуют))
          • SenSoR
            11 августа 2017, 17:48
            Replikant_mih, Ура! Кажись, у меня есть своя секта)) Точнее была, т.к. со стримами покончено)
            • Replikant_mih
              11 августа 2017, 23:28
              SenSoR, Везёт тебе! Тоже бы хотел, быть может и у меня когда-нибудь будет. Пометил себе, что стримы в этом помогают.
        • SenSoR
          11 августа 2017, 17:44
          home30, Да. Крутились)
  • SECRET
    11 августа 2017, 14:02
    В реале то как? Прибыль есть?
  • Maxim Sheyko
    11 августа 2017, 21:39
    Николай, Вы написали, что будете рады любому фидбеку, так что не обессудьте, приведу копипасту из книги весьма известного автора, имя которого легко нагуглить по выводам:

    Эти наблюдения, которые согласуются с результатами похожих эм­пирических тестов, предпринятых мною в прошлом, предполагают сле­дующие ключевые выводы относительно оптимизации*:

    1. От любой системы, повторяю, от любой системы с помощью оп­тимизации можно добиться того, чтобы она была очень прибыль­ной на исторических данных. Если вы когда-нибудь обнаружи­те систему, которая не может быть оптимизирована так, чтобы показывать относительно хорошую прибыль в прошлом, примите мои поздравления: вы только что открыли машину по производству денег (поступайте противоположно ее сигналам, если толь­ко транзакционные затраты не чрезмерны). Таким образом, при­ятно смотреть на удивительную результативность оптимизиро­ванной системы в прошлом, однако она имеет мало практичес­кой ценности.
    2. Оптимизация будет всегда, повторяю, всегда преувеличивать по­тенциальную будущую результативность системы — обычно весьма сильно. Таким образом, результаты оптимизации никог­да не должны, повторяю, никогда не должны использоваться для оценки достоинств системы.
    3. Для многих, если не для большинства систем, оптимизация не будет улучшать будущую результативность или улучшит ее незна­чительно.
    4. Если оптимизация и имеет какое-то значение, оно обычно со­стоит в определении широких границ диапазона, из которых следует выбирать значения наборов параметров для системы.
    5. Тонкая подстройка оптимизации — это в лучшем случае потеря времени, а в худшем — самообман.
    6. В свете всех предшествующих пунктов искушенные и слож­ные процедуры оптимизации — пустая трата времени. Наипростейшие оптимизационные процедуры будут предоставлять не меньшее количество значимой информации (предполагая, что, вообще, может быть извлечена некоторая значимая ин­формация).

    В итоге, в противоположность широко распространенным верованиям, существует некий резонный вопрос: приведет ли оптимизация к суще­ственно лучшим результатам при длительном периоде торговли, чем случайным образом выбранный набор параметров? Чтобы не было ни­каких недоразумений, позвольте мне уточнить: это утверждение не при­звано подразумевать, что у оптимизации вообще нет никакой ценнос­ти. Во-первых, как указано ранее, оптимизация может быть полезна при определении явно неподходящего диапазона параметров, который сле­дует исключить при выборе значений параметра (например, N # 20 в нашем примере системы пробоя). Кроме этого, возможно, что для не­которых систем оптимизация может провести некоторые границы в выборе наборов параметров даже после исключения крайних неопти­мальных диапазонов. Однако я подразумеваю, что степень улучшения, предлагаемая оптимизацией, намного меньше, чем обычно представля­ется, и что трейдеры, вероятно, сберегли бы кучу денег, доказывая в начале любое предположение, которое они делают по поводу оптими­зации, а не принимая эти предположения слепо на веру.

    • Replikant_mih
      12 августа 2017, 07:14

      Maxim Sheyko, прокомментирую)

      Первые пункты действительно справедливы для некоторых подходов к процессу оптимизации — да, так оно и происходит. Но, оптимизация — это класс сущностей, не следует их под одну гребенку. Кения и США — обе страны, но какие разные)).

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

    • SergeyJu
      14 августа 2017, 11:43
      Maxim Sheyko, я почти во всем согласен с Вашим постом. Но давайте поставлю такой вопрос, существует ли такой минимальный набор параметров (степеней свободы параметров) при котором оптимизация еще работает. 
      В конце концов, определение рабочего диапазона  параметра в известном смысле не сильно отличается от определения его оптимума. 
      Кроме того, у нас есть параметры непрерывные, а есть дискретные, например, признак свечи белая/черная бинарный. Перебор дискретного параметра в известном смысле имеет меньше пространство состояний и, следовательно, меньший риск переподгонки.
  • Silent Hamster
    11 августа 2017, 22:10
    Как много есть на свете вещей, без которых я обхожусь в трейдинге. 
    Будьте проще и к вам потянутся деньги!
  • HunterSrike
    12 августа 2017, 01:41
    7% prosadka za 2% v mesyac eto je bred
    • Replikant_mih
      12 августа 2017, 07:16
      HunterSrike, Не вижу бреда). А если бы Николай озвучил не среднемесячную доходность, а средненедельную или среднедневную)), то кратность чисел была бы ещё больше)). Годовая доходность в разы превышает максимальный дродаун — это гуд.
  • Replikant_mih
    12 августа 2017, 07:07

    Отлично). Понравилась идея с цветовой температурой как 3-м измерением — не знаю почему я сам до этого не дошел, по-моему очень элегантное решение — получаем все плюсы наглядности 2-х измерений, при этом находясь в 3-х!

    Всё-таки автоматизация процессов развязывает руки и даёт развернуться анализу, расширить горизонты, например, вот проверить движение зеленой области со временем.

    В финальной части потерял нить немного (я), ну а так процесс построения системы соответствует в целом моему представлению о процессе.

     

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

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