Для начала загадка: предположим есть у вас 3 робота, с просадками 30%, 50% и 70%, ну естественно они прибыльные и profit factor что-то там порядка 1.7. При этом эти данные для полного рефинанса и на интервале в 2 года. И надо вам получить
а) максимальное использование средств портфеля
б) максимальное рефинансирование
в) суммарную просадку не более 13%
загадка в том, как это правильно сделать?
Я назвал это загадкой, а не вопросом, потому что я наконец-то понял как, спустя несколько лет. До этого я пытался выжать из роботов максимум, и использовал как мне казалось передовую технологию: отдавал роботам ~90% от доступного бюджета, таким образом чтобы роботы имели возможность выбирать весь бюджет (0.9 + 0.09 + 0.009 — типа того), с целью, естественно — максимального возможного разгона депозита. получалось кто первый встал, того и тапки. Для двух роботов всё просто, а когда их было штук 7, то уже были всякие сложности.
Иногда у меня неплохо получалось, в 2014м я довольно мощно разогнал робота со 184 тыс до 1300 тыс с января по сентябрь. Потом ещё немного заработал. А потом получаться уже перестало. И дальше я занимался решением разного рода «философских» проблем, типа почему на истории миллиарды, а в реале просадка, и почему роботы пилятся быстрее, чем зарабатывают.
В итоге только несколько дней назад меня наконец-то «озарило», какой-то нейрон наконец пробурил свой дендрит куда надо. Как обычно для «озарений», логика оказалась простейшая. Просто чтобы понять почему она такая и не иначе, понадобилось много времени.
В комментах попозже расскажу, какое же я придумал наконец решение этой проблемы. Заодно провалидирую, если вдруг ещё чего не учёл.
Первому роботу даем 5/30=16,7% от счета, второму 5/50=10% от счета, третьему 5/70=7,1% от счета.
Итого, грубо, 35%. На остальное покупаем облигации. При каждом новом максимуме счета восстанавливаем соотношение путем новой покупки облигаций.
Все более сложные методы требуют исследования совместного распределения эквити роботов.
откуда росли ноги — когда на счету стало больше одного робота, естественно надо было как-то делить бюджет. поровну казалось глупо, т.к. все роботы не всегда в позициях, часть бюджета пропадала.
весь бюджет хотелось использовать естественно для быстрого разгона депозита.
вопросы просадки, да, изучались, но казалось что просадка в 30% — это мелочи, по сравнению с теми возможными профитами, которе будут у роботов.
но в реале просадки доходили до 70% (с восстановлением). и каждый раз возникала мысль — ну почему же мои роботы так сильно пилятся?
к тому же было совершенно непонятно, как правильно рефинансировать бюджеты, с учётом того что роботов несколько и просадки разные.
несколько вариантов пробовал наобум.
в итоге для начала посчитал сколько есть денег сейчас. какая максимальная просадка может быть на истории. и выделил каждому роботу фиксированное количество контрактов.
это было неплохо, но хотелось формулу. к тому же это решение не использовало рефинансирования, т.е. группа роботов получала просадку где-то в начале, затем зарабатывала, увеличивала бюджет сильно больше выделенного и без реинвестирования доходила до конца с полученной вначале просадкой. хорошо, но не автоматически.
ключевая точка была — когда я нашел ГЛАВНУЮ ошибку.
мне казалось, что если два робота просаживаются на 70% каждый, то дать каждому по 1/2 бюджета, значит уменьшить суммарную просадку напополам. я даже не проверял, казалось верным. но не тут-то было.
на самом деле если 1 робот просаживает полный бюджет на 70%
и второй робот просаживает полный бюджет на 70%, то вместе, просадив свои пол бюджета на 70% они просадят полный бюджет на теже 70%.
отсюда вывод сразу — что перехлёсты бюджета, когда одному роботы даётся более чем 1/N бюджета — не правильно! это повышает риск выше, чем его максимальная просадка, пропорционально разнице между его бюджетом и 1/N
ок, дальше проще. если максимум для одного робота это 1/N
то чтобы получить просадку в 13%, надо взять максимальную историческую в 70% и выдать роботу бюджет в
13/70, вуаля.
как рефинансировать? путём несложных вычислений получаем, что надо брать крышку для бюджета, т.е. максимальный исторический бюджет для группы роботов, он всегда известен в принципе и не падает при просадке. таким образом, при просадке мы и не увеличиваем и не уменьшаем бюджет. используем абсолютно одинаковый, как и до неё.
бюджет роботов повышается только на новых хаях группы.
итого бюджет робота должен быть
МИБ* МДП / (МИП * N)
где
— МИБ — максимальный бюджет на истории, считается для суммы роботов в динамике, просто некий X
— МДП — максимально допустимая просадка для общего бюджета
— МИП — максимальная историческая просадка для этого робота
— N — количество ваших роботов
из этого кстати есть интересные выводы:
если у вас 1 робот даёт просадку в 40% и ваша комфортная просадка в 20%, бюджет робота 1/2 = 50% депозита
если есть другой робот, менее успешный, с просадкой 50%
то его бюджет (одного) должен быть 2/5 = 40%
если запустить их вместе, на 90% депозита, они просадят баланс в худшем случае на 20 + 20 = 40%!
бюджеты когда они запущены вместе должен быть 25% + 20% = 45%, против 50% загрузки бюджета для одного робота.
глубоко я пока над этим не думал, но видимо в команду стоит брать робота с бОльшей просадкой, только если он даёт бОльший профит, иначе он зря лопает кусок бюджета.
зачем всё это надо? теперь, имея формулу, я могу добавлять и убавлять роботов в «коллектив» и видеть как они работают в толпе при полном рефинансировании _по_честному_, с любой начальной суммы бюджета и на любом куске истории.