Особый мани-менеджмент, или фиксированно-пропорциональный метод


Особый мани-менеджмент, или фиксированно-пропорциональный метод
Atom
7/25/2013


Метод Райана Джонса

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

Почему нормальные люди не торгуют на все плечо?
Все просто - чем больше позиция на которую мы входим, тем больше возможный убыток, тем более, если у нас прибыльных сделок только 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:
Вырезка из Quick Ref

То есть не в реальном времени, а накладывая мани-менеджмент, комиссии и статистические данные, уже на готовые сделки. Мне же было нужно размер позиции менять в зависимости от изменений самой эквити. Решением стало создать свою собственную эквити , рассчитывая ее из эквити по каждой сделке.

И в заключении:
Wealth написан на C#, значит мы можем в работе своей использовать всю мощь этого языка, но даже опытные разработчики могут задаться вопросом работает ли он например с System.Linq. Я бы не задавался бы этим вопросом, если бы мне не пришлось с ним столкнуться. Зная точно, что Linq должен работать в Wealth, я не мог понять почему все-таки у меня получается ошибка.
А вот и решение:
Шаг № 1

Шаг № 2

Шаг № 3

Далее идем по этому вот пути:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319

Находим там System.Core:
Шаг № 4

В StockSharp препятствий для написания выявлено не было, реализовалось изящно:

Код метода
*Для Wealth-lab код практически идентичен. Коду быть.

Самое время сравнить результаты:
HotDayEnter

Расположение стратегий мани-менеджмента в следующем порядке
Performance, Ударный день, 2 мани-менеджмента

А теперь посмотрим динамику контрактов, которыми торговали стратегии:
Количество контрактов, которыми стратегии разрешено торговать

А также, сравнение по периодам:
Сравнение результатов в квартальном разрезе

Donchian chanel


Performance, канал Дончиана, 2 мани-менеджмента

Динамика изменения числа торгуемых контрактов:
Количество контрактов, которыми стратегии разрешено торговать

Сравнение по периодам:
Сравнение в квартальном разрезе

Parabolic SAR


Performance, parabolic, 2 мани-менеджмента

Динамика изменения числа торгуемых контрактов:
Количество контрактов, которыми стратегии разрешено торговать

А также, сравнение по периодам:
Сравнение в квартальном разрезе

В наше распоряжение мы получаем довольно гибкий инструмент, который еще нужно уметь правильно настроить.
Во-первых контракты могут наращиваться не по 1-му, а скажем по 2 или 3. Также, мы можем решить для себя с какого контракта мы больше не будем снижать их число, по умолчанию - это 1.
И в третьих, можно регулировать начальный торговый объем, то есть начнем с такого объема, который будет уменьшаться прямо с первой сделки. Например, начнем с 10 контрактов и если сразу попадем в неблагоприятный период, стратегия защищая капитал, спустит вас до 1-го контракта.

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

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

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

DonchianWLD
Ударный деньWLD
ParabolicWLD

Спасибо за внимание!


удален пользователем

Avatar
Date: 7/25/2013
Reply


После прочтения статьи не понял, о чем в ней хотелось рассказать. Если о S# - вполне. Если о ММ - одни вопросы.

Многие знают, что такое фильтр стратегии. Как правило, он применяется для отсекания неблагоприятных для ТС периодов. На самом деле любой ММ - это все тот же фильтр. Но только более гибкий. Если у фильтра ММ наипростейший: либо 1 (можно торговать), либо 0 (торговать нельзя). То у ММ продвинутей: от -1 до +1. Где число обозначает часть капиталла, разрешенная сейчас использоваться нашей ТС.

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

Почему из убыточной ТС через фильтр можно сделать прибыльную, а через более гибкий ММ нельзя - непонятно.

Заинтересовала эта схема:
Схемка

точнее, из каких соображений она составлялась.

