{"format":"opendoc-document","version":1,"url":"https://docs.upscale.trade/ru/developers/operations/getpositionevents","title":"Получить все события по позиции","description":"GET /positions/{positionId}/history: Что произошло с одной позицией, сначала самые новые: увеличения, частичные и полные закрытия, ликвидация, принудительное закрытие, изменения…","kind":"api-operation","locale":"ru","inLanguage":"ru","translation":{"sourceLanguage":"en","targetLanguage":"ru","status":"complete","translatedUnits":81,"totalUnits":81},"lastModified":"2026-09-28T20:14:21.334Z","revision":"4bcdb0248fec5130d7dca32f21ced4a207c71ff2d711894a920c99e4198fedd7","section":{"title":"Developers","url":"https://docs.upscale.trade/ru/developers"},"representations":{"html":"https://docs.upscale.trade/ru/developers/operations/getpositionevents","markdown":"https://docs.upscale.trade/ru/developers/operations/getpositionevents.md","json":"https://docs.upscale.trade/ru/developers/operations/getpositionevents.json"},"translations":{"en":"https://docs.upscale.trade/developers/operations/getpositionevents","ru":"https://docs.upscale.trade/ru/developers/operations/getpositionevents","es":"https://docs.upscale.trade/es/developers/operations/getpositionevents"},"operation":{"id":"getPositionEvents","method":"GET","path":"/positions/{positionId}/history","summary":"Получить все события по позиции","description":"Что произошло с одной позицией, сначала самые новые: увеличения, частичные и полные закрытия, ликвидация, принудительное закрытие, изменения маржи.\n\n- Платежи по финансированию исключены из этого потока.\n- Принудительное закрытие несёт за собой рыночное событие, в котором и находится причина этого закрытия.","tags":["Trading"],"tagLabels":{"Accounts":"Аккаунты","Config":"Конфигурация","Trading":"Торговля"},"deprecated":false,"parameters":[{"name":"positionId","location":"path","schema":{"type":"string · uuid","types":["string"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"uuid"},"properties":[],"variants":[]},"type":"string · uuid","required":true,"description":"Идентификатор позиции. Его аккаунт должен принадлежать вызывающему.","example":"00000000-0000-4000-8000-000000000000"}],"bodies":[],"responses":[{"status":"401","description":"Неавторизовано","properties":[],"headers":[]},{"status":"403","description":"Аккаунт принадлежит другому пользователю (`account_access_denied`), или запрос аутентифицирован с помощью API-ключа, тогда как `api_trading` отключён на аккаунте (`api_trading_not_enabled`).","properties":[],"headers":[]},{"status":"404","description":"Нет позиции с этим идентификатором.","properties":[],"headers":[]},{"status":"429","description":"Превышен лимит частоты запросов API-ключа (`api_key_rate_limit_exceeded`). `Retry-After` указывает, когда вернуться; тело содержит бакет (`read` / `write`), окно, которое сработало, его лимит и `retryAt`.","properties":[],"headers":[]},{"status":"default","description":"Ответ","mediaType":"application/json","properties":[],"schema":{"type":"object[]","types":["array"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"items":{"type":"object","types":["object"],"reference":"#/components/schemas/PositionEventResponse","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"idx","type":"string[]","required":true,"description":"Идентификатор позиции. То же значение, что и `txId`.","example":"[\n  \"string\"\n]","schema":{"type":"string[]","types":["array"],"description":"Идентификатор позиции. То же значение, что и `txId`.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"items":{"type":"string","types":["string"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]},"variants":[]}},{"name":"txId","type":"string[]","required":true,"description":"Идентификатор позиции. Сохранён для обратной совместимости, всегда равен `idx`.","example":"[\n  \"string\"\n]","schema":{"type":"string[]","types":["array"],"description":"Идентификатор позиции. Сохранён для обратной совместимости, всегда равен `idx`.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"items":{"type":"string","types":["string"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]},"variants":[]}},{"name":"version","type":"number","required":true,"description":"Ревизия позиции: увеличивается при каждом событии, применённом к ней.","example":"0","schema":{"type":"number","types":["number"],"description":"Ревизия позиции: увеличивается при каждом событии, применённом к ней.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"openedAt","type":"string · date-time","required":true,"description":"Когда позиция была открыта.","example":"2026-05-01T12:30:00.000Z","schema":{"type":"string · date-time","types":["string"],"description":"Когда позиция была открыта.","example":"2026-05-01T12:30:00.000Z","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"date-time"},"properties":[],"variants":[]}},{"name":"lastUpdatedAt","type":"string · date-time","required":true,"description":"Когда к позиции было применено последнее событие.","example":"2026-05-01T12:30:00.000Z","schema":{"type":"string · date-time","types":["string"],"description":"Когда к позиции было применено последнее событие.","example":"2026-05-01T12:30:00.000Z","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"date-time"},"properties":[],"variants":[]}},{"name":"closedAt","type":"string · date-time · nullable","required":true,"description":"Когда позиция была закрыта; null, пока она всё ещё открыта.","example":"2026-05-01T12:30:00.000Z","schema":{"type":"string · date-time · nullable","types":["string"],"description":"Когда позиция была закрыта; null, пока она всё ещё открыта.","example":"2026-05-01T12:30:00.000Z","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{"format":"date-time"},"properties":[],"variants":[]}},{"name":"type","type":"string · enum","required":true,"description":"Направление позиции. То же значение, что и `direction`.","example":"long","schema":{"type":"string · enum","types":["string"],"description":"Направление позиции. То же значение, что и `direction`.","enum":["long","short"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"status","type":"string · enum","required":true,"description":"Является ли позиция всё ещё открытой, закрытой трейдером или ликвидированной.","example":"opened","schema":{"type":"string · enum","types":["string"],"description":"Является ли позиция всё ещё открытой, закрытой трейдером или ликвидированной.","enum":["opened","closed","liquidated"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"market","type":"string · uuid","required":true,"description":"Рынок, на котором удерживается позиция.","example":"00000000-0000-4000-8000-000000000000","schema":{"type":"string · uuid","types":["string"],"description":"Рынок, на котором удерживается позиция.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"properties":[],"variants":[]}},{"name":"trader","type":"string · uuid","required":true,"description":"Счёт трейдера, которому принадлежит позиция.","example":"00000000-0000-4000-8000-000000000000","schema":{"type":"string · uuid","types":["string"],"description":"Счёт трейдера, которому принадлежит позиция.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"properties":[],"variants":[]}},{"name":"size","type":"string · int32","required":true,"description":"Размер позиции в единицах базового актива, fp9 в сыром виде.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Размер позиции в единицах базового актива, fp9 в сыром виде.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"notional","type":"string · int32","required":true,"description":"Открытый номинал позиции в валюте котировки, fp9 в сыром виде — размер по цене входа.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Открытый номинал позиции в валюте котировки, fp9 в сыром виде — размер по цене входа.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"fraction","type":"string · int32","required":true,"description":"Всегда `0`. Сохранено для обратной совместимости.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Всегда `0`. Сохранено для обратной совместимости.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"margin","type":"string · int32","required":true,"description":"Маржа, в настоящее время обеспечивающая позицию, fp9 в сыром виде. Изменяется вместе с pnl, финансированием и ручными изменениями маржи.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Маржа, в настоящее время обеспечивающая позицию, fp9 в сыром виде. Изменяется вместе с pnl, финансированием и ручными изменениями маржи.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"pnl","type":"string · int32 · nullable","required":true,"description":"Реализованный pnl, накопленный по каждому событию позиции, fp9 в сыром виде.","example":"1000000000","schema":{"type":"string · int32 · nullable","types":["string"],"description":"Реализованный pnl, накопленный по каждому событию позиции, fp9 в сыром виде.","example":"1000000000","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"funding","type":"string · int32 · nullable","required":true,"description":"Финансирование, уплаченное (отрицательное) или полученное (положительное) за всё время существования позиции, fp9 в необработанном виде.","example":"1000000000","schema":{"type":"string · int32 · nullable","types":["string"],"description":"Финансирование, уплаченное (отрицательное) или полученное (положительное) за всё время существования позиции, fp9 в необработанном виде.","example":"1000000000","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"rolloverFee","type":"string · int32","required":true,"description":"Всегда `0`. Сохранено для обратной совместимости.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Всегда `0`. Сохранено для обратной совместимости.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"settlementOraclePrice","type":"string · int32","required":true,"description":"Всегда `1000000000` (1.0). Сохранено для обратной совместимости.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Всегда `1000000000` (1.0). Сохранено для обратной совместимости.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"fee","type":"string · int32","required":true,"description":"Торговые комиссии, взимаемые за всё время существования позиции, fp9 в необработанном виде.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Торговые комиссии, взимаемые за всё время существования позиции, fp9 в необработанном виде.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"feeRate","type":"string · int32","required":true,"description":"Ставка комиссии, применяемая к позиции, fp9 в виде необработанной дроби (`1000000` = 0.1%).","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Ставка комиссии, применяемая к позиции, fp9 в виде необработанной дроби (`1000000` = 0.1%).","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"exchangedQuote","type":"string · int32","required":true,"description":"Сумма в котируемой валюте, обмененная в результате последнего события, fp9 в необработанном виде.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Сумма в котируемой валюте, обмененная в результате последнего события, fp9 в необработанном виде.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"exchangedBase","type":"string · int32","required":true,"description":"Сумма в базовой валюте, обмененная в результате последнего события, fp9 в необработанном виде.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Сумма в базовой валюте, обмененная в результате последнего события, fp9 в необработанном виде.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"direction","type":"string · enum","required":true,"description":"Направление позиции.","example":"long","schema":{"type":"string · enum","types":["string"],"description":"Направление позиции.","enum":["long","short"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"eventName","type":"string · enum","required":true,"description":"Тип последнего события, применённого к позиции.","example":"addMargin","schema":{"type":"string · enum","types":["string"],"description":"Тип последнего события, применённого к позиции.","enum":["addMargin","removeMargin","closePosition","increasePosition","liquidate","forceClose","payFunding"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"pnlInEvent","type":"string · int32","required":true,"description":"Реализованный pnl последнего события, fp9 в сыром виде.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Реализованный pnl последнего события, fp9 в сыром виде.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"rawPnlInEvent","type":"string · int32","required":true,"description":"Реализованный pnl последнего события до 60-секундной корректировки, fp9 в сыром виде. Отличается от `pnlInEvent` только когда корректировка сработала.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Реализованный pnl последнего события до 60-секундной корректировки, fp9 в сыром виде. Отличается от `pnlInEvent` только когда корректировка сработала.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"profitAdjustmentApplied","type":"boolean","required":true,"description":"Ограничила ли 60-секундная корректировка прибыль последнего события — в течение минуты после открытия или увеличения позиции pnl не может вырасти выше того, каким он был в тот момент.","example":"true","schema":{"type":"boolean","types":["boolean"],"description":"Ограничила ли 60-секундная корректировка прибыль последнего события — в течение минуты после открытия или увеличения позиции pnl не может вырасти выше того, каким он был в тот момент.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"holdingTimeMs","type":"string[]","required":true,"description":"Как долго позиция удерживалась до самого последнего закрытия, в миллисекундах, считая от открытия или последнего увеличения. Null для событий, которые не являются закрытиями.","example":"[\n  \"string\"\n]","schema":{"type":"string[]","types":["array"],"description":"Как долго позиция удерживалась до самого последнего закрытия, в миллисекундах, считая от открытия или последнего увеличения. Null для событий, которые не являются закрытиями.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"items":{"type":"string","types":["string"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]},"variants":[]}},{"name":"feeInEvent","type":"string · int32","required":true,"description":"Комиссия, взимаемая по самому последнему событию, fp9 в сыром виде.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Комиссия, взимаемая по самому последнему событию, fp9 в сыром виде.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"fundingInEvent","type":"string · int32","required":true,"description":"Фандинг, урегулированный самым последним событием, fp9 в сыром виде.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Фандинг, урегулированный самым последним событием, fp9 в сыром виде.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"rolloverFeeInEvent","type":"string · int32","required":true,"description":"Всегда `0`. Сохранено для обратной совместимости.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Всегда `0`. Сохранено для обратной совместимости.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"executionFeeRate","type":"string · int32","required":true,"description":"Всегда `0`. Сохранено для обратной совместимости.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Всегда `0`. Сохранено для обратной совместимости.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"executionFeeInEvent","type":"string · int32","required":true,"description":"Всегда `0`. Сохранено для обратной совместимости.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Всегда `0`. Сохранено для обратной совместимости.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"executionFee","type":"string · int32","required":true,"description":"Всегда `0`. Сохранено для обратной совместимости.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Всегда `0`. Сохранено для обратной совместимости.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"timestamp","type":"string · date-time","required":true,"description":"Временная метка самого последнего события. То же значение, что и `lastUpdatedAt`.","example":"2026-05-01T12:30:00.000Z","schema":{"type":"string · date-time","types":["string"],"description":"Временная метка самого последнего события. То же значение, что и `lastUpdatedAt`.","example":"2026-05-01T12:30:00.000Z","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"date-time"},"properties":[],"variants":[]}},{"name":"isOnchain","type":"boolean","required":true,"description":"Всегда `true`. Сохранено для обратной совместимости.","example":"true","schema":{"type":"boolean","types":["boolean"],"description":"Всегда `true`. Сохранено для обратной совместимости.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"roe","type":"string · int32","required":true,"description":"Рентабельность капитала позиции — реализованный pnl относительно внесённой маржи, fp9 в виде необработанной дроби.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Рентабельность капитала позиции — реализованный pnl относительно внесённой маржи, fp9 в виде необработанной дроби.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"scalpingCoefficient","type":"string · int32","required":true,"description":"Динамический множитель спреда, применённый к позиции, fp9 в необработанном виде (`1000000000` = 1.0). Выше 1, когда сделка попала в окно рыночного скальпинга.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Динамический множитель спреда, применённый к позиции, fp9 в необработанном виде (`1000000000` = 1.0). Выше 1, когда сделка попала в окно рыночного скальпинга.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"closeReason","type":"string[]","required":true,"description":"Почему платформа закрыла позицию (например, `weekly_session_risk_close`). Null для позиций, закрытых трейдером, и для открытых.","example":"[\n  \"string\"\n]","schema":{"type":"string[]","types":["array"],"description":"Почему платформа закрыла позицию (например, `weekly_session_risk_close`). Null для позиций, закрытых трейдером, и для открытых.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"items":{"type":"string","types":["string"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]},"variants":[]}},{"name":"order","type":"object · nullable","required":true,"description":"Ордер, создавший это событие; null для событий, которые платформа инициировала самостоятельно, таких как финансирование или принудительное закрытие.","example":"{\n  \"id\": \"00000000-0000-4000-8000-000000000000\",\n  \"txId\": \"string\",\n  \"trader\": \"00000000-0000-4000-8000-000000000000\",\n  \"market\": \"00000000-0000-4000-8000-000000000000\",\n  \"status\": \"active\",\n  \"type\": \"market\",\n  \"direction\": \"long\",\n  \"triggerPrice\": \"1000000000\",\n  \"requestedTriggerPrice\": \"1000000000\",\n  \"stopPrice\": \"1000000000\",\n  \"limitPrice\": \"1000000000\",\n  \"stopTriggerPrice\": \"1000000000\",\n  \"takeTriggerPrice\": \"1000000000\",\n  \"trailingStopActivationPrice\": \"1000000000\",\n  \"trailingStopOffset\": \"1000000000\",\n  \"trailingStopOffsetPercent\": \"1000000000\",\n  \"leverage\": \"1000000000\",\n  \"index\": \"string\",\n  \"positionId\": \"string\",\n  \"parentOrderId\": \"string\",\n  \"expiration\": \"2026-05-01T12:30:00.000Z\",\n  \"amount\": \"1000000000\",\n  \"indexPrice\": \"1000000000\",\n  \"settlementOraclePrice\": \"1000000000\",\n  \"createdAt\": \"2026-05-01T12:30:00.000Z\",\n  \"error\": \"string\",\n  \"realizedPnl\": \"1000000000\",\n  \"rawRealizedPnl\": \"1000000000\",\n  \"profitAdjustmentApplied\": true,\n  \"executedAfterPause\": true,\n  \"sizeMode\": \"quote\",\n  \"baseSize\": \"1000000000\",\n  \"reservedAmount\": \"1000000000\",\n  \"errorCode\": \"string\",\n  \"reason\": \"force_close\"\n}","schema":{"type":"object · nullable","types":["object"],"description":"Ордер, создавший это событие; null для событий, которые платформа инициировала самостоятельно, таких как финансирование или принудительное закрытие.","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"id","type":"string · uuid","required":true,"description":"Идентификатор ордера.","example":"00000000-0000-4000-8000-000000000000","schema":{"type":"string · uuid","types":["string"],"description":"Идентификатор ордера.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"properties":[],"variants":[]}},{"name":"txId","type":"string","required":true,"description":"Идентификатор ордера. Сохранён для обратной совместимости, всегда равен `id`.","example":"string","schema":{"type":"string","types":["string"],"description":"Идентификатор ордера. Сохранён для обратной совместимости, всегда равен `id`.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"trader","type":"string · uuid","required":true,"description":"Аккаунт трейдера, которому принадлежит ордер.","example":"00000000-0000-4000-8000-000000000000","schema":{"type":"string · uuid","types":["string"],"description":"Аккаунт трейдера, которому принадлежит ордер.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"properties":[],"variants":[]}},{"name":"market","type":"string · uuid","required":true,"description":"Рынок, на котором размещён ордер.","example":"00000000-0000-4000-8000-000000000000","schema":{"type":"string · uuid","types":["string"],"description":"Рынок, на котором размещён ордер.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"properties":[],"variants":[]}},{"name":"status","type":"string · enum","required":true,"description":"Состояние жизненного цикла: `active`, пока он ожидает, `executed` после исполнения, `canceled` при отмене трейдером или платформой, `canceled_by_update` при замене в результате редактирования, `canceled_by_position` когда позиция, к которой он был привязан, исчезла, `canceled_by_error` при неудачном исполнении — см. `errorCode`.","example":"active","schema":{"type":"string · enum","types":["string"],"description":"Состояние жизненного цикла: `active`, пока он ожидает, `executed` после исполнения, `canceled` при отмене трейдером или платформой, `canceled_by_update` при замене в результате редактирования, `canceled_by_position` когда позиция, к которой он был привязан, исчезла, `canceled_by_error` при неудачном исполнении — см. `errorCode`.","enum":["active","canceled","canceled_by_update","canceled_by_error","canceled_by_position","executed"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"type","type":"string · enum","required":true,"description":"Тип ордера. `liquidation` обозначает ордер, который движок выставил сам.","example":"market","schema":{"type":"string · enum","types":["string"],"description":"Тип ордера. `liquidation` обозначает ордер, который движок выставил сам.","enum":["market","limit","stop","trailing_stop","take","stop_limit","stop_market","liquidation"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"direction","type":"string · enum","required":true,"description":"Направление ордера.","example":"long","schema":{"type":"string · enum","types":["string"],"description":"Направление ордера.","enum":["long","short"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"triggerPrice","type":"string · int32","required":true,"description":"Цена, при которой срабатывает ордер, fp9 в необработанном виде. `0`, когда ордер не имеет триггера.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Цена, при которой срабатывает ордер, fp9 в необработанном виде. `0`, когда ордер не имеет триггера.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"requestedTriggerPrice","type":"string · int32 · nullable","required":true,"description":"Цена триггера, как запрошено, до того как движок вытолкнул её до минимального стоп-расстояния, fp9 в исходном виде. Null, когда запрошенная цена была оставлена как есть.","example":"1000000000","schema":{"type":"string · int32 · nullable","types":["string"],"description":"Цена триггера, как запрошено, до того как движок вытолкнул её до минимального стоп-расстояния, fp9 в исходном виде. Null, когда запрошенная цена была оставлена как есть.","example":"1000000000","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"stopPrice","type":"string · int32","required":true,"description":"Цена триггера ордера `stop_market` / `stop_limit`, fp9 в исходном виде; `0` для любого другого типа.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Цена триггера ордера `stop_market` / `stop_limit`, fp9 в исходном виде; `0` для любого другого типа.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"limitPrice","type":"string · int32","required":true,"description":"Цена, по которой ордер размещается при срабатывании, fp9 в исходном виде: цена стоп-лимит, с возвратом к цене триггера.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Цена, по которой ордер размещается при срабатывании, fp9 в исходном виде: цена стоп-лимит, с возвратом к цене триггера.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"stopTriggerPrice","type":"string · int32","required":true,"description":"Стоп-лосс, привязанный к ордеру, fp9 в исходном виде. `0`, если он не привязан.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Стоп-лосс, привязанный к ордеру, fp9 в исходном виде. `0`, если он не привязан.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"takeTriggerPrice","type":"string · int32","required":true,"description":"Тейк-профит, привязанный к ордеру, fp9 в исходном виде. `0`, если он не привязан.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Тейк-профит, привязанный к ордеру, fp9 в исходном виде. `0`, если он не привязан.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"trailingStopActivationPrice","type":"string · int32","required":true,"description":"Цена, при которой трейлинг-стоп начинает следовать, fp9 в сыром виде. `0`, когда он следует с момента создания.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Цена, при которой трейлинг-стоп начинает следовать, fp9 в сыром виде. `0`, когда он следует с момента создания.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"trailingStopOffset","type":"string · int32","required":true,"description":"Дистанция трейлинга как абсолютная сумма в котируемой валюте, fp9 в сыром виде. `0`, когда дистанция задана в процентах.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Дистанция трейлинга как абсолютная сумма в котируемой валюте, fp9 в сыром виде. `0`, когда дистанция задана в процентах.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"trailingStopOffsetPercent","type":"string · int32","required":true,"description":"Дистанция трейлинга как доля цены, fp9 в сыром виде. `0`, когда дистанция абсолютная.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Дистанция трейлинга как доля цены, fp9 в сыром виде. `0`, когда дистанция абсолютная.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"leverage","type":"string · int32 · nullable","required":true,"description":"Кредитное плечо ордера, fp9 в сыром виде. Null для ордеров на закрытие, которые наследуют кредитное плечо позиции.","example":"1000000000","schema":{"type":"string · int32 · nullable","types":["string"],"description":"Кредитное плечо ордера, fp9 в сыром виде. Null для ордеров на закрытие, которые наследуют кредитное плечо позиции.","example":"1000000000","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"index","type":"string","required":true,"description":"Идентификатор ордера. Сохранён для обратной совместимости, всегда равен `id`.","example":"string","schema":{"type":"string","types":["string"],"description":"Идентификатор ордера. Сохранён для обратной совместимости, всегда равен `id`.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"positionId","type":"string · nullable","required":true,"description":"Позиция, к которой привязан ордер на закрытие. Null для ордеров, которые открывают или увеличивают позицию.","example":"string","schema":{"type":"string · nullable","types":["string","null"],"description":"Позиция, к которой привязан ордер на закрытие. Null для ордеров, которые открывают или увеличивают позицию.","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"parentOrderId","type":"string · nullable","required":true,"description":"Ордер, из которого был порождён этот: стоп или тейк, созданный из `stopTriggerPrice` / `takeTriggerPrice`, или лимитный ордер, в который превратился `stop_limit`. Null, когда ордер был отправлен напрямую.","example":"string","schema":{"type":"string · nullable","types":["string","null"],"description":"Ордер, из которого был порождён этот: стоп или тейк, созданный из `stopTriggerPrice` / `takeTriggerPrice`, или лимитный ордер, в который превратился `stop_limit`. Null, когда ордер был отправлен напрямую.","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"expiration","type":"string · date-time · nullable","required":true,"description":"Всегда null. Сохранено для обратной совместимости — ордера не истекают сами по себе.","example":"2026-05-01T12:30:00.000Z","schema":{"type":"string · date-time · nullable","types":["string"],"description":"Всегда null. Сохранено для обратной совместимости — ордера не истекают сами по себе.","example":"2026-05-01T12:30:00.000Z","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{"format":"date-time"},"properties":[],"variants":[]}},{"name":"amount","type":"string · int32","required":true,"description":"Размер ордера, fp9 в сыром виде, в единице, которую использует его класс: для ордера на увеличение — сумма в котируемой валюте — резерв, пока он ожидает, и то, что он фактически потратил после исполнения; для ордера на закрытие (`stop`, `take`, `trailing_stop`) — размер базового актива, который он закрывает, как было запрошено при создании.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Размер ордера, fp9 в сыром виде, в единице, которую использует его класс: для ордера на увеличение — сумма в котируемой валюте — резерв, пока он ожидает, и то, что он фактически потратил после исполнения; для ордера на закрытие (`stop`, `take`, `trailing_stop`) — размер базового актива, который он закрывает, как было запрошено при создании.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"indexPrice","type":"string · int32 · nullable","required":true,"description":"Цена индекса, по которой был исполнен ордер, fp9 в сыром виде. Null, пока ордер не исполнен.","example":"1000000000","schema":{"type":"string · int32 · nullable","types":["string"],"description":"Цена индекса, по которой был исполнен ордер, fp9 в сыром виде. Null, пока ордер не исполнен.","example":"1000000000","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"settlementOraclePrice","type":"string · int32","required":true,"description":"Всегда `1000000000` (1.0). Сохранено для обратной совместимости.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Всегда `1000000000` (1.0). Сохранено для обратной совместимости.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"createdAt","type":"string · date-time","required":true,"description":"Когда ордер был принят.","example":"2026-05-01T12:30:00.000Z","schema":{"type":"string · date-time","types":["string"],"description":"Когда ордер был принят.","example":"2026-05-01T12:30:00.000Z","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"date-time"},"properties":[],"variants":[]}},{"name":"error","type":"string · nullable","required":true,"description":"Всегда null. Сохранён для обратной совместимости — используйте `errorCode`.","example":"string","schema":{"type":"string · nullable","types":["string","null"],"description":"Всегда null. Сохранён для обратной совместимости — используйте `errorCode`.","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"realizedPnl","type":"string · int32 · nullable","required":true,"description":"Pnl, реализованный этим ордером, fp9 в сыром виде. Устанавливается только для исполненного ордера на закрытие; null, пока ордер в ожидании, и для ордеров, которые открывают или увеличивают позицию.","example":"1000000000","schema":{"type":"string · int32 · nullable","types":["string"],"description":"Pnl, реализованный этим ордером, fp9 в сыром виде. Устанавливается только для исполненного ордера на закрытие; null, пока ордер в ожидании, и для ордеров, которые открывают или увеличивают позицию.","example":"1000000000","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"rawRealizedPnl","type":"string · int32 · nullable","required":true,"description":"Реализованный pnl до 60-секундной корректировки, fp9 в сыром виде. Отличается от `realizedPnl` только тогда, когда корректировка сработала.","example":"1000000000","schema":{"type":"string · int32 · nullable","types":["string"],"description":"Реализованный pnl до 60-секундной корректировки, fp9 в сыром виде. Отличается от `realizedPnl` только тогда, когда корректировка сработала.","example":"1000000000","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"profitAdjustmentApplied","type":"boolean","required":true,"description":"Ограничила ли 60-секундная корректировка прибыль этого ордера — в течение минуты после открытия или увеличения позиции pnl позиции не может вырасти выше значения, которое было в тот момент.","example":"true","schema":{"type":"boolean","types":["boolean"],"description":"Ограничила ли 60-секундная корректировка прибыль этого ордера — в течение минуты после открытия или увеличения позиции pnl позиции не может вырасти выше значения, которое было в тот момент.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"executedAfterPause","type":"boolean","required":true,"description":"Был ли ордер исполнен после рыночной паузы. Не задаётся текущим движком — всегда `false`.","example":"true","schema":{"type":"boolean","types":["boolean"],"description":"Был ли ордер исполнен после рыночной паузы. Не задаётся текущим движком — всегда `false`.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"sizeMode","type":"string · enum","required":true,"description":"Как был выражен размер при создании: `quote` задаёт размер ордера по `amount`, `base` задаёт его по `baseSize`.","example":"quote","schema":{"type":"string · enum","types":["string"],"description":"Как был выражен размер при создании: `quote` задаёт размер ордера по `amount`, `base` задаёт его по `baseSize`.","enum":["quote","base"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"baseSize","type":"string · int32 · nullable","required":true,"description":"Размер ордера в единицах базового актива, fp9 в сыром виде. Null для ордеров с размером `quote`.","example":"1000000000","schema":{"type":"string · int32 · nullable","types":["string"],"description":"Размер ордера в единицах базового актива, fp9 в сыром виде. Null для ордеров с размером `quote`.","example":"1000000000","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"reservedAmount","type":"string · int32 · nullable","required":true,"description":"Сумма в котируемой валюте, зарезервированная при создании ордера с sizeMode=base, fp9 в сыром виде. Остаётся равной исходному резерву после исполнения, тогда как `amount` перезаписывается на потраченную сумму. Null для ордеров с размером `quote`, где `amount` — это резерв.","example":"1000000000","schema":{"type":"string · int32 · nullable","types":["string"],"description":"Сумма в котируемой валюте, зарезервированная при создании ордера с sizeMode=base, fp9 в сыром виде. Остаётся равной исходному резерву после исполнения, тогда как `amount` перезаписывается на потраченную сумму. Null для ордеров с размером `quote`, где `amount` — это резерв.","example":"1000000000","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"errorCode","type":"string · nullable","required":true,"description":"Почему исполнение не удалось, задаётся вместе со статусом `canceled_by_error` — например, `insufficient_reserve_at_execution`, `order_below_min_notional`, `order_exceeds_market_depth` или `slippage_tolerance`. В остальных случаях Null.","example":"string","schema":{"type":"string · nullable","types":["string","null"],"description":"Почему исполнение не удалось, задаётся вместе со статусом `canceled_by_error` — например, `insufficient_reserve_at_execution`, `order_below_min_notional`, `order_exceeds_market_depth` или `slippage_tolerance`. В остальных случаях Null.","nullable":true,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"reason","type":"string · enum · nullable","required":true,"description":"Почему платформа сама отменила ордер, например `force_close` или `weekly_session_risk_close`. Null для отмен, инициированных трейдером.","example":"force_close","schema":{"type":"string · enum · nullable","types":["string"],"description":"Почему платформа сама отменила ордер, например `force_close` или `weekly_session_risk_close`. Null для отмен, инициированных трейдером.","enum":["force_close","stop_accounts_fail","stop_accounts_freeze","stop_accounts_promote","stop_accounts_manual","weekly_session_risk_close",null],"nullable":true,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}}],"variants":[]}}],"variants":[]},"variants":[]},"example":"[\n  {\n    \"idx\": [\n      \"string\"\n    ],\n    \"txId\": [\n      \"string\"\n    ],\n    \"version\": 0,\n    \"openedAt\": \"2026-05-01T12:30:00.000Z\",\n    \"lastUpdatedAt\": \"2026-05-01T12:30:00.000Z\",\n    \"closedAt\": \"2026-05-01T12:30:00.000Z\",\n    \"type\": \"long\",\n    \"status\": \"opened\",\n    \"market\": \"00000000-0000-4000-8000-000000000000\",\n    \"trader\": \"00000000-0000-4000-8000-000000000000\",\n    \"size\": \"1000000000\",\n    \"notional\": \"1000000000\",\n    \"fraction\": \"1000000000\",\n    \"margin\": \"1000000000\",\n    \"pnl\": \"1000000000\",\n    \"funding\": \"1000000000\",\n    \"rolloverFee\": \"1000000000\",\n    \"settlementOraclePrice\": \"1000000000\",\n    \"fee\": \"1000000000\",\n    \"feeRate\": \"1000000000\",\n    \"exchangedQuote\": \"1000000000\",\n    \"exchangedBase\": \"1000000000\",\n    \"direction\": \"long\",\n    \"eventName\": \"addMargin\",\n    \"pnlInEvent\": \"1000000000\",\n    \"rawPnlInEvent\": \"1000000000\",\n    \"profitAdjustmentApplied\": true,\n    \"holdingTimeMs\": [\n      \"string\"\n    ],\n    \"feeInEvent\": \"1000000000\",\n    \"fundingInEvent\": \"1000000000\",\n    \"rolloverFeeInEvent\": \"1000000000\",\n    \"executionFeeRate\": \"1000000000\",\n    \"executionFeeInEvent\": \"1000000000\",\n    \"executionFee\": \"1000000000\",\n    \"timestamp\": \"2026-05-01T12:30:00.000Z\",\n    \"isOnchain\": true,\n    \"roe\": \"1000000000\",\n    \"scalpingCoefficient\": \"1000000000\",\n    \"closeReason\": [\n      \"string\"\n    ],\n    \"order\": {\n      \"id\": \"00000000-0000-4000-8000-000000000000\",\n      \"txId\": \"string\",\n      \"trader\": \"00000000-0000-4000-8000-000000000000\",\n      \"market\": \"00000000-0000-4000-8000-000000000000\",\n      \"status\": \"active\",\n      \"type\": \"market\",\n      \"direction\": \"long\",\n      \"triggerPrice\": \"1000000000\",\n      \"requestedTriggerPrice\": \"1000000000\",\n      \"stopPrice\": \"1000000000\",\n      \"limitPrice\": \"1000000000\",\n      \"stopTriggerPrice\": \"1000000000\",\n      \"takeTriggerPrice\": \"1000000000\",\n      \"trailingStopActivationPrice\": \"1000000000\",\n      \"trailingStopOffset\": \"1000000000\",\n      \"trailingStopOffsetPercent\": \"1000000000\",\n      \"leverage\": \"1000000000\",\n      \"index\": \"string\",\n      \"positionId\": \"string\",\n      \"parentOrderId\": \"string\",\n      \"expiration\": \"2026-05-01T12:30:00.000Z\",\n      \"amount\": \"1000000000\",\n      \"indexPrice\": \"1000000000\",\n      \"settlementOraclePrice\": \"1000000000\",\n      \"createdAt\": \"2026-05-01T12:30:00.000Z\",\n      \"error\": \"string\",\n      \"realizedPnl\": \"1000000000\",\n      \"rawRealizedPnl\": \"1000000000\",\n      \"profitAdjustmentApplied\": true,\n      \"executedAfterPause\": true,\n      \"sizeMode\": \"quote\",\n      \"baseSize\": \"1000000000\",\n      \"reservedAmount\": \"1000000000\",\n      \"errorCode\": \"string\",\n      \"reason\": \"force_close\"\n    }\n  }\n]","headers":[]}],"security":[{"name":"bearer","type":"http · bearer","description":"Персональный API-ключ с префиксом `usk_`.","required":true,"scopes":[]}],"codeSamples":[{"label":"cURL","language":"bash","source":"curl --request GET 'https://api.upscale.trade/positions/{positionId}/history' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer YOUR_API_KEY'"},{"label":"JavaScript","language":"javascript","source":"const response = await fetch(\"https://api.upscale.trade/positions/{positionId}/history\", {\n  method: \"GET\",\n  headers: {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_API_KEY\"\n  },\n});\nconsole.log(response.status, await response.text());"},{"label":"Python","language":"python","source":"import requests\n\nresponse = requests.request(\n    \"GET\",\n    \"https://api.upscale.trade/positions/{positionId}/history\",\n    headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_API_KEY\"},\n    timeout=30,\n)\nprint(response.status_code, response.text)"}]},"breadcrumbs":[{"title":"Что такое проп-трейдинг","url":"https://docs.upscale.trade/ru"},{"title":"Developers","url":"https://docs.upscale.trade/ru/developers"},{"title":"Получить все события по позиции","url":"https://docs.upscale.trade/ru/developers/operations/getpositionevents"}],"headings":[{"depth":2,"id":"authorization","title":"Авторизация"},{"depth":2,"id":"parameters","title":"Параметры"},{"depth":2,"id":"examples","title":"Примеры"},{"depth":2,"id":"responses","title":"Ответы"}],"markdown":"# Получить все события по позиции\n\n`GET /positions/{positionId}/history`\n\nЧто произошло с одной позицией, сначала самые новые: увеличения, частичные и полные закрытия, ликвидация, принудительное закрытие, изменения маржи.\n\n- Платежи по финансированию исключены из этого потока.\n- Принудительное закрытие несёт за собой рыночное событие, в котором и находится причина этого закрытия.\n\n<a id=\"authorization\"></a>\n\n## Авторизация\n\nbearer: http · bearer (обязательно). Персональный API-ключ с префиксом `usk_`.\n\n<a id=\"parameters\"></a>\n\n## Параметры\n\n- path: positionId (string · uuid; обязательно). Идентификатор позиции. Его аккаунт должен принадлежать вызывающему.\n\nТип: string · uuid\n\nformat: uuid\n\n<a id=\"example-curl\"></a>\n\n## Пример · cURL\n\n```bash\ncurl --request GET 'https://api.upscale.trade/positions/{positionId}/history' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer YOUR_API_KEY'\n```\n\n<a id=\"example-javascript\"></a>\n\n## Пример · JavaScript\n\n```javascript\nconst response = await fetch(\"https://api.upscale.trade/positions/{positionId}/history\", {\n  method: \"GET\",\n  headers: {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_API_KEY\"\n  },\n});\nconsole.log(response.status, await response.text());\n```\n\n<a id=\"example-python\"></a>\n\n## Пример · Python\n\n```python\nimport requests\n\nresponse = requests.request(\n    \"GET\",\n    \"https://api.upscale.trade/positions/{positionId}/history\",\n    headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_API_KEY\"},\n    timeout=30,\n)\nprint(response.status_code, response.text)\n```\n\n<a id=\"response-401\"></a>\n\n## Ответ 401\n\n**401**  — Неавторизовано\n\n<a id=\"response-403\"></a>\n\n## Ответ 403\n\n**403**  — Аккаунт принадлежит другому пользователю (`account_access_denied`), или запрос аутентифицирован с помощью API-ключа, тогда как `api_trading` отключён на аккаунте (`api_trading_not_enabled`).\n\n<a id=\"response-404\"></a>\n\n## Ответ 404\n\n**404**  — Нет позиции с этим идентификатором.\n\n<a id=\"response-429\"></a>\n\n## Ответ 429\n\n**429**  — Превышен лимит частоты запросов API-ключа (`api_key_rate_limit_exceeded`). `Retry-After` указывает, когда вернуться; тело содержит бакет (`read` / `write`), окно, которое сработало, его лимит и `retryAt`.\n\n<a id=\"response-default-positioneventresponse\"></a>\n\n## Ответ default · PositionEventResponse\n\n**default** application/json — Ответ\n\nТип: object[]\n\n[]Схема: PositionEventResponse\n\n[]Тип: object\n\n[]Обязательные поля: idx, txId, version, openedAt, lastUpdatedAt, closedAt, type, status, market, trader, size, notional, fraction, margin, pnl, funding, rolloverFee, settlementOraclePrice, fee, feeRate, exchangedQuote, exchangedBase, direction, eventName, pnlInEvent, rawPnlInEvent, profitAdjustmentApplied, holdingTimeMs, feeInEvent, fundingInEvent, rolloverFeeInEvent, executionFeeRate, executionFeeInEvent, executionFee, timestamp, isOnchain, roe, scalpingCoefficient, closeReason, order\n\n[]Типы обязательных полей: idx (string[]; обязательно), txId (string[]; обязательно), version (number; обязательно), openedAt (string · date-time; обязательно), lastUpdatedAt (string · date-time; обязательно), closedAt (string · date-time · nullable; обязательно), type (string · enum; обязательно), status (string · enum; обязательно), market (string · uuid; обязательно), trader (string · uuid; обязательно), size (string · int32; обязательно), notional (string · int32; обязательно), fraction (string · int32; обязательно), margin (string · int32; обязательно), pnl (string · int32 · nullable; обязательно), funding (string · int32 · nullable; обязательно), rolloverFee (string · int32; обязательно), settlementOraclePrice (string · int32; обязательно), fee (string · int32; обязательно), feeRate (string · int32; обязательно), exchangedQuote (string · int32; обязательно), exchangedBase (string · int32; обязательно), direction (string · enum; обязательно), eventName (string · enum; обязательно), pnlInEvent (string · int32; обязательно), rawPnlInEvent (string · int32; обязательно), profitAdjustmentApplied (boolean; обязательно), holdingTimeMs (string[]; обязательно), feeInEvent (string · int32; обязательно), fundingInEvent (string · int32; обязательно), rolloverFeeInEvent (string · int32; обязательно), executionFeeRate (string · int32; обязательно), executionFeeInEvent (string · int32; обязательно), executionFee (string · int32; обязательно), timestamp (string · date-time; обязательно), isOnchain (boolean; обязательно), roe (string · int32; обязательно), scalpingCoefficient (string · int32; обязательно), closeReason (string[]; обязательно), order (object · nullable; обязательно)\n\n- []idx (string[]; обязательно)\n\n[]idx пример: [\n  \"string\"\n]\n\n[]idx.Тип: string[]\n\n[]idx.Идентификатор позиции. То же значение, что и `txId`.\n\n[]idx.[]Тип: string\n\n- []txId (string[]; обязательно)\n\n[]txId пример: [\n  \"string\"\n]\n\n[]txId.Тип: string[]\n\n[]txId.Идентификатор позиции. Сохранён для обратной совместимости, всегда равен `idx`.\n\n[]txId.[]Тип: string\n\n- []version (number; обязательно)\n\n[]version пример: 0\n\n[]version.Тип: number\n\n[]version.Ревизия позиции: увеличивается при каждом событии, применённом к ней.\n\n- []openedAt (string · date-time; обязательно)\n\n[]openedAt пример: 2026-05-01T12:30:00.000Z\n\n[]openedAt.Тип: string · date-time\n\n[]openedAt.Когда позиция была открыта.\n\n[]openedAt.format: date-time\n\n- []lastUpdatedAt (string · date-time; обязательно)\n\n[]lastUpdatedAt пример: 2026-05-01T12:30:00.000Z\n\n[]lastUpdatedAt.Тип: string · date-time\n\n[]lastUpdatedAt.Когда к позиции было применено последнее событие.\n\n[]lastUpdatedAt.format: date-time\n\n- []closedAt (string · date-time · nullable; обязательно)\n\n[]closedAt пример: 2026-05-01T12:30:00.000Z\n\n[]closedAt.Тип: string · date-time · nullable\n\n[]closedAt.Когда позиция была закрыта; null, пока она всё ещё открыта.\n\n[]closedAt.format: date-time\n\n- []type (string · enum; обязательно)\n\n[]type пример: long\n\n[]type.Тип: string · enum\n\n[]type.Направление позиции. То же значение, что и `direction`.\n\n[]type.Допустимые значения: [\"long\",\"short\"]\n\n- []status (string · enum; обязательно)\n\n[]status пример: opened\n\n[]status.Тип: string · enum\n\n[]status.Является ли позиция всё ещё открытой, закрытой трейдером или ликвидированной.\n\n[]status.Допустимые значения: [\"opened\",\"closed\",\"liquidated\"]\n\n- []market (string · uuid; обязательно)\n\n[]market пример: 00000000-0000-4000-8000-000000000000\n\n[]market.Тип: string · uuid\n\n[]market.Рынок, на котором удерживается позиция.\n\n[]market.format: uuid\n\n[]market.pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$\n\n- []trader (string · uuid; обязательно)\n\n[]trader пример: 00000000-0000-4000-8000-000000000000\n\n[]trader.Тип: string · uuid\n\n[]trader.Счёт трейдера, которому принадлежит позиция.\n\n[]trader.format: uuid\n\n[]trader.pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$\n\n- []size (string · int32; обязательно)\n\n[]size пример: 1000000000\n\n[]size.Тип: string · int32\n\n[]size.Размер позиции в единицах базового актива, fp9 в сыром виде.\n\n[]size.format: int32\n\n[]size.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []notional (string · int32; обязательно)\n\n[]notional пример: 1000000000\n\n[]notional.Тип: string · int32\n\n[]notional.Открытый номинал позиции в валюте котировки, fp9 в сыром виде — размер по цене входа.\n\n[]notional.format: int32\n\n[]notional.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []fraction (string · int32; обязательно)\n\n[]fraction пример: 1000000000\n\n[]fraction.Тип: string · int32\n\n[]fraction.Всегда `0`. Сохранено для обратной совместимости.\n\n[]fraction.format: int32\n\n[]fraction.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []margin (string · int32; обязательно)\n\n[]margin пример: 1000000000\n\n[]margin.Тип: string · int32\n\n[]margin.Маржа, в настоящее время обеспечивающая позицию, fp9 в сыром виде. Изменяется вместе с pnl, финансированием и ручными изменениями маржи.\n\n[]margin.format: int32\n\n[]margin.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []pnl (string · int32 · nullable; обязательно)\n\n[]pnl пример: 1000000000\n\n[]pnl.Тип: string · int32 · nullable\n\n[]pnl.Реализованный pnl, накопленный по каждому событию позиции, fp9 в сыром виде.\n\n[]pnl.format: int32\n\n[]pnl.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []funding (string · int32 · nullable; обязательно)\n\n[]funding пример: 1000000000\n\n[]funding.Тип: string · int32 · nullable\n\n[]funding.Финансирование, уплаченное (отрицательное) или полученное (положительное) за всё время существования позиции, fp9 в необработанном виде.\n\n[]funding.format: int32\n\n[]funding.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []rolloverFee (string · int32; обязательно)\n\n[]rolloverFee пример: 1000000000\n\n[]rolloverFee.Тип: string · int32\n\n[]rolloverFee.Всегда `0`. Сохранено для обратной совместимости.\n\n[]rolloverFee.format: int32\n\n[]rolloverFee.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []settlementOraclePrice (string · int32; обязательно)\n\n[]settlementOraclePrice пример: 1000000000\n\n[]settlementOraclePrice.Тип: string · int32\n\n[]settlementOraclePrice.Всегда `1000000000` (1.0). Сохранено для обратной совместимости.\n\n[]settlementOraclePrice.format: int32\n\n[]settlementOraclePrice.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []fee (string · int32; обязательно)\n\n[]fee пример: 1000000000\n\n[]fee.Тип: string · int32\n\n[]fee.Торговые комиссии, взимаемые за всё время существования позиции, fp9 в необработанном виде.\n\n[]fee.format: int32\n\n[]fee.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []feeRate (string · int32; обязательно)\n\n[]feeRate пример: 1000000000\n\n[]feeRate.Тип: string · int32\n\n[]feeRate.Ставка комиссии, применяемая к позиции, fp9 в виде необработанной дроби (`1000000` = 0.1%).\n\n[]feeRate.format: int32\n\n[]feeRate.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []exchangedQuote (string · int32; обязательно)\n\n[]exchangedQuote пример: 1000000000\n\n[]exchangedQuote.Тип: string · int32\n\n[]exchangedQuote.Сумма в котируемой валюте, обмененная в результате последнего события, fp9 в необработанном виде.\n\n[]exchangedQuote.format: int32\n\n[]exchangedQuote.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []exchangedBase (string · int32; обязательно)\n\n[]exchangedBase пример: 1000000000\n\n[]exchangedBase.Тип: string · int32\n\n[]exchangedBase.Сумма в базовой валюте, обмененная в результате последнего события, fp9 в необработанном виде.\n\n[]exchangedBase.format: int32\n\n[]exchangedBase.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []direction (string · enum; обязательно)\n\n[]direction пример: long\n\n[]direction.Тип: string · enum\n\n[]direction.Направление позиции.\n\n[]direction.Допустимые значения: [\"long\",\"short\"]\n\n- []eventName (string · enum; обязательно)\n\n[]eventName пример: addMargin\n\n[]eventName.Тип: string · enum\n\n[]eventName.Тип последнего события, применённого к позиции.\n\n[]eventName.Допустимые значения: [\"addMargin\",\"removeMargin\",\"closePosition\",\"increasePosition\",\"liquidate\",\"forceClose\",\"payFunding\"]\n\n- []pnlInEvent (string · int32; обязательно)\n\n[]pnlInEvent пример: 1000000000\n\n[]pnlInEvent.Тип: string · int32\n\n[]pnlInEvent.Реализованный pnl последнего события, fp9 в сыром виде.\n\n[]pnlInEvent.format: int32\n\n[]pnlInEvent.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []rawPnlInEvent (string · int32; обязательно)\n\n[]rawPnlInEvent пример: 1000000000\n\n[]rawPnlInEvent.Тип: string · int32\n\n[]rawPnlInEvent.Реализованный pnl последнего события до 60-секундной корректировки, fp9 в сыром виде. Отличается от `pnlInEvent` только когда корректировка сработала.\n\n[]rawPnlInEvent.format: int32\n\n[]rawPnlInEvent.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []profitAdjustmentApplied (boolean; обязательно)\n\n[]profitAdjustmentApplied пример: true\n\n[]profitAdjustmentApplied.Тип: boolean\n\n[]profitAdjustmentApplied.Ограничила ли 60-секундная корректировка прибыль последнего события — в течение минуты после открытия или увеличения позиции pnl не может вырасти выше того, каким он был в тот момент.\n\n- []holdingTimeMs (string[]; обязательно)\n\n[]holdingTimeMs пример: [\n  \"string\"\n]\n\n[]holdingTimeMs.Тип: string[]\n\n[]holdingTimeMs.Как долго позиция удерживалась до самого последнего закрытия, в миллисекундах, считая от открытия или последнего увеличения. Null для событий, которые не являются закрытиями.\n\n[]holdingTimeMs.[]Тип: string\n\n- []feeInEvent (string · int32; обязательно)\n\n[]feeInEvent пример: 1000000000\n\n[]feeInEvent.Тип: string · int32\n\n[]feeInEvent.Комиссия, взимаемая по самому последнему событию, fp9 в сыром виде.\n\n[]feeInEvent.format: int32\n\n[]feeInEvent.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []fundingInEvent (string · int32; обязательно)\n\n[]fundingInEvent пример: 1000000000\n\n[]fundingInEvent.Тип: string · int32\n\n[]fundingInEvent.Фандинг, урегулированный самым последним событием, fp9 в сыром виде.\n\n[]fundingInEvent.format: int32\n\n[]fundingInEvent.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []rolloverFeeInEvent (string · int32; обязательно)\n\n[]rolloverFeeInEvent пример: 1000000000\n\n[]rolloverFeeInEvent.Тип: string · int32\n\n[]rolloverFeeInEvent.Всегда `0`. Сохранено для обратной совместимости.\n\n[]rolloverFeeInEvent.format: int32\n\n[]rolloverFeeInEvent.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []executionFeeRate (string · int32; обязательно)\n\n[]executionFeeRate пример: 1000000000\n\n[]executionFeeRate.Тип: string · int32\n\n[]executionFeeRate.Всегда `0`. Сохранено для обратной совместимости.\n\n[]executionFeeRate.format: int32\n\n[]executionFeeRate.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []executionFeeInEvent (string · int32; обязательно)\n\n[]executionFeeInEvent пример: 1000000000\n\n[]executionFeeInEvent.Тип: string · int32\n\n[]executionFeeInEvent.Всегда `0`. Сохранено для обратной совместимости.\n\n[]executionFeeInEvent.format: int32\n\n[]executionFeeInEvent.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []executionFee (string · int32; обязательно)\n\n[]executionFee пример: 1000000000\n\n[]executionFee.Тип: string · int32\n\n[]executionFee.Всегда `0`. Сохранено для обратной совместимости.\n\n[]executionFee.format: int32\n\n[]executionFee.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []timestamp (string · date-time; обязательно)\n\n[]timestamp пример: 2026-05-01T12:30:00.000Z\n\n[]timestamp.Тип: string · date-time\n\n[]timestamp.Временная метка самого последнего события. То же значение, что и `lastUpdatedAt`.\n\n[]timestamp.format: date-time\n\n- []isOnchain (boolean; обязательно)\n\n[]isOnchain пример: true\n\n[]isOnchain.Тип: boolean\n\n[]isOnchain.Всегда `true`. Сохранено для обратной совместимости.\n\n- []roe (string · int32; обязательно)\n\n[]roe пример: 1000000000\n\n[]roe.Тип: string · int32\n\n[]roe.Рентабельность капитала позиции — реализованный pnl относительно внесённой маржи, fp9 в виде необработанной дроби.\n\n[]roe.format: int32\n\n[]roe.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []scalpingCoefficient (string · int32; обязательно)\n\n[]scalpingCoefficient пример: 1000000000\n\n[]scalpingCoefficient.Тип: string · int32\n\n[]scalpingCoefficient.Динамический множитель спреда, применённый к позиции, fp9 в необработанном виде (`1000000000` = 1.0). Выше 1, когда сделка попала в окно рыночного скальпинга.\n\n[]scalpingCoefficient.format: int32\n\n[]scalpingCoefficient.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []closeReason (string[]; обязательно)\n\n[]closeReason пример: [\n  \"string\"\n]\n\n[]closeReason.Тип: string[]\n\n[]closeReason.Почему платформа закрыла позицию (например, `weekly_session_risk_close`). Null для позиций, закрытых трейдером, и для открытых.\n\n[]closeReason.[]Тип: string\n\n- []order (object · nullable; обязательно)\n\n[]order пример: {\n  \"id\": \"00000000-0000-4000-8000-000000000000\",\n  \"txId\": \"string\",\n  \"trader\": \"00000000-0000-4000-8000-000000000000\",\n  \"market\": \"00000000-0000-4000-8000-000000000000\",\n  \"status\": \"active\",\n  \"type\": \"market\",\n  \"direction\": \"long\",\n  \"triggerPrice\": \"1000000000\",\n  \"requestedTriggerPrice\": \"1000000000\",\n  \"stopPrice\": \"1000000000\",\n  \"limitPrice\": \"1000000000\",\n  \"stopTriggerPrice\": \"1000000000\",\n  \"takeTriggerPrice\": \"1000000000\",\n  \"trailingStopActivationPrice\": \"1000000000\",\n  \"trailingStopOffset\": \"1000000000\",\n  \"trailingStopOffsetPercent\": \"1000000000\",\n  \"leverage\": \"1000000000\",\n  \"index\": \"string\",\n  \"positionId\": \"string\",\n  \"parentOrderId\": \"string\",\n  \"expiration\": \"2026-05-01T12:30:00.000Z\",\n  \"amount\": \"1000000000\",\n  \"indexPrice\": \"1000000000\",\n  \"settlementOraclePrice\": \"1000000000\",\n  \"createdAt\": \"2026-05-01T12:30:00.000Z\",\n  \"error\": \"string\",\n  \"realizedPnl\": \"1000000000\",\n  \"rawRealizedPnl\": \"1000000000\",\n  \"profitAdjustmentApplied\": true,\n  \"executedAfterPause\": true,\n  \"sizeMode\": \"quote\",\n  \"baseSize\": \"1000000000\",\n  \"reservedAmount\": \"1000000000\",\n  \"errorCode\": \"string\",\n  \"reason\": \"force_close\"\n}\n\n[]order.Тип: object · nullable\n\n[]order.Обязательные поля: id, txId, trader, market, status, type, direction, triggerPrice, requestedTriggerPrice, stopPrice, limitPrice, stopTriggerPrice, takeTriggerPrice, trailingStopActivationPrice, trailingStopOffset, trailingStopOffsetPercent, leverage, index, positionId, parentOrderId, expiration, amount, indexPrice, settlementOraclePrice, createdAt, error, realizedPnl, rawRealizedPnl, profitAdjustmentApplied, executedAfterPause, sizeMode, baseSize, reservedAmount, errorCode, reason\n\n[]order.Типы обязательных полей: id (string · uuid; обязательно), txId (string; обязательно), trader (string · uuid; обязательно), market (string · uuid; обязательно), status (string · enum; обязательно), type (string · enum; обязательно), direction (string · enum; обязательно), triggerPrice (string · int32; обязательно), requestedTriggerPrice (string · int32 · nullable; обязательно), stopPrice (string · int32; обязательно), limitPrice (string · int32; обязательно), stopTriggerPrice (string · int32; обязательно), takeTriggerPrice (string · int32; обязательно), trailingStopActivationPrice (string · int32; обязательно), trailingStopOffset (string · int32; обязательно), trailingStopOffsetPercent (string · int32; обязательно), leverage (string · int32 · nullable; обязательно), index (string; обязательно), positionId (string · nullable; обязательно), parentOrderId (string · nullable; обязательно), expiration (string · date-time · nullable; обязательно), amount (string · int32; обязательно), indexPrice (string · int32 · nullable; обязательно), settlementOraclePrice (string · int32; обязательно), createdAt (string · date-time; обязательно), error (string · nullable; обязательно), realizedPnl (string · int32 · nullable; обязательно), rawRealizedPnl (string · int32 · nullable; обязательно), profitAdjustmentApplied (boolean; обязательно), executedAfterPause (boolean; обязательно), sizeMode (string · enum; обязательно), baseSize (string · int32 · nullable; обязательно), reservedAmount (string · int32 · nullable; обязательно), errorCode (string · nullable; обязательно), reason (string · enum · nullable; обязательно)\n\n[]order.Ордер, создавший это событие; null для событий, которые платформа инициировала самостоятельно, таких как финансирование или принудительное закрытие.\n\n- []order.id (string · uuid; обязательно)\n\n[]order.id пример: 00000000-0000-4000-8000-000000000000\n\n[]order.id.Тип: string · uuid\n\n[]order.id.Идентификатор ордера.\n\n[]order.id.format: uuid\n\n[]order.id.pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$\n\n- []order.txId (string; обязательно)\n\n[]order.txId пример: string\n\n[]order.txId.Тип: string\n\n[]order.txId.Идентификатор ордера. Сохранён для обратной совместимости, всегда равен `id`.\n\n- []order.trader (string · uuid; обязательно)\n\n[]order.trader пример: 00000000-0000-4000-8000-000000000000\n\n[]order.trader.Тип: string · uuid\n\n[]order.trader.Аккаунт трейдера, которому принадлежит ордер.\n\n[]order.trader.format: uuid\n\n[]order.trader.pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$\n\n- []order.market (string · uuid; обязательно)\n\n[]order.market пример: 00000000-0000-4000-8000-000000000000\n\n[]order.market.Тип: string · uuid\n\n[]order.market.Рынок, на котором размещён ордер.\n\n[]order.market.format: uuid\n\n[]order.market.pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$\n\n- []order.status (string · enum; обязательно)\n\n[]order.status пример: active\n\n[]order.status.Тип: string · enum\n\n[]order.status.Состояние жизненного цикла: `active`, пока он ожидает, `executed` после исполнения, `canceled` при отмене трейдером или платформой, `canceled_by_update` при замене в результате редактирования, `canceled_by_position` когда позиция, к которой он был привязан, исчезла, `canceled_by_error` при неудачном исполнении — см. `errorCode`.\n\n[]order.status.Допустимые значения: [\"active\",\"canceled\",\"canceled_by_update\",\"canceled_by_error\",\"canceled_by_position\",\"executed\"]\n\n- []order.type (string · enum; обязательно)\n\n[]order.type пример: market\n\n[]order.type.Тип: string · enum\n\n[]order.type.Тип ордера. `liquidation` обозначает ордер, который движок выставил сам.\n\n[]order.type.Допустимые значения: [\"market\",\"limit\",\"stop\",\"trailing_stop\",\"take\",\"stop_limit\",\"stop_market\",\"liquidation\"]\n\n- []order.direction (string · enum; обязательно)\n\n[]order.direction пример: long\n\n[]order.direction.Тип: string · enum\n\n[]order.direction.Направление ордера.\n\n[]order.direction.Допустимые значения: [\"long\",\"short\"]\n\n- []order.triggerPrice (string · int32; обязательно)\n\n[]order.triggerPrice пример: 1000000000\n\n[]order.triggerPrice.Тип: string · int32\n\n[]order.triggerPrice.Цена, при которой срабатывает ордер, fp9 в необработанном виде. `0`, когда ордер не имеет триггера.\n\n[]order.triggerPrice.format: int32\n\n[]order.triggerPrice.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []order.requestedTriggerPrice (string · int32 · nullable; обязательно)\n\n[]order.requestedTriggerPrice пример: 1000000000\n\n[]order.requestedTriggerPrice.Тип: string · int32 · nullable\n\n[]order.requestedTriggerPrice.Цена триггера, как запрошено, до того как движок вытолкнул её до минимального стоп-расстояния, fp9 в исходном виде. Null, когда запрошенная цена была оставлена как есть.\n\n[]order.requestedTriggerPrice.format: int32\n\n[]order.requestedTriggerPrice.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []order.stopPrice (string · int32; обязательно)\n\n[]order.stopPrice пример: 1000000000\n\n[]order.stopPrice.Тип: string · int32\n\n[]order.stopPrice.Цена триггера ордера `stop_market` / `stop_limit`, fp9 в исходном виде; `0` для любого другого типа.\n\n[]order.stopPrice.format: int32\n\n[]order.stopPrice.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []order.limitPrice (string · int32; обязательно)\n\n[]order.limitPrice пример: 1000000000\n\n[]order.limitPrice.Тип: string · int32\n\n[]order.limitPrice.Цена, по которой ордер размещается при срабатывании, fp9 в исходном виде: цена стоп-лимит, с возвратом к цене триггера.\n\n[]order.limitPrice.format: int32\n\n[]order.limitPrice.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []order.stopTriggerPrice (string · int32; обязательно)\n\n[]order.stopTriggerPrice пример: 1000000000\n\n[]order.stopTriggerPrice.Тип: string · int32\n\n[]order.stopTriggerPrice.Стоп-лосс, привязанный к ордеру, fp9 в исходном виде. `0`, если он не привязан.\n\n[]order.stopTriggerPrice.format: int32\n\n[]order.stopTriggerPrice.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []order.takeTriggerPrice (string · int32; обязательно)\n\n[]order.takeTriggerPrice пример: 1000000000\n\n[]order.takeTriggerPrice.Тип: string · int32\n\n[]order.takeTriggerPrice.Тейк-профит, привязанный к ордеру, fp9 в исходном виде. `0`, если он не привязан.\n\n[]order.takeTriggerPrice.format: int32\n\n[]order.takeTriggerPrice.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []order.trailingStopActivationPrice (string · int32; обязательно)\n\n[]order.trailingStopActivationPrice пример: 1000000000\n\n[]order.trailingStopActivationPrice.Тип: string · int32\n\n[]order.trailingStopActivationPrice.Цена, при которой трейлинг-стоп начинает следовать, fp9 в сыром виде. `0`, когда он следует с момента создания.\n\n[]order.trailingStopActivationPrice.format: int32\n\n[]order.trailingStopActivationPrice.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []order.trailingStopOffset (string · int32; обязательно)\n\n[]order.trailingStopOffset пример: 1000000000\n\n[]order.trailingStopOffset.Тип: string · int32\n\n[]order.trailingStopOffset.Дистанция трейлинга как абсолютная сумма в котируемой валюте, fp9 в сыром виде. `0`, когда дистанция задана в процентах.\n\n[]order.trailingStopOffset.format: int32\n\n[]order.trailingStopOffset.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []order.trailingStopOffsetPercent (string · int32; обязательно)\n\n[]order.trailingStopOffsetPercent пример: 1000000000\n\n[]order.trailingStopOffsetPercent.Тип: string · int32\n\n[]order.trailingStopOffsetPercent.Дистанция трейлинга как доля цены, fp9 в сыром виде. `0`, когда дистанция абсолютная.\n\n[]order.trailingStopOffsetPercent.format: int32\n\n[]order.trailingStopOffsetPercent.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []order.leverage (string · int32 · nullable; обязательно)\n\n[]order.leverage пример: 1000000000\n\n[]order.leverage.Тип: string · int32 · nullable\n\n[]order.leverage.Кредитное плечо ордера, fp9 в сыром виде. Null для ордеров на закрытие, которые наследуют кредитное плечо позиции.\n\n[]order.leverage.format: int32\n\n[]order.leverage.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []order.index (string; обязательно)\n\n[]order.index пример: string\n\n[]order.index.Тип: string\n\n[]order.index.Идентификатор ордера. Сохранён для обратной совместимости, всегда равен `id`.\n\n- []order.positionId (string · nullable; обязательно)\n\n[]order.positionId пример: string\n\n[]order.positionId.Тип: string · nullable\n\n[]order.positionId.Позиция, к которой привязан ордер на закрытие. Null для ордеров, которые открывают или увеличивают позицию.\n\n- []order.parentOrderId (string · nullable; обязательно)\n\n[]order.parentOrderId пример: string\n\n[]order.parentOrderId.Тип: string · nullable\n\n[]order.parentOrderId.Ордер, из которого был порождён этот: стоп или тейк, созданный из `stopTriggerPrice` / `takeTriggerPrice`, или лимитный ордер, в который превратился `stop_limit`. Null, когда ордер был отправлен напрямую.\n\n- []order.expiration (string · date-time · nullable; обязательно)\n\n[]order.expiration пример: 2026-05-01T12:30:00.000Z\n\n[]order.expiration.Тип: string · date-time · nullable\n\n[]order.expiration.Всегда null. Сохранено для обратной совместимости — ордера не истекают сами по себе.\n\n[]order.expiration.format: date-time\n\n- []order.amount (string · int32; обязательно)\n\n[]order.amount пример: 1000000000\n\n[]order.amount.Тип: string · int32\n\n[]order.amount.Размер ордера, fp9 в сыром виде, в единице, которую использует его класс: для ордера на увеличение — сумма в котируемой валюте — резерв, пока он ожидает, и то, что он фактически потратил после исполнения; для ордера на закрытие (`stop`, `take`, `trailing_stop`) — размер базового актива, который он закрывает, как было запрошено при создании.\n\n[]order.amount.format: int32\n\n[]order.amount.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []order.indexPrice (string · int32 · nullable; обязательно)\n\n[]order.indexPrice пример: 1000000000\n\n[]order.indexPrice.Тип: string · int32 · nullable\n\n[]order.indexPrice.Цена индекса, по которой был исполнен ордер, fp9 в сыром виде. Null, пока ордер не исполнен.\n\n[]order.indexPrice.format: int32\n\n[]order.indexPrice.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []order.settlementOraclePrice (string · int32; обязательно)\n\n[]order.settlementOraclePrice пример: 1000000000\n\n[]order.settlementOraclePrice.Тип: string · int32\n\n[]order.settlementOraclePrice.Всегда `1000000000` (1.0). Сохранено для обратной совместимости.\n\n[]order.settlementOraclePrice.format: int32\n\n[]order.settlementOraclePrice.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []order.createdAt (string · date-time; обязательно)\n\n[]order.createdAt пример: 2026-05-01T12:30:00.000Z\n\n[]order.createdAt.Тип: string · date-time\n\n[]order.createdAt.Когда ордер был принят.\n\n[]order.createdAt.format: date-time\n\n- []order.error (string · nullable; обязательно)\n\n[]order.error пример: string\n\n[]order.error.Тип: string · nullable\n\n[]order.error.Всегда null. Сохранён для обратной совместимости — используйте `errorCode`.\n\n- []order.realizedPnl (string · int32 · nullable; обязательно)\n\n[]order.realizedPnl пример: 1000000000\n\n[]order.realizedPnl.Тип: string · int32 · nullable\n\n[]order.realizedPnl.Pnl, реализованный этим ордером, fp9 в сыром виде. Устанавливается только для исполненного ордера на закрытие; null, пока ордер в ожидании, и для ордеров, которые открывают или увеличивают позицию.\n\n[]order.realizedPnl.format: int32\n\n[]order.realizedPnl.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []order.rawRealizedPnl (string · int32 · nullable; обязательно)\n\n[]order.rawRealizedPnl пример: 1000000000\n\n[]order.rawRealizedPnl.Тип: string · int32 · nullable\n\n[]order.rawRealizedPnl.Реализованный pnl до 60-секундной корректировки, fp9 в сыром виде. Отличается от `realizedPnl` только тогда, когда корректировка сработала.\n\n[]order.rawRealizedPnl.format: int32\n\n[]order.rawRealizedPnl.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []order.profitAdjustmentApplied (boolean; обязательно)\n\n[]order.profitAdjustmentApplied пример: true\n\n[]order.profitAdjustmentApplied.Тип: boolean\n\n[]order.profitAdjustmentApplied.Ограничила ли 60-секундная корректировка прибыль этого ордера — в течение минуты после открытия или увеличения позиции pnl позиции не может вырасти выше значения, которое было в тот момент.\n\n- []order.executedAfterPause (boolean; обязательно)\n\n[]order.executedAfterPause пример: true\n\n[]order.executedAfterPause.Тип: boolean\n\n[]order.executedAfterPause.Был ли ордер исполнен после рыночной паузы. Не задаётся текущим движком — всегда `false`.\n\n- []order.sizeMode (string · enum; обязательно)\n\n[]order.sizeMode пример: quote\n\n[]order.sizeMode.Тип: string · enum\n\n[]order.sizeMode.Как был выражен размер при создании: `quote` задаёт размер ордера по `amount`, `base` задаёт его по `baseSize`.\n\n[]order.sizeMode.Допустимые значения: [\"quote\",\"base\"]\n\n- []order.baseSize (string · int32 · nullable; обязательно)\n\n[]order.baseSize пример: 1000000000\n\n[]order.baseSize.Тип: string · int32 · nullable\n\n[]order.baseSize.Размер ордера в единицах базового актива, fp9 в сыром виде. Null для ордеров с размером `quote`.\n\n[]order.baseSize.format: int32\n\n[]order.baseSize.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []order.reservedAmount (string · int32 · nullable; обязательно)\n\n[]order.reservedAmount пример: 1000000000\n\n[]order.reservedAmount.Тип: string · int32 · nullable\n\n[]order.reservedAmount.Сумма в котируемой валюте, зарезервированная при создании ордера с sizeMode=base, fp9 в сыром виде. Остаётся равной исходному резерву после исполнения, тогда как `amount` перезаписывается на потраченную сумму. Null для ордеров с размером `quote`, где `amount` — это резерв.\n\n[]order.reservedAmount.format: int32\n\n[]order.reservedAmount.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- []order.errorCode (string · nullable; обязательно)\n\n[]order.errorCode пример: string\n\n[]order.errorCode.Тип: string · nullable\n\n[]order.errorCode.Почему исполнение не удалось, задаётся вместе со статусом `canceled_by_error` — например, `insufficient_reserve_at_execution`, `order_below_min_notional`, `order_exceeds_market_depth` или `slippage_tolerance`. В остальных случаях Null.\n\n- []order.reason (string · enum · nullable; обязательно)\n\n[]order.reason пример: force_close\n\n[]order.reason.Тип: string · enum · nullable\n\n[]order.reason.Почему платформа сама отменила ордер, например `force_close` или `weekly_session_risk_close`. Null для отмен, инициированных трейдером.\n\n[]order.reason.Допустимые значения: [\"force_close\",\"stop_accounts_fail\",\"stop_accounts_freeze\",\"stop_accounts_promote\",\"stop_accounts_manual\",\"weekly_session_risk_close\",null]\n\nПример\n\n\n\n```json\n[\n  {\n    \"idx\": [\n      \"string\"\n    ],\n    \"txId\": [\n      \"string\"\n    ],\n    \"version\": 0,\n    \"openedAt\": \"2026-05-01T12:30:00.000Z\",\n    \"lastUpdatedAt\": \"2026-05-01T12:30:00.000Z\",\n    \"closedAt\": \"2026-05-01T12:30:00.000Z\",\n    \"type\": \"long\",\n    \"status\": \"opened\",\n    \"market\": \"00000000-0000-4000-8000-000000000000\",\n    \"trader\": \"00000000-0000-4000-8000-000000000000\",\n    \"size\": \"1000000000\",\n    \"notional\": \"1000000000\",\n    \"fraction\": \"1000000000\",\n    \"margin\": \"1000000000\",\n    \"pnl\": \"1000000000\",\n    \"funding\": \"1000000000\",\n    \"rolloverFee\": \"1000000000\",\n    \"settlementOraclePrice\": \"1000000000\",\n    \"fee\": \"1000000000\",\n    \"feeRate\": \"1000000000\",\n    \"exchangedQuote\": \"1000000000\",\n    \"exchangedBase\": \"1000000000\",\n    \"direction\": \"long\",\n    \"eventName\": \"addMargin\",\n    \"pnlInEvent\": \"1000000000\",\n    \"rawPnlInEvent\": \"1000000000\",\n    \"profitAdjustmentApplied\": true,\n    \"holdingTimeMs\": [\n      \"string\"\n    ],\n    \"feeInEvent\": \"1000000000\",\n    \"fundingInEvent\": \"1000000000\",\n    \"rolloverFeeInEvent\": \"1000000000\",\n    \"executionFeeRate\": \"1000000000\",\n    \"executionFeeInEvent\": \"1000000000\",\n    \"executionFee\": \"1000000000\",\n    \"timestamp\": \"2026-05-01T12:30:00.000Z\",\n    \"isOnchain\": true,\n    \"roe\": \"1000000000\",\n    \"scalpingCoefficient\": \"1000000000\",\n    \"closeReason\": [\n      \"string\"\n    ],\n    \"order\": {\n      \"id\": \"00000000-0000-4000-8000-000000000000\",\n      \"txId\": \"string\",\n      \"trader\": \"00000000-0000-4000-8000-000000000000\",\n      \"market\": \"00000000-0000-4000-8000-000000000000\",\n      \"status\": \"active\",\n      \"type\": \"market\",\n      \"direction\": \"long\",\n      \"triggerPrice\": \"1000000000\",\n      \"requestedTriggerPrice\": \"1000000000\",\n      \"stopPrice\": \"1000000000\",\n      \"limitPrice\": \"1000000000\",\n      \"stopTriggerPrice\": \"1000000000\",\n      \"takeTriggerPrice\": \"1000000000\",\n      \"trailingStopActivationPrice\": \"1000000000\",\n      \"trailingStopOffset\": \"1000000000\",\n      \"trailingStopOffsetPercent\": \"1000000000\",\n      \"leverage\": \"1000000000\",\n      \"index\": \"string\",\n      \"positionId\": \"string\",\n      \"parentOrderId\": \"string\",\n      \"expiration\": \"2026-05-01T12:30:00.000Z\",\n      \"amount\": \"1000000000\",\n      \"indexPrice\": \"1000000000\",\n      \"settlementOraclePrice\": \"1000000000\",\n      \"createdAt\": \"2026-05-01T12:30:00.000Z\",\n      \"error\": \"string\",\n      \"realizedPnl\": \"1000000000\",\n      \"rawRealizedPnl\": \"1000000000\",\n      \"profitAdjustmentApplied\": true,\n      \"executedAfterPause\": true,\n      \"sizeMode\": \"quote\",\n      \"baseSize\": \"1000000000\",\n      \"reservedAmount\": \"1000000000\",\n      \"errorCode\": \"string\",\n      \"reason\": \"force_close\"\n    }\n  }\n]\n```","text":"Получить все события по позиции Что произошло с одной позицией, сначала самые новые: увеличения, частичные и полные закрытия, ликвидация, принудительное закрытие, изменения маржи. - Платежи по финансированию исключены из этого потока. - Принудительное закрытие несёт за собой рыночное событие, в котором и находится причина этого закрытия. GET /positions/{positionId}/history Trading positionId Идентификатор позиции. Его аккаунт должен принадлежать вызывающему. string · uuid 401 Неавторизовано 403 Аккаунт принадлежит другому пользователю (`account_access_denied`), или запрос аутентифицирован с помощью API-ключа, тогда как `api_trading` отключён на аккаунте (`api_trading_not_enabled`). 404 Нет позиции с этим идентификатором. 429 Превышен лимит частоты запросов API-ключа (`api_key_rate_limit_exceeded`). `Retry-After` указывает, когда вернуться; тело содержит бакет (`read` / `write`), окно, которое сработало, его лимит и `retryAt`. default Ответ","api":{"title":"Публичный API Upscale","version":"d796ac9","documentation":"https://docs.upscale.trade/ru/developers","playgroundServer":"https://api.upscale.trade"}}