Новый алгоритм симуляции на основе исторических данных и новая гибкая стратегия изъятий в финансовом плане, данные рублевого денежного рынка в бэктестере (с 1996 года) и обновление в инструменте для анализа фондов.
Добавлен новый алгоритм симуляции на основе исторических данных с приращением их количества методом block bootstrap. О самом методе я писал подробнее здесь — эти наработки выросли из Jupyter-ноутбука в нормальный код. Вкратце, случайная выборка блоков исторических данных позволяет сохранить реальную корреляцию между активами в портфеле и инфляцией, а также автокорреляцию в рядах данных отдельных активов и инфляции, чем выгодно отличается от полностью случайного метода Монте-Карло. Недостаток: у нее «меньше фантазии», ведь одинаковые 10-летние блоки прошлых данных просто повторяются, хоть и в случайном порядке. Для целей этого инструмента я выбрал размер блока данных 10 лет, чтобы более-менее захватывать полные экономические циклы.

Чтобы воспользоваться новым методом генерации доходностей, надо выбрать его в выпадушке в параметрах плана и ниже задать портфель (распределение активов), похожий на тот, что вы планируете иметь в определенные годы. Его рублевые доходности и инфляция будут использоваться для случайной выборки блоков. Из активов доступны зарубежные и российские акции, ОФЗ и корп. облигации, денежный рынок и золото. Нельзя сказать, что это покрывает все возможные портфели, но для практически полезной симуляции вполне достаточно.

Добавлена новая гибкая стратегия изъятий Amortization based withdrawal (ABW) с дополнительной возможностью задать максимальный и минимальный лимиты на рост или снижение суммы изъятий (с учетом инфляции). Чтобы её настроить, в разделе параметров «Денежные потоки» надо выбрать тип операции «Вывод» и далее нажать на кнопку настроек, в которой доступен выбор гибких стратегий — Гайтон/Клингер (был добавлен ранее) или «Амортизация (ABW)».

Подробное описание и примеры в Excel можно найти в Bogleheads Wiki по ссылке выше, а в модальном окне самого инструмента есть формула PMT с используемыми параметрами и довольно подробное описание переменной темпа роста изъятий g, которую вы скорее всего захотите настроить.
Расчет суммы изъятия в каждом году производится аналогично функции PMT из Excel:
PMT(реальная доходность / (1 + g), Nper, -PV, FV, 1)
, где g — темп роста изъятий, Nper — количество лет до конца плана, PV — капитал в текущем году (present value), FV — минимальный порог капитала из настроек плана, увеличенный на инфляцию к текущему году и уменьшенный на (1 + g)Nper (future value), 1 — означает платеж в начале года.По-умолчанию g = 0, что соответствует нейтральной траектории изъятий, зависящей только от ставки доходности, числа оставшихся периодов и значений капитала. Положительное значение g делает стратегию более консервативной: изъятия начинаются с меньшей суммы и в течение всего периода растут с указанным темпом, что создает положительный наклон кривой изъятий относительно нейтральной траектории. Отрицательное значение g делает стратегию более агрессивной и позволяет выводить больше денег из портфеля в начале периода, постепенно уменьшая сумму изъятий (отрицательный наклон).
Получившиеся суммы изъятий можно будет увидеть только после расчета плана во вкладке «Визуализация». Если g = 0, суммы обычно получаются более высокими, чем при ставке изъятий ≤ 4%, потому что эта стратегия стремится использовать весь капитал до указанного минимального порога. Вы можете подобрать такое значение g, при котором начальная сумма вывода будет равна сумме при желаемой ставке SWR (safe withdrawal rate), получив таким образом гибкую стратегию на основе фиксированной SWR с большей вероятностью успеха.
Не могу сказать, что все эти концепции очень простые — это уже территория, где не помешают некоторые знания из области анализа данных, базовых финансов и гибких стратегий вывода денег из инвест. портфелей. Если всё это кажется непонятным, рекомендую сходить по ссылкам и ознакомиться с теорией, а уже затем использовать.
Добавлена возможность посмотреть графики капитала и сумм вывода в сегодняшних деньгах, когда в параметрах плана указана инфляция (в случае Монте-Карло симуляции) или используется историческая инфляция (когда выбран новый тип генерации — бутстрап прошлых данных).
Ребалансировка портфеля: в очередной раз улучшен алгоритм ребалансировки и, кажется, теперь я им доволен.
Бэктестер (анализ портфелей): добавлены данные рублевого денежного рынка по годовым ставкам однодневных кредитов с 1996 года (по данным RUSFARIND — МосБиржа, RUONIA и MIACR — ЦБ). Однодневное РЕПО используют фонды денежного рынка.
«Сравнение фондов» и «Сводка по комиссиям» были удалены. Мне надоело их постоянно обновлять, это время можно потратить на что-нибудь более полезное. К тому же я заметил, что сам ими не пользуюсь, а это один из главных критериев, по которым я определяю, стоит ли тратить время на разработку. В итоге решил, что смысла поддерживать их дальше нет. Для поиска и просмотра информации о фондах есть rusetfs.com и investfunds.ru, которые занимаются сбором информации активнее и глубже. Да, у меня были некоторые уникальные фишки, связанные, например, с метриками отслеживания индекса, но для детального анализа фондов лучше использовать другой инструмент, который тоже получил обновление…
Анализ фондов: добавлена возможность загрузить данные по расчетным или биржевым ценам для БПИФ прямо в UI. Достаточно указать тикер фонда на МосБирже, тип цен, выбрать торговую сессию и нажать кнопочку загрузки. Также теперь можно отфильтровать полученные любым из способов данные по датам начала и конца периода.

Напомню, что инструмент поддерживает анализ и сравнение до 5 фондов с 5 индексами и между собой одновременно, что позволяет на одном экране детально проанализировать качество работы и сравнить фонды из любой узкой ниши (на одинаковые или похожие активы).
P. S. Если какие-то новые функции не отображаются, обновите страницу.