На графиках так и не понял, что такое "100% от капиталла". Увидел, что отличие ММ-Джонса от классического (процент от капиталла) - фракционность (сегментированность). Кстати, удивляет, что очевидные вещи называют именами и даже книжки какие-то выпускают. Ведь подобный ММ самостоятельно приходит на начальном этапе развития чуть ли не каждому алготрейдеру, который хоть немного не ленился покрутить варианты ММ.

Приведенные конечные цифры из стейтов к чему? Если смотреть на ФВ (фактор восстановления = Profit / MaxDD), то у ММ в левом столбце ФВ много лучше, что есть гуд. Но как это может говорить о целесообразности такого ММ перед другими - непонятно.

Если сравнивать различные ММ-методы, то надо делать оптимизацию стратегию с каждым из ММ-методов и тогда уже сравнивать результаты.

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

Уже можно сказать, что есть цикл статей. Автор молодец, идейный. Мне это близко, спасибо.
Thanks:

Николай_Флёров

Avatar
Date: 7/25/2013
Reply


hrenfx Go to
После прочтения статьи не понял, о чем в ней хотелось рассказать. Если о S# - вполне. Если о ММ - одни вопросы.

Многие знают, что такое фильтр стратегии. Как правило, он применяется для отсекания неблагоприятных для ТС периодов. На самом деле любой ММ - это все тот же фильтр. Но только более гибкий. Если у фильтра ММ наипростейший: либо 1 (можно торговать), либо 0 (торговать нельзя). То у ММ продвинутей: от -1 до +1. Где число обозначает часть капитала, разрешенная сейчас использоваться нашей ТС.

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

Почему из убыточной ТС через фильтр можно сделать прибыльную, а через более гибкий ММ нельзя - непонятно.

Заинтересовала эта схема:
"Схема разновидностей мани-менеджмента"

точнее, из каких соображений она составлялась.

На графиках так и не понял, что такое "100% от капитала". Увидел, что отличие ММ-Джонса от классического (процент от капитала) - фракционность (сегментированность). Кстати, удивляет, что очевидные вещи называют именами и даже книжки какие-то выпускают. Ведь подобный ММ самостоятельно приходит на начальном этапе развития чуть ли не каждому алготрейдеру, который хоть немного не ленился покрутить варианты ММ.

Приведенные конечные цифры из стейтов к чему? Если смотреть на ФВ (фактор восстановления = Profit / MaxDD), то у ММ в левом столбце ФВ много лучше, что есть гуд. Но как это может говорить о целесообразности такого ММ перед другими - непонятно.

Если сравнивать различные ММ-методы, то надо делать оптимизацию стратегию с каждым из ММ-методов и тогда уже сравнивать результаты.

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

Уже можно сказать, что есть цикл статей. Автор молодец, идейный. Мне это близко, спасибо.


Спасибо за комментарий! Приятно было услышать ваше мнение.
По логике Райана Джонса - мани менеджментом считается, только то, что мы делаем с нашим капиталом. Использование фильтров для уменьшение количества контрактов - это уже фильтр(часть торговой системы, или риск-менеджмента), а не мани-менеджмент.
Схема оставлялась из этих соображений.
100% от капитала, это значит, торгуем на 100% от капитала, т.е. не на конкретную сумму, а всегда на 100%. =)

Многие опытные трейдеры работают с мани-менеджментов "% на сделку" , остальные на % от капитала, просто потому что это проще. В общем-то они не плохие и в некоторых случаях обгоняют и представленный мой вариант.И я не пропагандирую использование именно этого мани-менеджмента. А вот Коментарии послушать - интересно. =)
Thanks:

удален пользователем

Avatar
Date: 7/25/2013
Reply


Николай_Флёров Go to
По логике Райана Джонса - мани менеджментом считается, только то, что мы делаем с нашим капиталом. Использование фильтров для уменьшение количества контрактов - это уже фильтр(часть торговой системы, или риск-менеджмента), а не мани-менеджмент.

