Многие опытные и публичные трейдеры говорят, что управление капталом может погубить прибыльную стратегию. Некоторые даже говорят, что можно из плохой стратегии сделать хорошую с помощью мани-менеджмента.
Мое мнение — важно не бояться просадок, а реагировать на них.
И желательно реагировать по заранее намеченному плану, а не паникой, жадностью и другими прелестями человеческой психологии.
Почему нормальные люди не торгуют на все плечо?
Все просто — чем больше позиция на которую мы входим, тем больше возможный убыток, тем более, если у нас прибыльных сделок только 20-30% от общего числа сделок.
А если попадем в серию убыточных сделок, то счету не поздоровится.
Все слышали фразу типа «Давай прибыли течь, убытки уменьшай». Но мало кто задумывался, что это универсальной правило, применимое не только к сделке, но и к управлению капиталом.
Некоторые считают, что именно наращивание позиции в звездные моменты стратегии и уменьшение позиций во время глубоких просадок — единственно правильное решение.
В качестве примера, трендовые стратегии в последний квартал 2012 года. Никто не кричал «Яхуу, беру на все..» наоборот, многие вообще переждали этот период.
После того, как мы провели оптимизацию, проверили стратегию на устойчивость, как могли — максимальная просадка по стратегии к примеру — 15%. Какую просадку мы можем ожидать по счету? Правильно, ожидаемая просадка всегда должна составлять 100%. Это сделано таким образом, мы всегда должны подготовить план на случай экстренной ситуации.
Что может привести наш счет к такому плачевному состоянию? Ответ, затянувшаяся череда убыточных сделок, ну и конечно — большое плечо.
Пример, описанный во всех книгах наглядно показывает: заработав 25% к капиталу и проиграв 20%, мы оказываемся даже в минусе, за счет комиссии, проскальзывания, оплаты PlazaII, инфраструктуры, нашего вложенного времени, которое могли бы потратить на другие цели. Объяснение этому процессу довольно простое — процент прибыльной и убыточной сделки рассчитывается по разному значению капитала на счете. (После прибыльной сделки капитал увеличился, а значит и возрос риск).
И чем больше плечо, тем убыток от ошибки пересчета больше.
Как же быть?
Товарищ Райан Джонс говорит, что все уже сделал за нас и написал про это книгу, содержащую «волшебную» формулу с использованием которой мы можем одновременно работать и с плечом и не боятся длинной череды убыточных сделок.
Ознакомимся с ней подробнее:
Мани-менеджмент Мистера Джонса называется Фиксированно-Пропорциональный метод. В системе мани-менеджментов он занимает следующую позицию:
Фиксированно-Фракционный метод его не устроил по причине того, что, как он пишет «этот метод требует неравномерных доходов при различном числе контрактов». Если проще, то Ф-Ф метод требует с 10000 доход 10000 с одного контракта для перехода с одного уровня на другой, затем ту же сумму, но уже с 2-х контрактов, то есть по 5000 с контракта и так далее. В связи с этим, чтобы начать торговать более-менее крупной суммой уходит довольное большое количество времени, хотя в это время мы как раз могли хорошо заработать, ну или потерять.
Суть Фиксированно-пропорционального метода:
Данные уровни — это точки перехода от одного количества контрактов к другому в большую или меньшую сторону. Увеличение и уменьшение количества контрактов зависит от того, упал наш капитал или вырос и насколько он вырос. Как правило, непосредственно от последней сделки. Если мы получили прибыль, количество контрактов увеличивается, если получили убыток — уменьшается.
Вот, наглядный пример, как такие уровни можно было бы рассчитать:
Delta — представлена в виде % от капитала, но по сути — его можно рассчитать по-разному, главное, чтобы число это было неизменным.
10000 — начальный капитал
Проблемы написания такого мани-менеджмента в Wealth-lab:
Дело в том, что желательно мани-менеджмент в Wealth-lab прописывать в виде такого элемента, как PosSezer — это специальный компонент с помощью которого можно применить мани-менеджмент любой сложности к стратегии. В связи с этим я столкнулся с несколькими проблемами:
— я не умел еще писать PosSizer
— использование готовых PosSizer- это черный ящик, если досконально не разбирать их код
— их нет в StockSharp, а значить тестирование с использованием PosSizer может отличаться от подобного мани-менеджмента, написанного на S#, для реальной торговли.
Поэтому я приступил к написанию универсального метода.
Дальше больше:
В Wealth-lab размер позиции определяется, уже после того, как стратегия просчитала все позиции в режиме Raw Profit Mode:
То есть не в реальном времени, а накладывая мани-менеджмент, комиссии и статистические данные, уже на готовые сделки. Мне же было нужно размер позиции менять в зависимости от изменений самой эквити. Решением стало создать свою собственную эквити, рассчитывая ее из эквити по каждой сделке.
И в заключении:
Wealth написан на C#, значит мы можем в работе своей использовать всю мощь этого языка, но даже опытные разработчики могут задаться вопросом работает ли он например с System.Linq. Я бы не задавался бы этим вопросом, если бы мне не пришлось с ним столкнуться. Зная точно, что Linq должен работать в Wealth, я не мог понять почему все-таки у меня получается ошибка.
А вот и решение:
Далее идем по этому вот пути:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
Находим там System.Core:
В StockSharp препятствий для написания выявлено не было, реализовалось изящно:
*Для Wealth-lab код практически идентичен. Коду быть.
Самое время сравнить результаты:
А теперь посмотрим динамику контрактов, которыми торговали стратегии:
А также, сравнение по периодам:
Динамика изменения числа торгуемых контрактов:
Сравнение по периодам:
Динамика изменения числа торгуемых контрактов:
А также, сравнение по периодам:
В наше распоряжение мы получаем довольно гибкий инструмент, который еще нужно уметь правильно настроить.
Во-первых контракты могут наращиваться не по 1-му, а скажем по 2 или 3. Также, мы можем решить для себя с какого контракта мы больше не будем снижать их число, по умолчанию — это 1.
И в третьих, можно регулировать начальный торговый объем, то есть начнем с такого объема, который будет уменьшаться прямо с первой сделки. Например, начнем с 10 контрактов и если сразу попадем в неблагоприятный период, стратегия защищая капитал, спустит вас до 1-го контракта.
Использовать его можно по-разному. Из графиков видно, что данный подход скорее помогает защитить нам капитал, чем увеличить доходность. Я думаю, он будет интересен при торговле портфелем инструментов. В тот момент, когда какая-нибудь из стратегий начинает сливать, она сбрасывает капитал, давай другой стратегии, которая сейчас в тренде, подхватить свободный капитал и использовать его по назначению. То есть, происходит естественное перераспределение капитала, по результат работы стратегий.
В результате своего исследования, лично я уяснил то, что может мани-менеджмент и может погубить прибыльную стратегию, но из убыточной стратегии прибыльную не может сделать даже самый хитрособранный мани-менеджмет.
Статистики, я мог бы еще много показать, но лучше выложу код.)
Стратегии использовались те же, что и в
статье про портфели стратегий, они заходят в позицию лимитками, также учтены комиссии(для фьючерса на индекс ртс) и проскальзывание.
Код:
DonchianWLD
Ударный деньWLD
ParabolicWLD
Money-m_S#
Спасибо за внимание!
Пишите стратегии, пользуйтесь Wealth-lab, Stocksharp, получайте прибыль и узнавайте много всего нового!
Подробнее о StockSharp на
http://stocksharp.com/
Бесплатные вебинары по
Wealth-lab тут:
Ставьте плюсики и пишете!
Накрутка детектед?
Мне не плюсов жалко, а своего времени. Смотрю — запись с плюсами. Захожу — там дацзыбао для посвященных. Пытаюсь врубиться — сходу не получается. Вот я и хотел бы задать плюсовавшим пару уточняющих в ухо по теме публикации :)
По твоему адресу один лишь человек возник с предметным интересом, посмотрим — каким бурным будет обсуждение здесь :)
Найти его проще, когда он присутствует на нескольких площадках. Тем более, что его статья как раз таки относится к нашему софту (S#). Так где же она еще должна быть?
-По логике Райана Джонса — мани-менеджментом считается, только то, что мы делаем с нашим капиталом. Использование фильтров, индикаторов и другие хитрости для уменьшение количества контрактов, по его мнению — это часть торговой системы, или риск-менеджмента, а не мани-менеджмент.Поэтому они не рассматривались.
-100% от капитала — это при условии, что мы торгуем без плеча.То есть торгуем полную стоимость контракта, но полученную прибыль, реинвестируем.
Николай Флёров ну, собственно, на этом диалог непосредственно по теме сворачиваем? :))
Конкретно по твоему ответу:
1. «Все правильно делает Николай»
Я не утверждал, что Николай делает что-то неправильно. Ты меньше на мои смайлы обращай внимания, а больше — на суть вопроса :)
2. «var заставляет задавать читаемые и понятные имена»
Намочи тряпку и сотри, пока никто не видел. Садись, два.
3. «работать в финансах лучше с decimal»
А — Почему? (послеследующий ответ не принят — см. ниже) Причем тут вообще — финансы, не финансы?.. Есть математика-арифметика, есть программирование, постановка задачи есть, в конце концов. Что за всеобъемлющие сентенции?
В — Работать лучше с тем типом данных, который соответствует задаче
4. «Иначе будет головняк, почему цена оказалась на одну миллионную не кратна шагу.»
С чего бы так? Пример приведи пожалуйста. Как это вообще может быть?
Придется за тебя отвечать :(
2. var — это тип данных перемнной. К ее именованию если как-то и относится, то совершенно опосредованно.
3. Тип данных выбирается в контексте задачи, а не ее принадлежности «финансам» иди еще какой хоени. Использование double должно быть мотивировано, но не той чушью, что ты написал выше.
4. Мне за тебя еще и примеры приводить к твоим нелепым утверждениям?
с какой суммы торговля, с 1 000 000?? если да то имея просадки в 3 000 000 откуда находится капитал для продолжения торговли?
Используется ли плечо или нет?
Как выглядит график эквити?
Насколько алгоритм оптимизирован?
И манимененджмент на пустой стратегии не верно делать…
Да сам метод интересен и ценность в статье есть и прочее, но…
В целом, отдуши спасибо!)
Метод Р.Джонса действительно показывает великолепные результаты… но при условии что система прибыльна долгосрочно, и чем больше сделок — тем лучше.
Занимался этим лет пять назад, и помню такую статистику: торговать надо начинать хотя бы 10-ю контрактами(лотами) и со временем (когда наращиваешь их колличество) риски падают, а прибыльность стремительно растёт (где-то после 50-80 сделок). Но — система в любом случае должна иметь положительное матожидание…
1. Определить с какого количества контрактов лучше начать, это делается в строке 151 " Dictionary<double, int> levels = LevelMM(startEquity, «сюда количество контрактов», Delta, GetVolume);".
2. После этого нужно откалибровать уровень, потому что посте того, как вы задали число контрактов, начальный уровень не должен быть сильно ниже числа контрактов, иначе будет резкий скачок в первые несколько сделок, его можно задать в сточке 76 «for (int i = 2; i < 500; i++)» также стоит увеличить максимальное количество уровней, если тестируете длительный период.
3. Ваш капитал должен соответствовать капиталу, прописанному в коде, его задать можно в строчке 140 «double startEquity = 1000000; // Первоначальная сумма на счете»
4.Simbol Info Manager должен быть настроен
5.Также следует все же оптимизировать Delta, под каждый конкретный случай
6. Все же стоит поставить более проработанные стратегии, а не те шаблоны, представленные мной, так как желательно большее количество положительных сделок, а не 10 положительных сделок по 10%, разбросанных во времени среди множества мелких убыточных, что приводит к большим просадкам.