PnL — одна из самых часто показываемых и одновременно неправильно понимаемых цифр в криптотрейдинге. Биржа может подсветить позицию зелёным, показать +120 USDT и +18%, а после закрытия в истории окажется +93 USDT. В другой ситуации открытая позиция выглядит убыточной, но итоговый результат за день остаётся положительным. Иногда пользователь видит сразу несколько значений: unrealized PnL, realized PnL, closed PnL, daily PnL, cumulative PnL, PnL%, ROI и изменение equity. Если воспринимать их как одно и то же, невозможно понять реальную экономику сделки.
Эта статья разбирает PnL как бухгалтерию торговой позиции, а не как декоративную цифру интерфейса. Мы последовательно отделим движение цены от комиссий и funding, разберём спот, линейные и инверсные фьючерсы, длинные и короткие позиции, усреднение входа, частичное закрытие, mark price, leverage и ликвидацию. Главный результат — способность взять историю ордеров и самостоятельно ответить на три вопроса: сколько позиция зарабатывает прямо сейчас, сколько уже зафиксировано и сколько денег фактически останется после закрытия.
Важно понимать границы любой универсальной формулы. Разные биржи могут по-разному называть поля, выбирать Last Price или Mark Price для отображения текущего результата, отдельно или вместе учитывать funding и торговые комиссии, а также по-разному показывать расчёт для USDT-, USDC- и inverse-контрактов. Поэтому название колонки нельзя читать в отрыве от правил конкретного инструмента. Но базовая логика остаётся общей: есть цена входа, текущая или выходная цена, количество актива, направление позиции и расходы, которые превращают «ценовой результат» в реальный финансовый результат.
Практический принцип: PnL нужно уметь восстановить без цветной цифры на экране. Если вы знаете среднюю цену входа, размер позиции, цену оценки или закрытия, комиссии и funding, вы должны приблизительно получить тот же итог, что и биржа. Если цифры расходятся, ищут конкретную переменную, а не предполагают, что площадка «неправильно считает».
Что такое PnL простыми словами
Расшифровка PnL: Profit and Loss
PnL — сокращение от Profit and Loss, то есть прибыль и убыток. В торговом интерфейсе этим обозначением обычно описывают финансовый результат позиции или набора позиций. Положительное значение означает прибыль относительно выбранной базы расчёта, отрицательное — убыток. Но само слово PnL ещё не говорит, зафиксирован ли этот результат, какие расходы в него включены и по какой цене он пересчитан.
Для позиции BTCUSDT можно увидеть +250 USDT unrealized PnL. Это означает, что при используемой биржей текущей цене оценка позиции лучше средней цены входа примерно на соответствующую величину. Но если позиция ещё открыта, эта сумма продолжает изменяться вместе с рынком. После фактического закрытия появится результат, который уже связан с реальными исполнениями, а не только с оценкой.
PnL — не баланс счёта
Баланс показывает активы или денежный остаток на аккаунте. PnL показывает изменение стоимости относительно торговой позиции или выбранного периода. Если на счёте 10 000 USDT и открытая позиция имеет +300 USDT unrealized PnL, это не означает, что в кошельке уже появилась отдельная доступная строка в 300 USDT, которую всегда можно вывести. В зависимости от продукта и режима маржи прибыль может увеличивать equity и доступное обеспечение, но до закрытия её статус отличается от свободного баланса.
Обратная ошибка — считать отрицательный unrealized PnL уже списанными деньгами. Экономически убыток реален в том смысле, что позиция стала хуже, но окончательная величина ещё может измениться. При этом на фьючерсах большой нереализованный убыток способен приблизить ликвидацию, поэтому фраза «это просто бумажный минус» опасна. Для риска открытой позиции unrealized PnL имеет прямое значение.
Почему PnL может быть несколько
Один интерфейс показывает результат конкретной позиции, другой — всех сделок за день, третий — совокупный итог аккаунта. Кроме того, позиционный PnL делится на нереализованный и реализованный. Поэтому две цифры с одинаковой подписью PnL могут отвечать на разные вопросы.
Перед расчётом подпишите контекст: что является объектом — ордер, позиция, торговая пара, стратегия или весь аккаунт; какой период — с момента входа, календарный день, неделя или всё время; какой статус — открытый или закрытый результат; какие расходы включены. Только после этого цифра становится интерпретируемой.
Unrealized PnL и Realized PnL: главное различие
Что такое нереализованный PnL
Unrealized PnL — текущая оценка прибыли или убытка открытой позиции. Если вы купили 1 ETH по 3 000 USDT и используемая для расчёта цена стала 3 100 USDT, ценовой нереализованный результат для 1 ETH составляет примерно +100 USDT. Пока позиция не закрыта, эта величина меняется вместе с ценой.
На деривативах биржа может использовать mark price, last traded price или другой предусмотренный правилами показатель. Поэтому два соседних экрана могут показывать немного разные значения. Например, график строится по последней сделке, а риск ликвидации считается по mark price. Если между ними есть разница, PnL по графику и PnL, связанный с маржинальным риском, могут не совпадать.
Что такое реализованный PnL
Realized PnL — результат, который уже возник из закрытой части позиции, расчётного события или другого действия, предусмотренного инструментом. Если половина позиции закрыта, прибыль по этой половине становится реализованной, а вторая половина продолжает создавать unrealized PnL.
На практике реализованный результат часто включает не только движение цены. Биржа может учитывать торговые комиссии, funding payments, комиссии частичного закрытия, ликвидационные расходы и другие денежные потоки. Именно поэтому значение после закрытия отличается от простой формулы «цена выхода минус цена входа».
Почему unrealized +100 не гарантирует closed +100
Предположим, позиция показывает +100 USDT. Пользователь нажимает Market Close. Пока ордер исполняется, цена может сдвинуться; закрытие происходит по нескольким уровням стакана; начисляется taker fee; перед этим позиция могла пройти funding settlement. В результате итоговый closed PnL, например, +87 USDT. Это не обязательно ошибка расчёта — это переход от оценки к фактическому исполнению.
Поэтому перед закрытием полезно разделять три величины: текущий ценовой результат, ожидаемая стоимость выхода и итог после расходов. Чем тоньше ликвидность и крупнее размер позиции, тем больше потенциальная разница.
Базовая формула PnL для спота
Покупка и последующая продажа
На споте простой результат покупки актива и последующей продажи можно представить так:
PnL = сумма продажи − стоимость покупки − комиссии и прочие расходы.
Если куплено 0,1 BTC по средней цене 70 000 USDT, стоимость позиции равна 7 000 USDT. Позже 0,1 BTC продано по средней цене 72 000 USDT — получено 7 200 USDT до комиссии. Валовая прибыль составляет 200 USDT. Если вход и выход вместе стоили 14 USDT комиссий, чистый торговый результат — около 186 USDT.
Для корректного расчёта нужна именно средняя фактическая цена исполнения. Рыночная заявка может заполниться несколькими сделками. Если часть объёма куплена по 69 980, часть по 70 010, а часть по 70 040, подставлять «70 000 с графика» неправильно.
Если актив покупался несколько раз
Когда позиция набрана несколькими покупками, возникает средняя себестоимость. Для однородного актива простая средневзвешенная цена считается как общая стоимость приобретения, делённая на общее количество монет, с отдельным учётом комиссий в зависимости от того, как они списывались.
Например, куплено 0,05 BTC по 68 000 и ещё 0,05 BTC по 72 000. Без комиссий средняя цена 0,1 BTC равна 70 000 USDT. Если потом продать весь объём по 71 000, валовый ценовой результат составит примерно +100 USDT. Но при частичных продажах бухгалтерская себестоимость может зависеть от выбранного метода учёта, если речь уже идёт не о позиции внутри биржи, а о налоговом или финансовом учёте портфеля.
Нереализованный спотовый результат — оценка, а не сделка
Если BTC куплен по 70 000 и сейчас на агрегаторе показывается 72 000, «бумажная» прибыль 2 000 на один BTC выглядит очевидно. Но продать весь объём именно по этой цене можно только при достаточной ликвидности. Для крупной позиции реальная средняя цена выхода может быть ниже из-за spread и slippage. Поэтому для крупных портфелей оценочный PnL по последней цене отличается от ликвидационной стоимости позиции.
PnL на фьючерсах: почему формула похожа, а риск другой
Линейный USDT-контракт
Для линейной длинной позиции базовый ценовой результат можно оценить формулой:
PnL long = (цена выхода или оценки − средняя цена входа) × количество базового актива.
Для short знак меняется:
PnL short = (средняя цена входа − цена выхода или оценки) × количество базового актива.
Если long 0,5 BTC открыт по 70 000, а текущая расчётная цена 71 000, нереализованный ценовой PnL примерно +500 USDT. Если short того же размера открыт по 70 000, а цена выросла до 71 000, результат примерно −500 USDT.
Плечо не умножает саму формулу движения цены
Одна из самых распространённых ошибок — дополнительно умножать PnL на leverage. Если позиция имеет номинал 35 000 USDT и соответствует 0,5 BTC, изменение цены на 1 000 USDT уже даёт около 500 USDT результата. Плечо определяет, сколько собственной маржи понадобилось для контроля этого номинала, а не требует повторно умножать ценовой PnL.
Из-за малого объёма маржи процентный ROI действительно может стать большим. Если для позиции использовано условно 3 500 USDT маржи, прибыль 500 USDT — значительная доля внесённого капитала. При 1x тот же номинал потребовал бы гораздо больше капитала. Именно поэтому leverage резко усиливает процентный результат и риск ликвидации, хотя формула изменения стоимости позиции остаётся привязана к её номиналу.
Почему фьючерсный PnL нельзя сравнивать только с вложенной маржой
Трейдер может сказать: «Я внёс 1 000 USDT и заработал 200, значит PnL 20%». Но если позиция имела номинал 10 000 USDT, ценовое движение могло быть всего около 2%. Это два разных взгляда: доходность на маржу и изменение стоимости контролируемой позиции. Они оба полезны, но отвечают на разные вопросы.
Для оценки стратегии важно знать оба числа. PnL в деньгах показывает вклад сделки в капитал, а PnL% или ROI на маржу показывает интенсивность использования капитала. Высокий процент при огромном leverage не означает более качественную торговлю — он может означать более тонкий запас до ликвидации.
Average Entry Price: почему средняя цена входа меняется
Добавление позиции пересчитывает базу
Если long открыт по 70 000, а затем добавлен такой же объём по 72 000, средняя цена входа приблизится к 71 000. PnL после усреднения уже нельзя считать только от первого входа. Биржа хранит агрегированную позицию и пересчитывает average entry price по правилам конкретного контракта.
Для линейного контракта при одинаковых объёмах арифметика интуитивна. Но если объёмы разные, средняя должна быть взвешена по количеству. Например, 0,2 BTC по 70 000 и 0,8 BTC по 72 000 дают среднюю около 71 600, а не 71 000.
Увеличение убыточной позиции не удаляет убыток
Когда трейдер добавляет к long после падения цены, средняя цена входа снижается. Интерфейс может показать, что до безубыточности теперь нужно меньшее восстановление. Но экономически предыдущий неблагоприятный ход никуда не исчез. Он просто распределён по большему размеру позиции и большему использованному капиталу.
Поэтому «усреднить, чтобы PnL стал красивее» — плохая цель. Добавление должно быть частью заранее определённого плана. Иначе человек увеличивает риск только ради изменения визуального процента на экране.
Частичное закрытие и оставшаяся позиция
При частичном закрытии часть PnL фиксируется, а оставшийся объём продолжает жить с новой или прежней расчётной базой в зависимости от механики биржи. Важно не пытаться восстановить итог одной формулой по последней средней цене, если было много добавлений и сокращений. Лучше выгрузить историю fills и разбить расчёт на этапы.
Профессиональный подход — сохранять последовательность: входы, изменение размера, частичные выходы, комиссии, funding. Тогда закрытый результат можно проверить независимо от того, как интерфейс агрегирует позицию.
Long и Short: как не перепутать знак PnL
Long зарабатывает на росте относительно входа
Для long более высокая цена относительно средней точки входа создаёт положительный ценовой PnL, более низкая — отрицательный. Это кажется очевидным, пока в расчёт не добавляются funding и комиссии. Позиция может быть выше входа, но итоговый realized PnL оказаться около нуля или отрицательным, если движение было маленьким, а издержки — большими.
Поэтому проверка long выполняется в два этапа: сначала ценовая разница, потом денежные расходы. Если цена выросла на 0,1%, а круговая торговая комиссия и spread вместе близки к этой величине, видимое движение не превращается в чистую прибыль.
Short зарабатывает на снижении цены
У short логика обратная: позиция продаётся по более высокой цене и экономически выкупается ниже. Если short 10 ETH открыт по 3 000 и закрыт по 2 900, валовый ценовой результат составляет примерно +1 000 USDT до расходов. Если цена вместо этого растёт до 3 100, short получает примерно −1 000 USDT.
Знак особенно легко перепутать, когда интерфейс показывает отрицательную величину funding или комиссии рядом с положительным PnL. Не объединяйте их мысленно до конца расчёта. Сначала восстановите price PnL, затем прибавьте или вычтите остальные cash flow.
Закрытие short — это покупка
Новичок иногда считает, что кнопка Buy всегда увеличивает long. В режиме позиций покупающий ордер может сокращать short. Поэтому журнал нужно читать не по названию кнопки, а по тому, как исполнение изменило размер позиции. Это особенно важно при hedge mode, где long и short по одному инструменту могут существовать отдельно.
Mark Price, Last Price и Index Price: почему PnL на экране отличается
Last Price — цена последней сделки
Last Price показывает последнюю исполненную сделку на конкретной площадке. Она может быстро двигаться, особенно на волатильном рынке. Если unrealized PnL интерфейса привязан к последней цене, цифра будет реагировать на каждый трейд.
Но последняя сделка подвержена локальным всплескам и не всегда удобна для риск-системы. Один небольшой ордер не должен автоматически ликвидировать множество позиций только потому, что кратковременно протолкнул цену.
Mark Price — расчётная цена для риска
Mark Price создаётся для более устойчивой оценки деривативов и обычно связан с индексом базового рынка и механизмом премии. Конкретная формула зависит от площадки. Часто именно mark price используется для расчёта риска ликвидации и может использоваться для unrealized PnL в отдельных представлениях.
Если на графике BTC последняя сделка 70 100, а mark price 70 060, PnL, рассчитанный по этим двум ценам, будет отличаться. Для маленькой позиции разница мала, для крупной — заметна. Поэтому при споре с интерфейсом первым делом выясняют, какая цена является источником расчёта.
Index Price — внешний ориентир
Index Price обычно агрегирует цены базового актива с нескольких рынков. Она предназначена не для прямого исполнения ордера, а для более устойчивой справочной базы. Mark Price может строиться на её основе, но не обязан совпадать с ней каждую секунду.
Трейдеру не нужно запоминать все формулы конкретной биржи. Нужно выработать привычку читать подпись: unrealized PnL by Last или by Mark, liquidation by Mark, chart by Last. Одна строка интерфейса может объяснить расхождение в расчётах лучше, чем десятки попыток пересчитать позицию вручную.
Комиссии: почему прибыль на графике больше результата в истории
Комиссия за вход уже уменьшает экономический результат
Если позиция открыта market-ордером, trading fee возникает сразу. В некоторых интерфейсах unrealized PnL показывает только ценовое изменение и не вычитает эту комиссию из видимой цифры позиции. Поэтому зелёный +5 USDT ещё не означает, что сделка уже вышла в чистую прибыль.
Для высокочастотных стратегий это критично. Если цель сделки — взять движение 0,15%, а вход и выход как taker вместе стоят сопоставимую величину, стратегия может иметь положительный gross PnL и отрицательный net PnL.
Комиссия за выход неизвестна до исполнения
Пока позиция открыта, будущая комиссия закрытия ещё не стала фактической строкой. Можно оценить её по текущему тарифу и предполагаемому типу ордера, но финальная величина зависит от объёма исполнения и статуса maker/taker. Поэтому ожидаемый net PnL перед закрытием — прогноз, а не окончательная цифра.
Maker и taker меняют точку безубыточности
Limit-ордер, добавляющий ликвидность, может иметь другой тариф, чем market-ордер, забирающий ликвидность. Но сам факт использования Limit не гарантирует maker: если цена пересекает лучшую встречную заявку, ордер исполняется немедленно и становится taker в соответствующей части.
Для честного анализа торгового журнала расходы нужно считать по фактическим fills. Если стратегия предполагает maker, а на практике половина входов происходит как taker, её реальная точка безубыточности будет хуже бэктеста.
Funding и PnL perpetual-фьючерсов
Funding — отдельный денежный поток
Perpetual-контракт не имеет обычной даты экспирации, поэтому площадки используют funding payments, чтобы стимулировать сближение цены бессрочного контракта с базовым рынком. При положительной ставке одна сторона платит другой, при отрицательной направление меняется. Конкретный интервал и формула зависят от инструмента.
Для PnL важно не столько запомнить направление, сколько вынести funding в отдельную строку. Если позиция заработала по цене +300 USDT, но за время удержания заплатила −45 USDT funding и −12 USDT торговых комиссий, экономический итог ближе к +243 USDT.
Накопленный funding может изменить результат длинной позиции
Одна выплата кажется маленькой. Но позиция, удерживаемая несколько дней или недель, проходит множество расчётных интервалов. Если ставка длительно неблагоприятна вашей стороне, accumulated funding становится существенным расходом.
Трейдеры часто замечают это только после закрытия: «цена вышла выше моего входа, почему PnL такой маленький?» Ответ находится в истории funding. Поэтому перед длительным удержанием perpetual нужно оценивать не только направление рынка, но и стоимость времени.
Полученный funding тоже не является бесплатной прибылью
Если позиция получает funding, этот денежный поток улучшает realized PnL. Но открывать сделку только ради очередной выплаты опасно: ценовое движение может многократно превысить начисление. Funding — компонент общей экономики, а не самостоятельная гарантия дохода.
Подробную механику funding на Bybit разумно рассматривать отдельно от PnL позиции: как работает комиссия за финансирование и кто кому платит.
PnL% и ROI: почему проценты вводят в заблуждение
Денежный PnL и процент — разные показатели
PnL в USDT отвечает на вопрос, сколько денег позиция заработала или потеряла. PnL% или ROI отвечает на вопрос, относительно какой базы этот результат велик. Проблема в том, что база на разных площадках и инструментах может отличаться: initial margin, position margin, собственный капитал, стоимость позиции или другой показатель.
Поэтому скрин «+180%» без размера позиции почти бесполезен. Можно получить +180% на небольшой марже и заработать меньше денег, чем +4% на крупной позиции. И наоборот, огромный процент может быть следствием экстремального leverage и высокой вероятности ликвидации.
Leverage раздувает процент на маржу
Если движение актива составляет 1%, позиция с большим плечом может показать двузначный ROI на использованную маржу. Это не означает, что рынок прошёл двузначное движение. Та же механика работает против трейдера: небольшой ход цены создаёт большой процентный минус к залогу.
При сравнении стратегий фиксируйте как минимум три величины: notional позиции, использованную маржу и PnL в деньгах. Без них красивый процент не показывает качество управления риском.
ROI не заменяет expectancy стратегии
Даже высокая средняя прибыль на выигрышной сделке не гарантирует положительную систему. Нужны win rate, средний выигрыш, средний проигрыш, комиссии, slippage и частота сделок. PnL одной позиции — результат одного наблюдения, а не доказательство устойчивого преимущества.
Leverage, margin и ликвидация: связь с PnL
Unrealized loss уменьшает запас позиции
На деривативах нереализованный убыток влияет на equity и запас маржи. Когда рынок движется против позиции, расстояние до maintenance margin сокращается. В определённый момент система может начать ликвидацию. Тогда открытый убыток превращается в реализованный принудительно, возможно с дополнительными расходами.
Это ключевое отличие от простой спотовой покупки без займа: на споте цена актива может упасть, но биржа не обязана закрывать вашу монету из-за maintenance margin. На фьючерсах возможность принудительного выхода встроена в продукт.
Cross и isolated меняют распределение риска
В isolated margin под конкретную позицию выделяется ограниченная маржа. В cross margin общий доступный капитал аккаунта может поддерживать позицию дольше, но тем самым под риск попадает больше средств. Поэтому одинаковый unrealized PnL при разных режимах маржи имеет разное влияние на вероятность ликвидации.
Не оценивайте безопасность позиции по PnL% без margin ratio и liquidation price. Два трейдера с одинаковым −20% ROI могут находиться в совершенно разном состоянии из-за разных режимов, дополнительного обеспечения и других позиций.
Ликвидация не является обычным stop-loss
Stop-loss — заранее заданная попытка закрыть или сократить позицию при определённом условии. Ликвидация — действие риск-системы площадки, когда маржинальные требования больше не выполняются. Доводить позицию до liquidation price вместо собственного риска — не стратегия управления стопом.
Для отдельного расчёта выхода полезно понимать, как работают стоповые ордера и почему они не гарантируют точную цену исполнения. Базовую механику входа, выхода и типов заявок можно сверить в материале как торговать криптой: спот, ордера и риск.
Частичное закрытие: как PnL раскладывается на две части
Закрытая часть становится realized
Предположим, long 1 BTC открыт по 70 000. Цена выросла до 72 000, и трейдер продаёт 0,4 BTC. Валовый ценовой результат этой закрытой части — около +800 USDT. Он фиксируется как realized PnL до учёта применимых комиссий и других денежных потоков.
Оставшиеся 0,6 BTC продолжают быть открытой позицией. Если цена остаётся 72 000, её нереализованный ценовой результат относительно входа — около +1 200 USDT. В интерфейсе одновременно могут существовать realized +800 и unrealized +1 200.
Потом рынок может развернуться
Если оставшиеся 0,6 BTC падают к 69 000, unrealized PnL этой части становится примерно −600 USDT. Ранее зафиксированные +800 никуда не исчезают. Поэтому «позиция сейчас красная» не означает, что вся торговая идея уже убыточна. Для ответа нужно сложить реализованный и оставшийся нереализованный результат, затем учесть расходы.
Почему closed PnL может отличаться от realized PnL вкладки позиции
Биржи используют собственные термины. Где-то realized PnL внутри активной позиции накапливает funding и частичные закрытия, а Closed PnL появляется только после полного закрытия направления. Где-то названия распределены иначе. Пользователь должен читать документацию именно по своему контракту.
Практический способ избежать путаницы — экспортировать историю сделок и денежных потоков. Тогда термин интерфейса становится меткой, а не единственным источником правды.
PnL при нескольких входах и выходах: пошаговый пример
Этап 1. Первый вход
Трейдер открывает long 0,4 BTC по 68 000 USDT. Номинальная стоимость — 27 200 USDT. Пока цена совпадает со входом, валовый ценовой PnL около нуля, но торговая комиссия уже является реальным расходом.
Этап 2. Добавление позиции
Цена снижается до 66 000, и трейдер добавляет 0,2 BTC. Общий размер становится 0,6 BTC. Средняя цена линейной позиции без учёта нюансов комиссии:
(0,4 × 68 000 + 0,2 × 66 000) / 0,6 ≈ 67 333,33 USDT.
Теперь при цене 67 333 нереализованный ценовой результат около нуля, хотя первый вход всё ещё ниже своей первоначальной точки. Усреднение изменило базу всей позиции.
Этап 3. Частичный выход
Рынок растёт до 69 000. Трейдер закрывает 0,3 BTC. Валовый результат этой части относительно средней базы примерно:
(69 000 − 67 333,33) × 0,3 ≈ 500 USDT.
Из этой величины нужно вычесть комиссию закрытия, а в реализованный финансовый результат добавить или вычесть funding, который уже был начислен.
Этап 4. Остаток позиции
Остаётся 0,3 BTC. При цене 69 000 его нереализованный ценовой PnL также около +500 USDT. Если рынок упадёт до 66 500, остаток станет примерно −250 USDT. При этом ранее закрытые +500 остаются реализованными. Поэтому итог торговой последовательности нельзя определить по одной текущей цифре unrealized PnL.
Почему PnL после закрытия внезапно хуже
Slippage между оценкой и исполнением
Unrealized PnL мог считаться по mark или last price 70 000, но рыночный выход фактически прошёл в среднем по 69 940. Для long эта разница ухудшит итог. Чем крупнее объём относительно глубины стакана, тем заметнее эффект.
Если ликвидность слабая, market close способен пройти через несколько уровней. Поэтому перед большой сделкой полезно оценивать стакан и price impact. Для понимания этой механики есть отдельный материал что такое price impact и как ликвидность влияет на цену сделки.
Trading fee за выход
Даже без slippage закрытие создаёт комиссию. Если визуальный PnL был рассчитан без неё, итог уменьшится. Для стратегии с небольшими целями этот расход может съесть значительную часть прибыли.
Funding за время удержания
Если funding был неблагоприятным, он накапливался отдельно от ценового результата. После закрытия история может свести эти потоки в итоговую строку, и пользователь впервые увидит реальный net result.
Частичное закрытие и предыдущие комиссии
Иногда человек смотрит только на последний выход и забывает, что до него позиция несколько раз увеличивалась и уменьшалась. Каждое исполнение создавало комиссию. Если стратегия активно «подкручивала» размер, сумма расходов может быть существенно выше ожидаемой.
PnL на Spot и Futures: что одинаково, а что нет
| Параметр | Спот | Фьючерсы / perpetual |
|---|---|---|
| Базовая идея | Изменение стоимости купленного/проданного актива | Изменение стоимости позиции по контракту |
| Unrealized PnL | Оценка открытого актива относительно себестоимости | Оценка открытой позиции по правилам контракта |
| Realized PnL | Возникает при продаже/закрытии экономического результата | Возникает при сокращении/закрытии, settlement и других событиях |
| Leverage | Обычно отсутствует в простой покупке | Может быть встроен через margin |
| Funding | Нет в обычном споте | Есть у perpetual при соответствующих условиях |
| Liquidation | Нет для обычной полностью оплаченной монеты | Возможна из-за maintenance margin |
| Mark Price | Обычно не нужен для владения активом | Часто используется риск-системой |
| Комиссии | Торговые и вывод | Торговые, funding и возможные дополнительные расходы |
Главное сходство — необходимость знать фактические цены и количество. Главное различие — фьючерсы добавляют маржу, риск ликвидации и специфические денежные потоки. Поэтому переносить бытовую логику «купил дешевле, продал дороже» на leveraged perpetual без поправок опасно.
PnL и размер позиции: считать нужно от количества, а не от желания заработать
Сначала денежный риск, потом размер
Правильный порядок построения сделки начинается не с вопроса «сколько процентов хочу заработать», а с допустимого денежного убытка. Если капитал 10 000 USDT и трейдер допускает потерю 100 USDT по идее, размер позиции должен соответствовать расстоянию до стопа и расходам.
Если стоп расположен на 2% от входа, грубый номинал без поправок может быть около 5 000 USDT для ценового риска 100 USDT. Если стоп на 0,5%, тот же денежный риск допускает больший номинал. Но нужно добавить комиссии, slippage и возможный gap/рывок цены.
PnL в деньгах полезнее абстрактного процента
Две позиции могут показывать −10%, но одна означает −20 USDT, другая −2 000 USDT. Для управления капиталом критичнее абсолютный ущерб. Поэтому профессиональный журнал хранит PnL одновременно в валюте счёта и в единицах риска, например R.
Если первоначальный риск был 100 USDT, прибыль +200 USDT соответствует +2R, а убыток −50 USDT — −0,5R. Такой формат позволяет сравнивать сделки с разным размером и разной волатильностью.
Cumulative PnL, Daily PnL и PnL аккаунта
Cumulative PnL — накопленный результат
Совокупный PnL обычно показывает накопленный итог за выбранный период или с определённой точки. Он может включать несколько инструментов и множество сделок. Но конкретный состав зависит от платформы: какие комиссии, депозиты, переводы и funding входят в расчёт, нужно уточнять в описании метрики.
Нельзя автоматически трактовать cumulative PnL как изменение чистого капитала. Если пользователь внёс дополнительные средства или вывел часть баланса, equity изменилась, но торговый PnL не обязан измениться на ту же величину.
Daily PnL зависит от границы дня
«PnL за сегодня» кажется простым показателем, пока не возникает вопрос часового пояса. Биржа может считать торговый день по UTC, локальному времени пользователя или внутреннему settlement-периоду. Позиция, открытая вечером и закрытая после полуночи, способна попасть в разные дни.
При собственном учёте зафиксируйте единый timezone. Иначе сравнение дневных результатов с экспортом биржи будет постоянно давать расхождения около полуночи.
Account PnL может смешивать несколько стратегий
Если один аккаунт содержит спот, фьючерсы, хедж и экспериментальные сделки, общий PnL скрывает качество каждой стратегии. Положительный итог может быть создан одной крупной позицией, пока десятки мелких сделок систематически теряют деньги.
Для анализа полезно группировать результат по стратегии, символу, типу рынка и периоду. Только тогда PnL превращается из красивой общей цифры в управленческий показатель.
PnL и Equity: почему капитал меняется не только из-за торговли
Equity включает текущую стоимость аккаунта
Equity — оценка собственного капитала аккаунта с учётом доступного баланса и влияния открытых позиций по правилам площадки. Unrealized PnL способен менять equity даже до закрытия сделки. Поэтому на фьючерсах риск-система смотрит не только на отдельный баланс кошелька.
Deposit и withdrawal не являются PnL
Пополнение на 5 000 USDT увеличивает активы аккаунта, но это не торговая прибыль. Вывод 2 000 USDT уменьшает баланс, но это не убыток. Если анализировать стратегию только по разнице «сейчас на счёте минус было на счёте», нужно нормализовать внешние денежные потоки.
Transfer между внутренними счетами тоже не прибыль
Перевод из Funding Account в Unified Trading Account меняет расположение актива внутри биржи, но не создаёт экономический PnL. Путаница особенно часто возникает на площадках, где внутренние счета называются словами, похожими на торговые механизмы. Funding Account и funding fee — разные вещи.
PnL и ROI: практическое сравнение
| Показатель | Что показывает | Главная польза | Главная ловушка |
|---|---|---|---|
| PnL в USDT | Денежный результат | Вклад сделки в капитал | Не показывает использованный риск |
| Unrealized PnL | Текущий результат открытой позиции | Контроль текущего состояния | Может измениться до выхода |
| Realized PnL | Уже зафиксированный результат | Фактическая история | Состав расходов зависит от платформы |
| ROI / PnL% | Результат относительно базы | Сравнение эффективности капитала | База может отличаться, leverage раздувает процент |
| Equity change | Изменение капитала аккаунта | Риск и доступное обеспечение | Включает внешние переводы и открытый результат |
| Cumulative PnL | Накопленный торговый результат | Оценка периода | Может скрывать распределение по стратегиям |
Если цель — понять, заработала ли конкретная сделка, начинайте с PnL в деньгах. Если цель — сравнить эффективность использования капитала, добавляйте ROI. Если цель — управлять ликвидационным риском, смотрите equity, margin ratio и liquidation price. Ни одна цифра не заменяет остальные.
Что такое realized PnL на практике
Полное закрытие
Самый понятный случай — позиция закрыта целиком. Тогда весь оставшийся ценовой результат становится реализованным, фактические комиссии известны, а funding за время удержания можно суммировать. Это момент, когда результат наиболее удобно сравнивать с самостоятельным расчётом.
Частичное закрытие
Если закрыто 30% позиции, только соответствующая доля ценового результата фиксируется. Оставшаяся часть продолжает изменяться. Realized PnL становится историей уже совершённых действий внутри ещё открытой торговой идеи.
Расчётные события
На некоторых деривативных продуктах существуют периодические settlements или другие механизмы, которые переводят часть результата в баланс до полного закрытия. Поэтому универсальное утверждение «realized возникает только при ручном Close» неверно. Правила контракта имеют приоритет.
В официальном описании Coinbase International Derivatives PnL связывается с движением цены, комиссиями и funding payments; документация также разделяет unrealized и realized result. Это хороший пример того, почему перед сравнением цифр нужно читать механику конкретного продукта, а не переносить привычки с другой биржи.
Что такое unrealized PnL на практике
Это модель текущего выхода
Нереализованный результат отвечает примерно на вопрос: что происходит с позицией сейчас относительно базы входа. Но он не гарантирует фактический выход по этой цене. Его нужно воспринимать как mark-to-market оценку, а не как обещание выплаты.
Он влияет на решения ещё до закрытия
Трейдер использует unrealized PnL для контроля риска, переноса стопа, сокращения позиции и оценки margin buffer. Ошибка — игнорировать его как «ненастоящий». До закрытия он не фиксирован, но именно через него рынок воздействует на состояние leveraged-позиции.
Он может быть положительным, а стратегия — плохой
Одна удачная открытая позиция способна показать большой unrealized profit и скрыть серию предыдущих реализованных потерь. Поэтому при оценке торговли нельзя смотреть только на открытые сделки. Нужен полный журнал, включая закрытые позиции и расходы.
Inverse contracts: почему привычная линейная формула не подходит
Расчёт идёт в базовом активе
В inverse-контрактах контракт может быть номинирован или рассчитываться так, что PnL выражается в BTC или другой базовой монете, а математическая зависимость от цены становится нелинейной в привычном долларовом представлении. Простая формула (exit − entry) × BTC quantity может дать неверный результат.
Средняя цена тоже рассчитывается иначе
При добавлении inverse-позиции average entry может зависеть от стоимости контрактов в базовом активе. Поэтому арифметическое среднее цен входа без учёта контрактной формулы ошибочно. Официальная документация Bybit для inverse-контрактов отдельно показывает формулы average entry, unrealized и closed PnL — именно потому, что они отличаются от линейных USDT-продуктов.
Не смешивайте отчёты разных типов контрактов
Если стратегия торгует USDT perpetual и inverse BTCUSD, приводите результат к одной отчётной валюте только после расчёта PnL каждого инструмента по его правилам. Иначе изменение курса BTC дополнительно искажает сравнение.
Почему PnL в двух приложениях может не совпадать
Разная цена оценки
Один сервис использует Last Price, другой Mark Price, третий агрегатор — собственную котировку. Уже этого достаточно для расхождения по открытой позиции.
Разная себестоимость
Кошелёк мог получить монеты из нескольких источников и не знать фактическую цену покупки. Биржа знает только операции внутри своей системы. Портфельный трекер может применять среднюю цену или импортированную себестоимость. Поэтому спотовый PnL разных сервисов часто не идентичен.
Разный набор расходов
Одно поле показывает gross PnL до торговых комиссий, другое net PnL после fees и funding. Сравнивать их напрямую нельзя.
Разный период
Daily PnL по UTC и дневной результат по московскому времени расходятся около границы суток. Cumulative PnL с даты регистрации и PnL за выбранный месяц тоже не должны совпадать.
Как самостоятельно проверить PnL позиции
Шаг 1. Зафиксировать инструмент
Запишите точный символ и тип контракта: BTCUSDT Spot, BTCUSDT Perpetual, BTCUSD Inverse и так далее. Без этого невозможно выбрать правильную формулу.
Шаг 2. Выгрузить fills, а не только orders
Ордер может исполниться несколькими сделками. Для точной средней цены нужны фактические исполнения: цена, количество, комиссия, время и роль maker/taker.
Шаг 3. Восстановить average entry
Суммируйте входы по правилам конкретного инструмента. Для линейной позиции используйте взвешивание по количеству; для inverse — формулу биржи.
Шаг 4. Определить текущую или выходную цену
Для unrealized выясните, использует ли поле Mark или Last. Для closed PnL берите фактические fills выхода.
Шаг 5. Посчитать price PnL
Сначала без комиссий и funding. Это позволяет проверить саму геометрию позиции и знак long/short.
Шаг 6. Добавить trading fees
Суммируйте комиссии входов, добавлений, частичных закрытий и финального выхода.
Шаг 7. Добавить funding и другие cash flow
Отдельно возьмите все funding settlements за время удержания. Не угадывайте их по текущей ставке: используйте фактическую историю.
Шаг 8. Сравнить с биржей
Если разница остаётся, проверьте округление, валюту комиссии, частичные исполнения, settlement, тип контракта и источник цены. Такой порядок обычно локализует расхождение без догадок.
Формула проверки линейной long-позиции
Для упрощённой полностью закрытой линейной позиции можно использовать:
Net PnL = (Average Exit − Average Entry) × Quantity − Trading Fees + Funding Net.
Здесь Funding Net положителен, если позиция получила больше funding, чем заплатила, и отрицателен в обратной ситуации.
Для short:
Net PnL = (Average Entry − Average Exit) × Quantity − Trading Fees + Funding Net.
Эти формулы полезны как контроль, но не должны подменять спецификацию контракта. Если есть мультипликатор, inverse settlement, сложная структура позиции или периодические расчёты, нужна формула конкретной площадки.
Пример полного расчёта long с комиссиями и funding
Трейдер открывает long 2 ETH по средней цене 3 000 USDT. Номинал входа — 6 000 USDT. Позже закрывает всю позицию по средней цене 3 120 USDT.
Валовый price PnL:
(3 120 − 3 000) × 2 = 240 USDT.
Комиссия входа составила 3,6 USDT, выхода — 3,744 USDT. За время удержания трейдер заплатил 8 USDT funding и получил 2 USDT в другом интервале. Net funding = −6 USDT.
Итог:
240 − 3,6 − 3,744 − 6 = 226,656 USDT.
Если перед закрытием интерфейс показывал unrealized +240, а Closed PnL оказался около +226,7, разница полностью объяснима расходами. Это и есть правильный способ читать PnL: не искать одну «главную» цифру, а собрать денежные потоки.
Пример полного расчёта short
Трейдер открывает short 5 SOL по 180 USDT и закрывает по 170. Валовый price PnL:
(180 − 170) × 5 = 50 USDT.
Если комиссии суммарно 1,2 USDT, а funding получен +0,8 USDT, итог примерно:
50 − 1,2 + 0,8 = 49,6 USDT.
Если же цена выросла до 190, price PnL станет −50 USDT. Положительный funding в несколько центов не изменит фундаментально убыточную сделку. Этот пример хорошо показывает, почему funding нельзя использовать как оправдание плохого входа.
PnL и безубыточная цена
Break-even выше или ниже entry из-за расходов
Для long безубыточная цена обычно должна быть немного выше средней цены входа, если учитывать комиссии и отрицательный funding. Простое возвращение к entry может всё ещё оставить небольшой net loss.
Для short аналогично: цена должна снизиться достаточно, чтобы компенсировать круговые расходы. Чем чаще позиция меняет размер, тем больше накопленные fees и тем дальше фактическая точка безубыточности от визуальной средней цены.
Нельзя считать break-even вечным
Funding продолжает начисляться, поэтому при длительном удержании точка безубыточности способна медленно сдвигаться. Изменение тарифного уровня или способа закрытия также влияет на будущую комиссию.
PnL и торговый журнал
Что записывать по каждой позиции
Минимальный журнал содержит дату и время, инструмент, long/short, входные fills, выходные fills, размер, комиссии, funding, итоговый realized PnL и комментарий по стратегии. Для открытых позиций можно отдельно фиксировать maximum favorable excursion и maximum adverse excursion.
Зачем хранить gross и net PnL отдельно
Gross PnL показывает, работает ли идея на движении цены. Net PnL показывает, зарабатывает ли она после реальных расходов. Если gross стабильно положительный, а net отрицательный, проблема может быть в слишком частой торговле, taker execution, плохой ликвидности или funding.
Группировка по стратегии
Не смешивайте скальпинг, свинг и хедж в одну среднюю. У них разный горизонт, частота и структура расходов. Статья об арбитраже крипты показывает ещё один пример, где торговый результат нельзя оценивать без комиссий и движения между площадками; для обычного PnL логика та же — сначала восстанавливаются все денежные потоки.
Как оценивать качество торговли по PnL, а не по скриншотам
Смотреть распределение, а не лучшую сделку
Один скрин +500% может быть результатом экстремального риска. Для оценки нужна серия: медианный PnL, средний win, средний loss, максимальная просадка, количество сделок, расходы и риск на сделку.
Отделять рыночный beta от навыка
Если весь рынок вырос на 50%, положительный PnL long-портфеля ещё не доказывает превосходство стратегии. Сравните результат с простой альтернативой — удержанием базового актива, подходящим бенчмарком или заранее заданным benchmark.
Проверять стабильность net result
Стратегия ценна не тем, что иногда показывает большой unrealized profit, а тем, что после комиссий и неблагоприятных периодов имеет понятное статистическое преимущество и приемлемую просадку.
Ошибки при чтении PnL
Ошибка 1. Считать unrealized уже заработанными деньгами
Пока позиция открыта, результат меняется. Особенно опасно планировать вывод или увеличение обязательств исходя из прибыли, которая ещё не зафиксирована.
Ошибка 2. Игнорировать комиссию входа и выхода
Малые цели могут полностью исчезнуть после fees. Всегда считайте round-trip cost.
Ошибка 3. Забывать funding
Для perpetual срок удержания имеет стоимость. Проверяйте фактическую историю начислений.
Ошибка 4. Умножать PnL на leverage второй раз
Если размер позиции уже учтён, дополнительное умножение даёт завышенный результат. Leverage влияет на маржу и ROI, а не создаёт второй слой ценовой прибыли.
Ошибка 5. Считать по цене графика вместо fills
Итог сделки определяется исполнениями. Last price — ориентир, не бухгалтерский документ.
Ошибка 6. Смешивать deposit с прибылью
Внешние пополнения и выводы нужно исключать из торгового результата.
Ошибка 7. Сравнивать PnL разных контрактов одной формулой
Linear и inverse требуют разных формул. Сначала определите спецификацию инструмента.
Ошибка 8. Игнорировать частичное закрытие
Realized и unrealized могут существовать одновременно. Один текущий показатель не описывает всю торговую идею.
Почему положительный unrealized PnL превращается в отрицательный closed PnL
Такое возможно без ошибки биржи. Типичный сценарий: позиция показывает небольшую бумажную прибыль; spread уже широк; market close получает отрицательное проскальзывание; затем списывается комиссия выхода; за время удержания был отрицательный funding. Если ценовой запас был маленьким, сумма расходов переводит сделку через ноль.
Другой вариант — пользователь смотрел PnL по mark price, но закрытие прошло по last/order book заметно хуже. Ещё один — часть позиции ранее закрывалась с убытком, а текущий unrealized относится только к оставшемуся объёму. Финальный Closed PnL учитывает более широкую историю.
Правильная диагностика не начинается с вопроса «почему биржа украла прибыль». Она начинается с таблицы: average entry, exit fills, qty, fees, funding, previous partial closes. Если после этого остаётся необъяснимое расхождение, уже есть конкретный набор данных для поддержки.
Как составить таблицу сверки PnL
| Поле | Что записать | Откуда взять |
|---|---|---|
| Инструмент | Точный symbol и тип контракта | Trade / Contract details |
| Side | Long или short | Position history |
| Entry fills | Цена и количество каждого исполнения | Trade history |
| Exit fills | Цена и количество каждого исполнения | Trade history |
| Average entry | Пересчитать/сверить | Position / собственный расчёт |
| Average exit | Средневзвешенная цена закрытия | Fills |
| Trading fees | Все входы и выходы | Fee history |
| Funding | Все выплаты за период | Funding history |
| Partial realized | Ранее закрытые части | PnL history |
| Net result | Собственный итог | Формула |
| Exchange result | Closed/realized PnL | История биржи |
| Difference | Net − Exchange | Диагностика |
Такая таблица полезнее скриншота. Она позволяет увидеть, какое именно значение отсутствует. Для сложной позиции можно сделать отдельную строку на каждый fill, а затем агрегировать.
PnL и налоги: храните факты, не только итог биржи
Торговый PnL интерфейса не является универсальным налоговым расчётом. Налоговая база зависит от юрисдикции, статуса лица, типа операций и применимого метода учёта. Биржа может считать PnL по позиции, а налоговый учёт — по приобретению и выбытию актива с другими правилами себестоимости.
Поэтому сохраняйте первичные данные: дату, актив, количество, стоимость, комиссию, перевод, историю фиатного ввода и вывода. PnL полезен как торговый показатель, но не заменяет комплект документов. Для систематизации можно использовать журнал криптотранзакций, связывая торговые операции с движением активов и подтверждениями.
Как использовать PnL для управления риском
Ограничить убыток на одну идею
До входа определите допустимый денежный loss. После входа PnL используется как контроль того, насколько фактическое движение соответствует плану. Если позиция стала больше из-за усреднения, лимит риска нужно пересчитать — старое ограничение уже не описывает новую экспозицию.
Установить дневной лимит
Серия мелких отрицательных PnL способна привести к большому дневному убытку. Дневной stop по капиталу защищает от revenge trading и ухудшения решений после нескольких неудач.
Не расширять стоп ради «возврата PnL к нулю»
Желание увидеть зелёную цифру — не основание менять риск. Если первоначальная идея сломана, перенос стопа дальше увеличивает ожидаемый loss. PnL должен информировать, а не управлять эмоциями.
PnL для скальпинга и высокочастотной торговли
В скальпинге средняя прибыль сделки мала, поэтому разница между gross и net PnL становится центральной. Стратегия может правильно угадывать направление чаще половины времени и всё равно терять деньги после spread, taker fees и slippage.
Для скальпера полезно считать отдельно price PnL, fee PnL и slippage cost. Тогда видно, где исчезает преимущество. Если исполнение является проблемой, изменение типа ордеров и рынка может быть важнее нового индикатора.
При очень высокой частоте средняя стоимость одной ошибки небольшая, но их количество велико. Поэтому автоматический журнал и сверка PnL нужны не в конце месяца, а ежедневно.
PnL для свинг-позиции
У свинг-трейдера меньше сделок, но дольше время удержания. Здесь сильнее роль funding, ночных движений и изменения волатильности. Нереализованный PnL может пройти большой путь от прибыли к убытку до закрытия.
Для такой стратегии полезно фиксировать не только итог, но и MFE/MAE: максимальную прибыль и максимальный неблагоприятный ход во время сделки. Это помогает понять, слишком рано ли фиксируется прибыль и насколько реалистичны стопы.
PnL хеджированной позиции
Если одновременно существуют long и short на связанных инструментах, PnL одной ноги ничего не говорит о результате хеджа. Long может показывать −1 000 USDT, а short +900 USDT. Система потеряла около 100 до расходов, а не 1 000.
При basis trade, delta hedge или межбиржевом хедже нужно суммировать ноги, funding, комиссии и стоимость перемещения капитала. Психологическая ошибка — закрыть «красную» ногу только потому, что она выглядит плохо отдельно, разрушив хедж.
PnL и курс крипты: связь с реальной ценой исполнения
PnL всегда строится на цене, поэтому понимание котировки критично. Last, bid, ask, mark и average fill — не одно и то же. В статье как формируется курс крипты и как считать реальную цену сделки подробно разобраны стакан, spread и средняя цена исполнения. Для PnL это не соседняя теория, а основа расчёта.
Если пользователь рассчитывает закрыть крупный long по mid price, он завышает ожидаемый PnL. Фактическая продажа пройдёт по bid и глубже. Чем шире spread, тем больше разница между оценкой портфеля и исполнимой стоимостью.
PnL в интерфейсе Bybit, Binance и других бирж: как читать без привязки к кнопкам
Интерфейсы меняются быстрее базовой математики. Поэтому не запоминайте расположение конкретной строки. Ищите смысловые поля: position size, average entry price, mark/last price, unrealized PnL, realized/closed PnL, funding history, trading fees и order fills.
На Bybit официальные материалы по P&L отдельно описывают Unrealized P&L, Realized P&L и различия между Last Traded Price и Mark Price; отдельные справки по контрактам показывают влияние fees, funding и фактической цены исполнения. Это полезный принцип для любой площадки.
На другой бирже названия могут отличаться. Если поле называется Position PnL, выясните, учитывает ли оно fees. Если Total PnL — уточните период. Если ROI — определите знаменатель. Не переносите значение термина по памяти с другого аккаунта.
Как проверять PnL перед обращением в поддержку
Перед тикетом соберите минимальный пакет данных:
- symbol и тип контракта;
- side и режим позиции;
- время входа и выхода в UTC;
- все fills с количеством и ценой;
- average entry и average exit;
- trading fees;
- funding payments;
- скрин или экспорт поля PnL;
- источник текущей цены, если спор относится к unrealized;
- собственный расчёт и величину расхождения.
Формулировка «у меня было +100, а стало +70» почти бесполезна. Формулировка «по fills price PnL +96,40, fees −8,20, funding −3,10, ожидаю +85,10, история показывает +79,60; прошу объяснить разницу 5,50» позволяет поддержке проверить конкретный механизм.
Когда PnL нельзя считать точным до копейки заранее
До исполнения рыночного выхода неизвестна средняя цена закрытия. До settlement неизвестен окончательный funding, если ставка ещё может измениться. До завершения частично заполненного лимитного ордера неизвестно, какая доля станет maker или taker. Поэтому предварительный PnL — оценка.
Точность повышается после фактических fills. Чем больше параметров уже произошли, тем ближе расчёт к бухгалтерскому факту. Это нормальное свойство рынка, а не недостаток аналитики.
Минимальный алгоритм для новичка
Если вы впервые увидели PnL на фьючерсах, не начинайте с сложной формулы. Сделайте пять проверок:
- Определите long или short.
- Найдите average entry price.
- Посмотрите, по какой цене считается текущий PnL — Mark или Last.
- Сравните движение цены с размером позиции.
- После закрытия отдельно найдите fees и funding.
Если эти пять пунктов понятны, большинство загадочных расхождений исчезает. Только затем имеет смысл изучать inverse contracts, portfolio margin и сложные settlement-механизмы.
Практический чек-лист перед оценкой результата
Перед тем как сделать вывод «сделка заработала X», проверьте:
- позиция закрыта полностью или частично;
- PnL realized или unrealized;
- цена расчёта Mark, Last или фактический fill;
- размер позиции соответствует истории;
- average entry учёл все добавления;
- комиссии входа и выхода включены;
- funding за весь период учтён;
- нет ли других частичных закрытий;
- не смешан ли transfer с торговым результатом;
- процентный ROI не используется вместо денежного PnL;
- контракт linear или inverse;
- выбран правильный период и timezone.
Когда PnL действительно полезен
PnL полезен не как эмоциональный индикатор «зелёное хорошо, красное плохо», а как единица обратной связи. Он показывает, как конкретное решение изменило капитал. В сочетании с размером риска, временем удержания и расходами PnL позволяет сравнивать стратегии и находить слабые места.
Если расходы съедают большую часть gross PnL, проблема в исполнении или слишком малой цели. Если большие убытки возникают после усреднений, проблема в контроле размера. Если результат портят funding payments, возможно, perpetual используется для горизонта, где другой инструмент был бы эффективнее. Если один актив создаёт всю прибыль, стратегия недостаточно диверсифицирована.
Когда PnL вводит в заблуждение
PnL вводит в заблуждение, когда у него нет контекста. +1 000 USDT может быть великолепным результатом при риске 100 USDT и плохим при риске 20 000. +50% ROI может быть следствием огромного leverage. Нулевая прибыль может быть хорошим итогом хеджа, который защищал другой портфель от падения. Отрицательная отдельная нога может быть необходимой страховкой.
Поэтому рядом с PnL всегда должны существовать хотя бы risk, notional, holding period и costs. Именно эти параметры превращают цифру в вывод.
Итог: как читать PnL без самообмана
PnL — это язык, на котором торговая позиция сообщает результат. Но слово «PnL» не является одной универсальной формулой. Нереализованный результат показывает состояние открытой позиции по выбранной цене оценки. Реализованный отражает уже зафиксированные денежные потоки. Closed PnL помогает увидеть итог закрытой позиции, а cumulative и daily PnL агрегируют множество событий за период.
Для линейной позиции основа проста: разница между ценой входа и ценой выхода, умноженная на количество. Но реальная экономика начинается после добавления комиссий, funding, slippage, частичных закрытий и правил конкретного контракта. Leverage меняет требуемую маржу и риск, но не должен второй раз умножаться в формуле ценового результата. Mark Price и Last Price объясняют многие расхождения открытого PnL, а фактические fills определяют закрытый результат.
Лучший навык — уметь восстановить сделку независимо от интерфейса. Скачайте исполнения, найдите average entry, вычислите price PnL, добавьте fees и funding, затем сравните с историей биржи. Если числа сходятся, вы понимаете свою позицию. Если нет — у вас есть конкретная переменная для проверки. Такой подход намного полезнее любого скриншота с процентом прибыли и помогает принимать решения на основе реальных денежных потоков, а не цвета цифры на экране.
Семь ситуаций, в которых PnL чаще всего считают неправильно
Ситуация 1. Позиция выросла на 1%, но PnL% показывает почти 10%
Предположим, трейдер открыл позицию номиналом 10 000 USDT и использовал около 1 000 USDT маржи. Цена актива выросла примерно на 1%, поэтому валовый денежный результат близок к +100 USDT. Относительно номинала это тот же 1%, но относительно используемой маржи — около 10% до расходов. Интерфейс, показывающий ROI на margin, не противоречит движению графика. Он просто использует другой знаменатель.
Ошибка возникает, когда человек видит +10% и делает вывод, что актив вырос на 10% или что PnL нужно ещё раз умножить на плечо. Для проверки всегда переводите процент обратно в деньги и сопоставляйте его с notional. Если +10% соответствует примерно +100 USDT при 1 000 USDT маржи и 10 000 USDT позиции, арифметика понятна.
Ситуация 2. Цена вернулась к точке входа, а сделка всё равно в минусе
Трейдер открыл и закрыл позицию примерно по одной цене. Кажется, PnL должен быть нулевым. Но вход и выход создали торговые комиссии, market-ордера пересекли spread, а perpetual мог пройти один или несколько funding intervals. Поэтому цена безубыточности с учётом расходов отличается от средней цены входа.
Для коротких сделок это особенно заметно. Если рыночная цель мала, комиссия может быть крупнейшей статьёй расходов. Поэтому перед входом полезно знать round-trip cost — сколько приблизительно стоит открыть и закрыть позицию при запланированном способе исполнения.
Ситуация 3. Unrealized PnL положительный, но доступный баланс почти не вырос
В зависимости от режима маржи и продукта открытая прибыль может увеличивать equity, но не становиться полностью выводимым свободным балансом. Например, в isolated margin прибыль связана с конкретной позицией и используется в рамках её расчётов; в cross или portfolio margin влияние на доступное обеспечение устроено иначе.
Не пытайтесь определить выводимость средств по одной строке PnL. Для этого смотрят available balance, margin requirements и правила конкретного аккаунта. PnL описывает результат позиции, а не юридический или технический статус каждой единицы баланса.
Ситуация 4. После частичного закрытия PnL на позиции стал меньше
Трейдер зафиксировал половину прибыльной позиции. В активной позиции осталась только вторая половина, поэтому текущий unrealized PnL закономерно уменьшился. Первая половина не исчезла — её результат переместился в realized/closed history.
Если смотреть только на Positions, может возникнуть ощущение, что прибыль «пропала». Для оценки всей идеи сложите realized PnL уже закрытой части и unrealized PnL остатка, затем учтите расходы. Это особенно важно при лестнице тейк-профитов, когда позиция сокращается несколькими этапами.
Ситуация 5. Две одинаковые позиции показывают разный PnL
Даже одинаковый symbol и одинаковое направление не гарантируют равенства результата. У аккаунтов могут отличаться average entry, размер, тарифный уровень, момент funding settlement, режим маржи и путь исполнения. Один трейдер вошёл одной сделкой, другой усреднялся; один закрыл часть позиции; другой получил maker rebate или иной тариф.
Сравнивать скриншоты без этих данных бессмысленно. Для точного сравнения нужны хотя бы quantity, average entry, current reference price, fees и funding history.
Ситуация 6. Сделка прибыльная по цене, но стратегия убыточна
Предположим, за месяц трейдер заработал +2 000 USDT gross price PnL. Одновременно он заплатил 1 100 USDT торговых комиссий, 500 USDT funding и около 600 USDT потерял на slippage. Чистый результат −200 USDT. На графике многие сделки выглядели удачными, но бизнес-модель стратегии отрицательная.
Это типичный риск высокочастотной торговли. Поэтому в журнале обязательно нужна колонка net PnL. Если торговая идея не переживает реальные расходы, её нельзя считать прибыльной только потому, что направление часто угадывается верно.
Ситуация 7. PnL отрицательный, но хедж выполнил задачу
Компания держит крупный запас BTC и открывает short perpetual для временной защиты. Если BTC растёт, short покажет отрицательный PnL. Но одновременно дорожает основной запас. Рассматривать short отдельно и объявлять его «плохой сделкой» неверно: он выполнял функцию страхования.
Для хеджа важен combined PnL всей конструкции и снижение нежелательной волатильности. Иногда отрицательный результат защитной ноги — нормальная цена за уменьшение риска. Поэтому PnL всегда интерпретируется относительно цели позиции.
Как отличить ошибку собственного расчёта от реальной проблемы в истории биржи
Сначала исключите типовые расхождения
Большинство несовпадений появляется из-за пяти причин: неправильная средняя цена входа, расчёт по Last вместо Mark, забытые fees, неучтённый funding и частичное закрытие. Проверяйте их в этом порядке. Такой алгоритм быстрее, чем сразу разбирать сложную маржинальную механику.
Если позиция линейная, вручную посчитайте price PnL по fills. Затем отдельно суммируйте комиссии и funding. Для закрытой позиции используйте фактические цены выхода. Если полученный итог близок к истории с разницей только в округлении, механизм работает ожидаемо.
Проверьте валюту результата
Комиссия может списываться в USDT, USDC, базовом активе или специальном токене скидки. Inverse-контракт вообще может рассчитывать PnL в базовой монете. Если сложить цифры разных валют без пересчёта, получится ложное расхождение.
Сначала приведите каждый денежный поток к своей исходной валюте. Если нужен общий отчёт, затем конвертируйте по заранее выбранной методике и зафиксированному курсу. Не подменяйте контрактный PnL портфельной переоценкой.
Проверьте округление и contract multiplier
В некоторых деривативах один контракт не равен одной монете. Есть contract size или multiplier. Если умножить разницу цен просто на количество контрактов, результат будет ошибочным. То же относится к минимальному шагу цены и округлению количества.
Спецификация инструмента должна быть частью расчёта. Если вы не можете ответить, чему экономически равен один контракт, ручная проверка PnL ещё не готова.
Только после этого ищите техническую ошибку
Если все fills, fees, funding, multiplier и цена оценки учтены, а расхождение остаётся существенным, сохраните экспорт и обратитесь в поддержку. Не редактируйте исходные данные и не ограничивайтесь скрином. CSV или statement с точными timestamp гораздо сильнее для диагностики.
Как построить собственный отчёт PnL за месяц
Разделите торговый результат и движение капитала
Начните с начального капитала. Отдельно запишите deposits и withdrawals. Затем посчитайте net trading PnL по закрытым операциям и текущий unrealized PnL открытых позиций на конец периода. Так станет понятно, почему баланс изменился.
Упрощённая сверка выглядит так:
Ending Equity ≈ Starting Equity + Deposits − Withdrawals + Realized Trading PnL + Unrealized PnL + другие учтённые cash flow.
Конкретный состав зависит от продукта, поэтому формула служит контрольной рамкой, а не бухгалтерским стандартом.
Сгруппируйте расходы
Не оставляйте все издержки одной строкой. Полезно иметь Trading Fees, Funding, Borrow Interest, Withdrawal/Transfer Costs и Slippage estimate. Тогда видно, что реально ухудшает систему.
Например, если funding составляет 5% всех расходов, его оптимизация не изменит стратегию. Если taker fees — 60%, имеет смысл исследовать исполнение. Если slippage резко растёт только на одном инструменте, возможно, позиция слишком велика для его ликвидности.
Добавьте метрики риска
К месячному PnL добавьте maximum drawdown, worst day, best day, average R, win rate и profit factor. Эти показатели не заменяют PnL, но помогают понять качество пути к результату. Два месяца с одинаковой прибылью могут иметь совершенно разный риск.
Сделайте контрольную сумму
Сумма сделок в журнале должна объяснять изменение капитала после поправки на внешние переводы и открытые позиции. Если контрольная сумма не сходится, не начинайте анализ стратегии — сначала найдите пропущенные движения. Иначе выводы будут построены на неполных данных.
Какие данные сохранять, если биржа изменит интерфейс
История аккаунта важнее текущего дизайна приложения. Периодически экспортируйте trade history, order fills, funding history, deposits, withdrawals и statements, если площадка их предоставляет. Для каждой записи важны timestamp, symbol, side, quantity, price, fee и идентификатор операции.
Храните исходные файлы отдельно от собственного обработанного отчёта. Если формула или группировка позже изменится, вы сможете пересчитать историю заново. Скриншот красивого PnL не даёт такой возможности.
Для серьёзной торговли полезно иметь собственный immutable-архив по месяцам. Это снижает зависимость от того, сколько времени биржа показывает историю в интерфейсе и как она переименует поля после обновления.
Короткая памятка: какой PnL смотреть в конкретной ситуации
Если вопрос звучит «сколько зарабатывает открытая позиция прямо сейчас?» — нужен unrealized PnL и понимание reference price.
Если вопрос «сколько уже зафиксировано частичным выходом?» — нужен realized PnL соответствующей позиции и история закрытий.
Если вопрос «сколько принесла полностью закрытая сделка после расходов?» — нужен closed/net PnL с fees и funding.
Если вопрос «почему счёт стал больше или меньше?» — одного PnL недостаточно: нужны deposits, withdrawals, transfers, equity и открытые позиции.
Если вопрос «эффективно ли используется маржа?» — смотрите ROI вместе с денежным PnL, leverage и риском.
Если вопрос «работает ли стратегия?» — анализируйте серию net PnL, drawdown, expectancy и распределение сделок, а не лучший скрин.