Методология расчёта

Принцип сервиса — никакой «магии»: каждая цифра на дашборде и публичном профиле имеет открытую формулу, явный маркер качества данных и автоматическую проверку на эталонных счетах. Метки MT4/MT5 и Exante ниже отмечают правила, специфичные для платформы; всё остальное общее.

Две модели: торговый счёт и инвест-счёт

Платформы устроены по-разному, поэтому и кривая капитала строится по-разному — но доходность, просадка и рейтинг считаются по единым принципам.

Источники данных и маркировка

Данные читаются напрямую с сервера брокера в режиме только на чтение — владелец счёта не может их отредактировать. MT4/MT5 — инвесторский (read-only) пароль; Exante — API-ключи к data-эндпоинтам (basic-доступ к рыночным данным; торговать или выводить средства через них нельзя). Каждая точка кривой капитала несёт маркер:

Баланс и инвариант точности

MT4/MT5. Balance(t) — кумулятивная сумма всех депозитов/выводов/кредитов и net-результатов закрытых сделок (profit + commission + swap). После каждой синхронизации реконструированный баланс сверяется с балансом сервера брокера — расхождение даже на цент считается ошибкой данных.

Exante. Балансовая линия — это «MT4-баланс инвест-счёта»: cash плюс стоимость входа открытых позиций (покупка актива баланс не меняет — деньги превращаются в позицию). Она восстанавливается из транзакций по валютам и сводится в валюту счёта по курсам дня. Инвариант сходимости: BalanceCurve(сегодня) ≈ NAV − плавающий PnL открытых позиций (допуск 3%; на реальном счёте — 1.6%, остаток объясняется опционными экспирациями, см. «Ограничения»).

NAV и кривая капитала Exante

Для инвест-счёта главная мера капитала — NAV mark-to-market: измеренная сервером стоимость всего портфеля (cash + позиции по текущей цене) в валюте счёта. История NAV копится с момента подключения и честно показывается с этой даты; до неё — реконструированная балансовая линия из транзакций. На графике это серая балансовая линия на всю историю плюс синяя NAV-линия с первой измеренной точки и пунктирный маркер «NAV с {даты}».

Доходность (TWR / VAMI)

Депозит — не прибыль, вывод — не убыток. Поэтому доходность считается time-weighted: период разбивается моментами денежных потоков, рост в каждом под-периоде rk = Ek / (Ek-1 + Dk) перемножается: TWR = Π rk − 1. Кредиты/бонусы брокеров, переводы между субсчетами и занос/вывод бумаг (SECURITY TRANSFER) — это движение капитала, а не доходность: они входят в потоки Dk и не маскируют результат. VAMI («рост $1 000») — та же цепочка доходностей как индекс: VAMI(t) = 1000 · Π(1 + rk).

Единый базис для инвест-счёта. Exante Доходность и просадка считаются на одной склеенной кривой: до t0 (первая измеренная NAV-точка) — реализованный баланс (booked-базис, без нереализованного PnL), с t0 — измеренный NAV. Накопленная до начала измерения нереализованная переоценка rev = NAV(t0) − Баланс(день до t0) − потоки дня t0 исключается из доходности синтетическим потоком в t0 — мы не знаем, в каком месяце она возникла, поэтому не записываем её в доход. Величина rev раскрывается числом в футере честности профиля. В результате на инвест-счёте одна %-таблица месячных доходностей на всю историю, VAMI и годовой прогноз — из полной истории.

На счетах, переживших глубокие просадки с последующими пополнениями, total-TWR может достигать экстремальных значений — это математически корректно: стратегия восстанавливалась с очень низкой базы. Рядом всегда показаны месячные доходности и VAMI-кривая, дающие адекватную картину.

Валюта счёта Exante

Выбранная при подключении валюта счёта — это базовая отчётная валюта. Брокер отдаёт NAV, cash и позиции уже в ней; сделки, потоки, балансовая кривая и все суммы на дашборде (дивиденды, налоги, сборы, календарь, CSV) сводятся в неё по дневным кросс-курсам (close дневной свечи; неизвестный курс → 1:1 с честным предупреждением в логе). Следствия:

Просадки

Max Drawdown = максимум (peak − value)/peak по серии. Считается по equity (MT) и по NAV (Exante), а не по балансу: balance-кривая не видит плавающих убытков открытых позиций, поэтому equity/NAV-просадка почти всегда глубже и именно она показывается как главная мера риска. Просадка инвест-счёта считается на flow-нейтрализованном индексе — выводы, переводы и переоценка стыка t0 просадкой не считаются. Если в окне просадки есть reconstructed-точки, оно помечается бейджем «reconstructed».

«Сделки» инвест-счёта (FIFO) Exante

У брокера нет понятия «сделка» — есть исполнения (fills). Для журнала мы собираем закрытые позиции методом FIFO: открывающие лоты съедаются закрывающими, цена входа — средневзвешенная. P&L берётся из денежных ног леджера (точен по определению), комиссия учитывается с обеих сторон. Поддержаны шорты, перевороты и сплиты (пары STOCK SPLIT корректируют открытые лоты). P&L каждой сделки конвертируется в валюту счёта по курсу дня закрытия. Журнальный слой (плейбуки, заметки, календарь) работает с такими сделками как с обычными.

Доходы и издержки Exante

Неторговые операции леджера разделены и сведены в валюту счёта: доходы — дивиденды, купоны (по облигациям), проценты; издержки — налоги, комиссии, ролловеры, сборы (включая депозитарные). Налоги показываются нетто: возврат ранее удержанного налога (recalculation) гасит удержание. Налоги — это фактические удержания брокера, а не налоговый расчёт. Так видно, сколько портфель приносит пассивно и сколько съедают издержки, отдельно от торгового результата.

Календарь

Дневной, недельный и месячный итог = торговый P&L плюс неторговые движения (дивиденды, проценты, налоги, ролловеры, сборы; комиссии не дублируются — они уже внутри сделок). Пополнения и снятия показаны отдельно от результата — капитал не путается с доходностью. Клик по дню раскрывает кривую дня, сделки, движения средств и заметку.

Trading Health Score

Композит 0–100 из трёх компонент:

Итог = 0.4·Risk + 0.3·Consistency + 0.3·Discipline. Веса будут калиброваться по мере накопления замониторенных счетов.

TJ Rating (публичный рейтинг)

Рейтинг — opt-in и risk-adjusted; деньги в нём не показываются никогда, только проценты и относительные метрики. Допуск (иначе счёт не ранжируется и виден «вне рейтинга» только владельцу):

TJ Rating = 0.35·ReturnQuality + 0.30·Risk + 0.20·Consistency + 0.15·Discipline. ReturnQuality — годовая TWR-доходность по лог-шкале с убывающей отдачей: clamp(100·ln(1 + max(ann, 0)) / ln 4, 0, 100), то есть 100%/год → 50 очков, 300%+/год → 100. Сверхдоходность не даёт сверхочков. Risk / Consistency / Discipline — компоненты Health Score. Анти-разгонный механизм (применяется после композита): max equity/NAV-просадка ≥ 50% ограничивает итог 49 очками, ≥ 80% — 29 очками. Глубокую историческую просадку нельзя «отмыть» доходностью — её видно в ранге всегда.

Ограничения

PnL Plus · вопросы по методологии: support@pnl.plus

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.