Блог им. MrFly
Важно сравнить результаты на разных Тикерах и ТаймФреймах. Можно сначала провести оптимизацию без «реИнвеста», но все равно в дальнейшем придется оптимизировать и в тех мани-менеджмента, которые я собираюсь торговать, а возможностей в 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%)
Все отчеты генерируются автоматически самим оптимизатором.
Вот так он выглядит сейчас (для тех, кто читал предыдущие статьи).
Надеюсь Вам было интересно/ полезно.
+++ Спасибо за твой плюс или коммент, они важны для меня!+++
*Картинки из статьи можно смотреть тут
Как это всё живёт в реальных торгах?
Это если Вы конечно не RokyBeat, он наверное может 20% в месяц, насколько я помню с 400 тыс руб)
2. Ник на лчи.
3. Куда пропадал.
2. Я каждую эквити свожу к дневкам, как и портфели. В общем, похоже.
3. У меня оптимизация по году совершенно неустойчива. В общем, желательно оптимизировать по максимально доступному материалу. Например, есть 10 лет. Делаем 10 оптимизаций с выброшенным одним годом. Для каждой оптимизации этот год — аутофсемпл.
4. По какому критерию включать и отключать системы — трудный вопрос. Пока я не нашел ответа, стараюсь брать их так, чтобы вклад в риск (в рублях) был примерно одинаковый.
5. Можно монтекарлить. И это, реально, весьма быстро. Мне кажется, зря Вы с вэлсом связались, жутко тормозная вещь.
6. А можно попробовать жадный алгоритм кластеризации. Сночала строим несколько хороших пар(портфель из 2 эквити). Потом, перебором, по одиночным эквити, строим из них лучшие тройки. Выбрасываем совпавшие. Перебором строим четверки. На каждом этапе видим, что улучшается в портфелях.
PS также есть возможность оптимизация например от 10 лет до года шагом 1 год, только без моего участия и с отчетом) Либо форвард InSample 5-10лет OutOfSample 1 год, например
Как сделать так, чтобы WealthLab не стоил так дорого?
Эти наблюдения, которые согласуются с результатами похожих эмпирических тестов, предпринятых мною в прошлом, предполагают следующие ключевые выводы относительно оптимизации*:
1. От любой системы, повторяю, от любой системы с помощью оптимизации можно добиться того, чтобы она была очень прибыльной на исторических данных. Если вы когда-нибудь обнаружите систему, которая не может быть оптимизирована так, чтобы показывать относительно хорошую прибыль в прошлом, примите мои поздравления: вы только что открыли машину по производству денег (поступайте противоположно ее сигналам, если только транзакционные затраты не чрезмерны). Таким образом, приятно смотреть на удивительную результативность оптимизированной системы в прошлом, однако она имеет мало практической ценности.
2. Оптимизация будет всегда, повторяю, всегда преувеличивать потенциальную будущую результативность системы — обычно весьма сильно. Таким образом, результаты оптимизации никогда не должны, повторяю, никогда не должны использоваться для оценки достоинств системы.
3. Для многих, если не для большинства систем, оптимизация не будет улучшать будущую результативность или улучшит ее незначительно.
4. Если оптимизация и имеет какое-то значение, оно обычно состоит в определении широких границ диапазона, из которых следует выбирать значения наборов параметров для системы.
5. Тонкая подстройка оптимизации — это в лучшем случае потеря времени, а в худшем — самообман.
6. В свете всех предшествующих пунктов искушенные и сложные процедуры оптимизации — пустая трата времени. Наипростейшие оптимизационные процедуры будут предоставлять не меньшее количество значимой информации (предполагая, что, вообще, может быть извлечена некоторая значимая информация).
В итоге, в противоположность широко распространенным верованиям, существует некий резонный вопрос: приведет ли оптимизация к существенно лучшим результатам при длительном периоде торговли, чем случайным образом выбранный набор параметров? Чтобы не было никаких недоразумений, позвольте мне уточнить: это утверждение не призвано подразумевать, что у оптимизации вообще нет никакой ценности. Во-первых, как указано ранее, оптимизация может быть полезна при определении явно неподходящего диапазона параметров, который следует исключить при выборе значений параметра (например, N # 20 в нашем примере системы пробоя). Кроме этого, возможно, что для некоторых систем оптимизация может провести некоторые границы в выборе наборов параметров даже после исключения крайних неоптимальных диапазонов. Однако я подразумеваю, что степень улучшения, предлагаемая оптимизацией, намного меньше, чем обычно представляется, и что трейдеры, вероятно, сберегли бы кучу денег, доказывая в начале любое предположение, которое они делают по поводу оптимизации, а не принимая эти предположения слепо на веру.
Maxim Sheyko, прокомментирую)
Первые пункты действительно справедливы для некоторых подходов к процессу оптимизации — да, так оно и происходит. Но, оптимизация — это класс сущностей, не следует их под одну гребенку. Кения и США — обе страны, но какие разные)).
Я наоборот уверен, что многие оптимизацию недооценивают, в частности это проявляется в том, что используют какой-то совсем корявый подход, приводящий к подгонке и т.д. Вообще оптимизация безотносительно трейдинга — очень широкое и вполне себе позитивное понятие)), применительно к построению торговой стратегии я так же рассматриваю это понятие шире, чем обычно принято а алгоритмической торговле.
В конце концов, определение рабочего диапазона параметра в известном смысле не сильно отличается от определения его оптимума.
Кроме того, у нас есть параметры непрерывные, а есть дискретные, например, признак свечи белая/черная бинарный. Перебор дискретного параметра в известном смысле имеет меньше пространство состояний и, следовательно, меньший риск переподгонки.
Будьте проще и к вам потянутся деньги!
Отлично). Понравилась идея с цветовой температурой как 3-м измерением — не знаю почему я сам до этого не дошел, по-моему очень элегантное решение — получаем все плюсы наглядности 2-х измерений, при этом находясь в 3-х!
Всё-таки автоматизация процессов развязывает руки и даёт развернуться анализу, расширить горизонты, например, вот проверить движение зеленой области со временем.
В финальной части потерял нить немного (я), ну а так процесс построения системы соответствует в целом моему представлению о процессе.