[CL-GRID-SYMBOL-COVERS] Активная разгрузка при symbol-блоке (флаг, default OFF) #314

Merged
andrei merged 1 commit from feature/claude-grid-symbol-reduce-covers into master 2026-06-10 18:23:49 +00:00
Owner

Что сделано

  • _maybe_place_symbol_block_covers(...): при блоке per-symbol risk-gate опционально ставит reduce-only covers (реюз батл-тестед _place_missing_reduce_only_covers из портфельной ветки), пишет запись цикла (symbol_block_covers), fail-soft на любой ошибке.
  • Флаг ARNOLD_GRID_SYMBOL_REDUCE_COVERS в config (default OFF) — код в проде, поведение неактивно до явного включения.

Зачем

Все 5 символов 71–83% exposure при лимите 50%: разгрузка сейчас только пассивная (существующие sell'ы/TP). Активные reduce-only covers ускорят unwind — но размещение ордеров = изменение торгового поведения, поэтому включение остаётся за CEO (env на сервере).

План тестирования

  • 4 новых теста: flag-off noop; flag-on → covers+запись+save_state; пустые covers → False; исключение проглатывается с WARNING.
  • Регрессия grid-области — 103 passed. ruff clean.
  • После merge+deploy поведение прода НЕ меняется (флаг OFF). Включение: ARNOLD_GRID_SYMBOL_REDUCE_COVERS=1 + рестарт демонов; ожидаемый лог Placed N reduce-only covers ... while symbol exposure blocked.

Где могу ошибаться

  • Covers по entry±PROFIT_PCT — при сильном уходе цены лимитки могут долго не исполняться (идентично портфельной ветке).
  • last_rebalance обновляется и в covers-ветке — намеренно, чтобы не молотить covers каждый цикл; idempotency механизма дополнительно защищает.
## Что сделано - `_maybe_place_symbol_block_covers(...)`: при блоке per-symbol risk-gate опционально ставит reduce-only covers (реюз батл-тестед `_place_missing_reduce_only_covers` из портфельной ветки), пишет запись цикла (`symbol_block_covers`), fail-soft на любой ошибке. - Флаг `ARNOLD_GRID_SYMBOL_REDUCE_COVERS` в config (**default OFF**) — код в проде, поведение неактивно до явного включения. ## Зачем Все 5 символов 71–83% exposure при лимите 50%: разгрузка сейчас только пассивная (существующие sell'ы/TP). Активные reduce-only covers ускорят unwind — но размещение ордеров = изменение торгового поведения, поэтому включение остаётся за CEO (env на сервере). ## План тестирования - 4 новых теста: flag-off noop; flag-on → covers+запись+save_state; пустые covers → False; исключение проглатывается с WARNING. - Регрессия grid-области — 103 passed. ruff clean. - После merge+deploy поведение прода НЕ меняется (флаг OFF). Включение: `ARNOLD_GRID_SYMBOL_REDUCE_COVERS=1` + рестарт демонов; ожидаемый лог `Placed N reduce-only covers ... while symbol exposure blocked`. ## Где могу ошибаться - Covers по entry±PROFIT_PCT — при сильном уходе цены лимитки могут долго не исполняться (идентично портфельной ветке). - `last_rebalance` обновляется и в covers-ветке — намеренно, чтобы не молотить covers каждый цикл; idempotency механизма дополнительно защищает.
[CL-GRID-SYMBOL-COVERS] reduce-only covers при symbol-блоке risk-gate (флаг, default OFF)
All checks were successful
Arnold Forgejo CI / secret-scan (pull_request) Successful in 3s
Forgejo Smoke Test / Smoke (pull_request) Successful in 2s
Arnold Forgejo CI / frontend-audit (pull_request) Successful in 10s
Arnold Forgejo CI / backend-tests (pull_request) Successful in 4m34s
ddbd94d2a2
Все 5 grid-символов на 71-83% exposure при лимите 50%: гейт корректно
блокирует добавление, но разгрузка идёт только через существующие sell'ы.
Портфельная ветка уже умеет активную разгрузку reduce-only cover'ами -
расширяю тот же батл-тестед механизм (_place_missing_reduce_only_covers)
на per-symbol блок.

СТРОГО за флагом ARNOLD_GRID_SYMBOL_REDUCE_COVERS (default OFF): размещение
ордеров = изменение торгового поведения, включение остаётся решением CEO.
reduce-only физически не может нарастить позицию. Fail-soft на ошибках.

Тесты: 4 новых, область grid 103 passed, ruff clean.
andrei merged commit 4e3b09639a into master 2026-06-10 18:23:49 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
europa-tech-srl/arnold-trader-app!314
No description provided.