Это очень хорошо, что все недопонимание свелось к терминологии. У меня, действительно, пробелы с этим, т.к. самоучка.
Грубо ММ представлял себе так:
Quote:
X - временной ряд цен символа (Bid, Ask, Time).
F - функция баланса ТС, т.е. Balance = F(X).
G - функция ММ. Так вот идея лишь в том, что Balance = G(VirtualBalance), где VirtualBalance = F(X).
Это простейшая компизиция функций: Balance = G(F(X)). Т.е. прямая зависимость от рынка - X.


Николай_Флёров Go to
Многие опытные трейдеры работают с мани-менеджментов "% на сделку" , остальные на % от капитала, просто потому что это проще.

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

Приведенные вами тесты - это все же не закономерности, а простой исторический случай или грубо - "подгонка". При исследовании ММ, действительно найденной рыночной закономерности, чаще всего, действует это самое правило справедливости по отношению к сделкам. Но это вовсе, конечно, не значит, что нельзя выжимать из закономерности больше, благодаря ММ. Как раз можно и, пожалуй, даже нужно.

Делается это также просто, но несколько иначе. Дело в том, что Equity ТС, торгующей реальную рыночную закономерности в основном имеют один и тот же вид - прямая, вокруг который идут некоторые флуктуации. Иногда эта прямая несколько меняется свой угол, но в целом график выглядит так, как описал. Поэтому самый простой, что приходит в голову, ММ-метод - берутся две средние:
Quote:
Один из вариантов - две МАшки, наложенные на ряд изменения баланса: медленная (Slow) и быстрая (Fast). Например, с разными экспоненциальными коэффициентами.
Тогда ММ ~ (Fast - Slow).

Правда, это все может быть классно опять же в тестере, где исполнение практически идеальное по сравнению с реалом. Поэтому при написании боевого робота используют некоторые хитрости. Но это отдельная тема.
Thanks:

Николай_Флёров

Avatar
Date: 7/26/2013
Reply


hrenfx Go to


Делается это также просто, но несколько иначе. Дело в том, что Equity ТС, торгующей реальную рыночную закономерности в основном имеют один и тот же вид - прямая, вокруг который идут некоторые флуктуации. Иногда эта прямая несколько меняется свой угол, но в целом график выглядит так, как описал. Поэтому самый простой, что приходит в голову, ММ-метод - берутся две средние:
Quote:
Один из вариантов - две МАшки, наложенные на ряд изменения баланса: медленная (Slow) и быстрая (Fast). Например, с разными экспоненциальными коэффициентами.
Тогда ММ ~ (Fast - Slow).

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


Интересно было бы на это посмотреть!

И да, конечно же рассматривать мани-менеджмент без привязки к конкретной стратегии и инструмента - это не совсем, правильно. В первоначально версии статьи я ставил вопрос так, что и мартин не является абсолютным злом, если за весь исторический период у стратегии ни разу не было серии убыточных сделок. Что может и есть смысл такой стратегией диверсифицировать портфель.
Но затем решил облегчить статью. А получилось, что изменился контекст.))
Thanks:

удален пользователем

Avatar
Date: 7/26/2013
Reply


Николай_Флёров Go to
Интересно было бы на это посмотреть!


Если речь о реализации описанного ММ в тестере, то просто попробуйте. Там, действительно, все тривиально, когда разберетесь. Что же касается упомянутых хитростей, то у меня слишком плохая карма на такие дела (рассказы). К тому же по скудоумию своему обещал инвесторам/наблюдателям начать торговлю в августе, т.е. приоритеты по времени смотрят в обратную сторону общения.

Николай_Флёров Go to
В первоначально версии статьи я ставил вопрос так, что и мартин не является абсолютным злом, если за весь исторический период у стратегии ни разу не было серии убыточных сделок. Что может и есть смысл такой стратегией диверсифицировать портфель.

