29 Сентября 2026 · исследование

Ваш бэктест потратил одни и те же деньги дважды: руководство по учёту портфеля

Ваш бэктест потратил одни и те же деньги дважды: руководство по учёту портфеля

Бэктест портфеля может показывать плавный рост капитала, тратя одни и те же деньги дважды. Так происходит, когда симулятор считает капитал, денежные средства, обеспечение и покупательную способность взаимозаменяемыми величинами. Они связаны, но отвечают на разные вопросы: чем владеет счёт, что он должен и сколько средств сейчас может направить на новый ордер.

Допустим, стратегия начинает с $10,000 и покупает актив на $6,000. У неё остаётся $4,000 свободных средств. Если затем бэктест рассчитывает размер второй позиции как 100% капитала в $10,000, стратегия принимает на себя риск по позициям на $16,000, учитывая капитал лишь в $10,000. При некоторых правилах счёта такое кредитное плечо допустимо. Но оно не становится допустимым только потому, что в коде для расчёта размера использовался «капитал».

Ошибка №1: считать капитал денежными средствами

Такое упрощение встречается в мультиактивных стратегиях. Каждый сигнал рассчитывает ордер как долю текущей стоимости портфеля, причём для каждого ордера доступна вся стоимость. Цикл портфеля рассчитывает ордера независимо друг от друга, а затем суммирует их, не резервируя капитал.

В бэктесте с ликвидными инструментами и без маржин-коллов последствия легко не заметить. Доходность выглядит правдоподобно, но суммарный вес позиций, рассчитанный постфактум, иногда достигает 140% или 180%. Реальный счёт может отклонить последующие ордера или получить плечо, которого стратегия не планировала.

Резервируйте средства при формировании ордеров. На денежном счёте покупка на $2,000 расходует $2,000 плюс комиссии. На маржинальном счёте рассчитайте требуемую маржу по правилам площадки, а затем уменьшите доступную покупательную способность на эту сумму. Если несколько ордеров поступают одновременно, задайте их приоритет. Иначе результат может зависеть от того, какой цикл случайно выполнился первым.

Ошибка №2: считать заблокированное обеспечение свободной покупательной способностью

На деривативной площадке внесение $1,000 в качестве обеспечения не обязательно уменьшает капитал счёта на $1,000. Но это обеспечение уже занято открытой позицией. При распространённом упрощении его вычитают из денежных средств, а затем из покупательной способности вычитают ещё и полный номинал позиции. В другом варианте поступают наоборот и считают обеспечение одновременно свободными средствами и маржой.

Обе ошибки искажают оценку того, что можно сделать следующим ордером. Первая может создать впечатление, что стратегия ограничена сильнее, чем нужно; вторая — разрешить ордера, которые счёт не сможет обеспечить. При плече 5× позиция на $5,000 может требовать примерно $1,000 начальной маржи, но на доступную сумму влияют поддерживающая маржа, комиссии, нереализованные убытки и уровни маржи, установленные площадкой. Номинал — не то же самое, что обеспечение.

Показатель счётаЧто означаетМожно использовать для нового ордера?
КапиталСтоимость счёта за вычетом обязательств с учётом переоценённых позицийТолько с учётом правил маржи и покупательной способности
Свободные средстваДеньги, которые ещё не потрачены, не зарезервированы и не заложеныДа, в рамках правил для инструмента
Заблокированное обеспечениеСредства, обеспечивающие открытую позицию или ордерОбычно недоступно, пока его не освободят
Покупательная способностьРассчитанная площадкой возможность размещать дополнительные ордераДа, в пределах текущего лимита

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

Ошибка №3: высвобождать средства при сигнале на выход

Бэктест часто освобождает капитал сразу после появления сигнала на выход. Но сигнал на выход — это ещё не исполнение. Ордер может оставаться активным, исполниться частично или быть отменён; пока позиция фактически не закрыта, её маржа и риск сохраняются. Даже после исполнения комиссии и реализованный P&L влияют на сумму доступных средств.

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

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

Ведите явный учёт средств

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

Полезный инвариант: в момент отправки каждый принятый ордер должен быть обеспечен средствами согласно модели счёта. Если симулятор не может объяснить, какие денежные средства или маржа его обеспечивают, бэктест не доказал, что портфель мог удерживать такую позицию.

Проводите небольшой аудит параллельно с расчётом доходности. Отчитывайтесь о максимальном валовом риске по позициям, минимуме свободных средств, минимальном запасе до маржинального ограничения и количестве ордеров, превысивших бы покупательную способность. Если стратегия показывает хорошие результаты только потому, что капитал незаметно используется повторно, это результат расчёта размера позиций, а не бэктест, подтверждающий готовность к реальной торговле.

учёт портфеляпокупательная способностьбэктестингмаржауправление денежными средствами
ПоделитьсяXLinkedInFacebookRedditHacker NewsWhatsAppTelegramEmail
← Все статьи