> For the complete documentation index, see [llms.txt](https://docs.aftermath.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aftermath.finance/ru/bessrochnye-fyuchersy/architecture/margin.md).

# Маржа

Система маржи Aftermath Perpetuals обеспечивает платёжеспособность протокола и задаёт требования к обеспечению для открытия и поддержания позиций.

Маржа — это обеспечение, которое трейдер вносит для покрытия позиций и возможных убытков. В Aftermath маржа обеспечивает ваше кредитное плечо. Если стоимость аккаунта опускается ниже требуемого уровня маржи, ваши позиции могут быть ликвидированы.

## Формула коэффициента маржи

Коэффициент маржи — основной показатель здоровья аккаунта. Он рассчитывается как отношение **стоимости аккаунта** (капитала) к **экспозиции позиции** (с учётом `MaxNetBase`).

$$
{\small
\begin{align\*}
MarginRatio(p) &= \frac{
Collateral(p) \cdot CollateralPrice + UnrealizedFundings(p) + Pnl(p)\
}{
MaxNetBase(p) \cdot BasePrice
}
\end{align\*}
}%
$$

#### Что такое MaxNetBase

Экспозиция позиции определяется величиной `MaxNetBase`.

$$
\small MaxNetBase(p) = \max { | BaseAmount(p) + PendingBids(p) | , | BaseAmount(p) - PendingAsks(p) | }
$$

{% hint style="info" %}
𝑀𝑎𝑥𝑁𝑒𝑡𝐵𝑎𝑠𝑒(𝑝) обосновывается так: вместо |𝐵𝑎𝑠𝑒𝐴𝑚𝑜𝑢𝑛𝑡(𝑝) + 𝑃𝑒𝑛𝑑𝑖𝑛𝑔𝐵𝑖𝑑𝑠(𝑝) − 𝑃𝑒𝑛𝑑𝑖𝑛𝑔𝐴𝑠𝑘𝑠(𝑝)| мы берём указанный выше максимум, поскольку иначе пользователь мог бы выставлять эквивалентные биды и аски без увеличения плеча, искусственно увеличивая глубину стакана.
{% endhint %}

## Коэффициенты начальной и поддерживающей маржи (IMR/MMR)

**IMR** (коэффициент начальной маржи) и **MMR** (коэффициент поддерживающей маржи) — параметры риска, которые задаются при создании рынка. Они обратны кредитному плечу:

* **IMR (начальная):** определяет максимальное плечо для **открытия** позиции.
  * *Пример:* IMR **0.1** допускает максимальное плечо **10x** ($1 / 0.1$).
* **MMR (поддерживающая):** определяет порог ликвидации.
  * *Пример:* MMR **0.05** означает, что позиция будет ликвидирована, как только её эффективное плечо достигнет **20x** ($1 / 0.05$).

#### Управление параметрами

Владелец `AdminCapability` может изменять эти параметры в зависимости от рыночных условий. Однако ради безопасности пользователей:

1. Сначала смарт-контракт сохраняет новые значения ончейн.
2. Обновление вступает в силу **с задержкой** — только после достаточного периода ожидания (несколько дней), чтобы у пользователей было время скорректировать позиции.

## Требования к марже позиции

Абсолютная маржа, необходимая для конкретной позиции, рассчитывается так:

$$
{\small
\begin{align}
MarginRequirements(p) &= MaxNetBase(p) \cdot BasePrice \cdot IMR\
\end{align}
}%
$$

#### Проверка платёжеспособности

Чтобы убедиться, что позиция платёжеспособна (то есть коэффициент маржи в норме), протокол проверяет, что коэффициент маржи больше IMR. Это равносильно проверке того, что ваш **капитал** покрывает **требование**:

$$
{\small
\begin{align}
MarginRatio(p) &> IMR
\\
&\equiv
\\
\frac{
Coll(p) \cdot CollPrice + UF(p) + Pnl(p)\
}{
MaxNetBase(p) \cdot BasePrice
} &>
\frac{
MaxNetBase(p) \cdot BasePrice \cdot IMR\
}{
MaxNetBase(p) \cdot BasePrice
}
\\
&\equiv
\\
\underbrace{
Coll(p) \cdot CollPrice + UF(p) + Pnl(p)
}*{\text{margin}(p)}
&>
\underbrace{
MaxNetBase(p) \cdot BasePrice \cdot IMR
}*{\text{margin\_requirements}(p)}
\end{align}
}%
$$

{% hint style="info" %}
Чтобы получить ***требования к поддерживающей марже*** позиции, замените 𝐼𝑀𝑅 на 𝑀𝑀𝑅 .
{% endhint %}