Захотели замахнутся на святую корову? Да вы лишь только за такие мысли будете преданы анафеме. Мартин - это религиозный Ад. А вы вздумали нести в мир агностические соображения, основанные на технарском умозаключении. Аккуратнее!

Если обобщать разговор о ММ, где мартин является лишь очень частным случаем. То основная проблема кроется не в ММ, а в нахождении реальной рыночной закономерности (ММ без нее бесполезен). Тут масса может быть способов. Это, пожалуй, главный дар для алготрейдера, абстрагироваться от всего, что знаешь, и каким-то чутьем нащупать то самое. Но есть и неплохие методики, когда из количества получается качество:
Quote:
Берется понравившийся кусок истории цВР. На нем выбираются понравившиеся интервалы, для которых суммарно будет проделываться нижеследующее. Например, берем крайний месяц, и рассматриваем далее только ночные интервалы.

Задача разложить данные по косточкам и написать ТС именно под этот кусок истории (точнее под выбранные интервалы в нем), чтобы на нем ТС показывала как можно больший профит.

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

Очевидно, что вычислить максимально-возможный профит на куске истории очень просто. Но надо создать такую ТС, у которой показатель Profit / Func(AmountIN) был бы максимален, где AmountIN - количество явных и неявных входных параметров ТС, а Func - некая функция (для простоты начала исследования - простейшая линейная: Func(X) = X).

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


Хоть и кратко, но приятно было пообщаться. Обстоятельства же требуют оставить это дело. Удачи!
Thanks:

pft_man

Avatar
Date: 7/26/2013
Reply


Николай, интересный пост! Насколько я понял, суть этого ММ в том, что с помощью системы уровней мы регулируем темпы роста количества контрактов в каждой сделке в зависимости от баланса нашего счёта.

В вашем примере с ростом счёта количество контрактов в каждой сделке также растёт, но с умешьшающимся темпом. Мы стартуем с 10,000 и до 15,000 торгуем одним контрактом (то есть грубо один контракт на 15,000), затем до 25,000 торгуем двумя контрактами (один контракт на 12,500), до 40,000 торгуем тремя контрактами (один контракт на 13,333), до 60,000 торгуем четырьмя (один на 15000), до 85,000 торгуем пятью (один на 17000) и т.д. Таким образом, при росте капитала мы снижаем риск. Мне это нравится. Грубо говоря, 100,000 мы подвергаем большему риску (и возможности выиграть больший процент со 100,000), а 1,000,000 мы уже подвергаем меньшему риску (и возможности выиграть меньший процент, но по абсолютной величине всё равно больше).

Но проблема выбора начальной точки всё-равно остаётся. С какой суммы мы начнём торговать одним контрактом на первом уровне? C 5,000, 10,000 или 20,000? И какой будет шаг для уровней?

Насколько я понял из кода в S#, вы начинали со 100,000 торговать одним контрактом и в качестве дельты взяли 1% (или 1,000), то есть первый уровень был 101,000 для двух контрактов, 103,000 для трёх, 106,000 для четырёх, 110,000 для пяти и т.д. Правильно? Тогда почему именно 100,000 для одного контракта, и почему именно 1% в качестве дельты? Что будет, если менять эти значения? Например, начать с одного контракта на 50,000 и дельту взять 10%?
Thanks:

pft_man

Avatar
Date: 7/26/2013
Reply


Николай_Флёров Go to

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


Звучит красиво, но к сожалению мы не знаем, какой будет следующая сделка. Допустим, мы получили убыток, по одной системе, и прибыль по другой, перераспределили капитал в пользу второй, а в следующей сделке вторая система показала убыток, а первая прибыль!

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

Большинство же систем имеют независимые прибыли и убытки и мы не можем утверждать, что если мы получили убыточную сделку, то следующая будет тоже убыточной.


Thanks:

ring10

Avatar
Date: 10/23/2013
Reply


сделал ссылку, однако 2 последние стратегии не запустились .... не содержит определение Last. Не удалось найти метод расширения Last...."
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy