Блог им. MrFly

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


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

Для того, чтобы лучше понять материал, можно ознакомиться в этими статьями:
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 
★34
37 комментариев
«Красота-то какая! Лепота!»
Как это всё живёт в реальных торгах?
avatar
Sergey Pavlov, нормально 2-5% в месяц, а вот июль был нулевой
avatar
Николай Флёров, Это с какой суммы? Как думаете, реально делать 20% в месяц на рынке деривативов?
avatar
Stoic, кто-то сказал — «Это не я много плачу своим работникам, а зарабатываю я потому что у меня такие работники». Если у вас квалифицированная команда, которая замотивирована на прибыль + крутая инфраструктура, то %-ов 40-50 с приемлемым риском в год, в среднем можно иметь(какой-то год 20, какой-то 60-65). Думаю, что это не рентабельно на суммах до 50 миллионов, так как кадры дороги и инфраструктура, вычислительные мощности, frontTesting)
Это если Вы конечно не RokyBeat, он наверное может 20% в месяц, насколько я помню с 400 тыс руб)
avatar
1. спасибо.
2. Ник на лчи.
3. Куда пропадал.
avatar
Artemunak, спасибо)) ник смартлаба, наверное
avatar
с екселем и визуализацией зачетная идея
avatar
+++ поставил как смог
все резко упрощается если параметров оптимизации… или параметра оптимизации нет совсем…
avatar
ves2010, согласен)) но что же сделать, если то какой мани-менеджмент использовать — уже параметр и внутри него тоже минимум 1, например —  риск на сделку ;)
avatar
ves2010, оптимизация это как стероиды, главное не переборщить
avatar
один
avatar
алкотрейдинг)
avatar
Кузя,  и это тоже)
avatar
Кластеры, это главное, творческий подход.
avatar
1. Интересно.
2. Я каждую эквити свожу к дневкам, как и портфели. В общем, похоже.
3. У меня оптимизация по году совершенно неустойчива. В общем, желательно оптимизировать по максимально доступному материалу. Например, есть 10 лет. Делаем 10 оптимизаций с выброшенным одним годом. Для каждой оптимизации этот год — аутофсемпл.
4. По какому критерию включать и отключать системы — трудный вопрос. Пока я не нашел ответа, стараюсь брать их так, чтобы вклад в риск (в рублях) был примерно одинаковый. 
5. Можно монтекарлить. И это, реально, весьма быстро. Мне кажется, зря Вы с вэлсом связались, жутко тормозная вещь.
6. А можно попробовать жадный алгоритм кластеризации. Сночала строим несколько хороших пар(портфель из 2 эквити). Потом, перебором, по одиночным эквити, строим из них лучшие тройки. Выбрасываем совпавшие. Перебором строим четверки. На каждом этапе видим, что улучшается в портфелях. 

avatar
SergeyJu, спасибо за коммент. Реально очень полезно и интересно. По поводу велса — в нем я автоматизировал всю ручную работу, ставлю на тест и забываю — приходит смс — тест закончен. Самое ценное — это мое время, а не машинное время — вычислительных мощностей хватает. А также в WLD можно сделать распаралеленные вычисления — это не просто, но можно. А при наличии генетики и роя частиц — на масмаркете круче нет)
PS также есть возможность оптимизация например от 10 лет до года шагом 1 год, только без моего участия и с отчетом) Либо форвард InSample 5-10лет OutOfSample 1 год, например
avatar
Хорошая статья, плюсовать не могу, нет рейтинга.

Как сделать так, чтобы WealthLab не стоил так дорого?
avatar
А что AmiBroker совсем тру программеры не уважают? Он вроде быстрее считает.
avatar
home30, тру программеры — пишут свои тестеры)) Для тестирования на свечка — wealth мне дает крутейшие возможности)
avatar
home30, Сижу на ами. Да, быстрый. Но на нем нет таких плюшек, как в велсе, но мне и ами хватает… я не тру программер))
avatar
SenSoR, это вы в Ами тестировали свои стратегии, которые крутятся у вас на стриме?
avatar
home30, Я кажется нашел человека, который смотрит стримы SenSor, они действительно существуют))
avatar
Replikant_mih, Ура! Кажись, у меня есть своя секта)) Точнее была, т.к. со стримами покончено)
avatar
SenSoR, Везёт тебе! Тоже бы хотел, быть может и у меня когда-нибудь будет. Пометил себе, что стримы в этом помогают.
avatar
home30, Да. Крутились)
avatar
В реале то как? Прибыль есть?
avatar
SECRET, спасибо, что заглянул — ответ был уже) smart-lab.ru/blog/414410.php#comment7492359
avatar
SECRET,  аву когда поменяешь?) убери этого лузера)
avatar
Николай, Вы написали, что будете рады любому фидбеку, так что не обессудьте, приведу копипасту из книги весьма известного автора, имя которого легко нагуглить по выводам:

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

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

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

avatar

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

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

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

avatar
Maxim Sheyko, я почти во всем согласен с Вашим постом. Но давайте поставлю такой вопрос, существует ли такой минимальный набор параметров (степеней свободы параметров) при котором оптимизация еще работает. 
В конце концов, определение рабочего диапазона  параметра в известном смысле не сильно отличается от определения его оптимума. 
Кроме того, у нас есть параметры непрерывные, а есть дискретные, например, признак свечи белая/черная бинарный. Перебор дискретного параметра в известном смысле имеет меньше пространство состояний и, следовательно, меньший риск переподгонки.
avatar
Как много есть на свете вещей, без которых я обхожусь в трейдинге. 
Будьте проще и к вам потянутся деньги!
avatar
7% prosadka za 2% v mesyac eto je bred
avatar
HunterSrike, Не вижу бреда). А если бы Николай озвучил не среднемесячную доходность, а средненедельную или среднедневную)), то кратность чисел была бы ещё больше)). Годовая доходность в разы превышает максимальный дродаун — это гуд.
avatar

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

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

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

 

avatar
Replikant_mih, да)) чтобы понять последнюю часть наверное лучше ознакомиться вот с этими постами smart-lab.ru/blog/180975.php и smart-lab.ru/blog/285828.php
avatar

теги блога Николай Флёров

....все тэги



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