RiskPolicy (модуль 13) решает, что можно открыть. Kill-switch решает, что делать, когда книга уже проседает. Деск не использует один грубый «выключатель» — он применяет лестницу из двух уровней (ADR-034 + ADR-048), потому что просадка 5% и просадка 15% требуют разного ответа.
Лестница (kill_switch.py)
| Tier | Порог просадки | Эффект |
|---|---|---|
| NONE | < 5% | Никаких действий |
| SOFT_DERISK | [5%, 10%) | De-risk: halt new / no INCREASE (hold + reduce OK), edge-triggered WARNING. НЕ ликвидирует. |
| HARD_KILL | ≥ 10% (inclusive) | Полный kill → всё в кэш { cash: 1.0 } |
Почему 5% не ликвидирует
Комментарий прямо в коде объясняет логику SOFT-уровня: «a 5% drawdown is most often a
recoverable depeg/vol wobble; panic-liquidating it crystallises a loss that would otherwise
mean-revert». На стейбл-книге просадка 5% — обычно временная (depeg-wobble, волатильность), и
паническая распродажа превратила бы временный минус в окончательный убыток.
Поэтому SOFT останавливает рост экспозиции, но держит. А 10% на стейблах — это уже сигнал реального
коллапса протокола, и полный выход в кэш корректен.
Поиграй: KillSwitchLadder
Двигай просадку и смотри, в какой tier попадаешь и какой эффект сработает. Обрати внимание на
точные границы 5.0% и 10.0%.
Лестница kill-switch (ADR-048)Двигай просадку (drawdown) от пика. Два уровня реакции: мягкий de-risk при ≥5%, жёсткий all-cash при ≥10%. Границы inclusive.
Просадка от пика (evidenced)−11.0%NONESOFT_DERISK ≥5%HARD_KILL ≥10%Текущий уровеньHARD_KILL — жёсткий killЭффектПолный kill → всё в кэш {"cash": 1.0}. 10% просадки на стейбл-книге = реальный коллапс протокола, не шум. approved=False нельзя переопределить. Проверка знанийВопрос 1 из 4Что делает SOFT_DERISK tier при просадке в диапазоне [5%, 10%)?