---
name: investpilot-scan-llm-queue-starves-long
description: "«Бот молчит про акции/LONG» — дело не в порогах, а в очереди на LLM-разбор: сотни шортов вытесняют редкий LONG из лимита scan_llm_cap; плюс интрадей и расширение стопов проверены и отклонены по цифрам"
metadata: 
  node_type: memory
  type: project
  originSessionId: 6f344612-b945-4107-b457-8ad2163cd988
  modified: 2026-08-07T07:08:29.043Z
---

Жалоба «[[investpilot]] не предлагает коротких сделок и молчит про акции»
(2026-08-07) разложилась на три гипотезы. Проверены бэктестом, внедрена одна.

**Реальный корень — ОЧЕРЕДЬ, а не пороги.** `scan_llm_cap = 12` мест на
LLM-разбор делили 245 SHORT-планов против 2-4 LONG (в медвежьем рынке тренд
«вверх» был лишь у 2 бумаг из 45). Редкий LONG не попадал в топ-12 по
`scan_score` и до панели не доходил вовсе — в отчёте это выглядело как
«ИИ-панель не успела проголосовать». Фикс: `scan_llm_long_reserve = 4`
через чистую `analysis/scoring.llm_budget_split()`; резерв не больше числа
фактических LONG-кандидатов, иначе в дни без LONG бюджет пропадал бы.
Пороги качества и D42 НЕ тронуты — меняется, кого пускают К панели, а не
кого панель пропускает в сигнал.

**Диагностический приём:** сравнивать формулировку по ОДНОМУ тикеру до/после.
CBOM: «панель не успела проголосовать (лимит скана)» → «панель проголосовала
не входить». Второе — честный отказ по качеству, первое — потеря в очереди.
Это разные вещи, и в отчёте они соседние строки.

**Отклонено по цифрам (не повторять как «идеи»):**
- **Ослабление `min_mom_3m`** (10→8→6→4): сумма +4.6%, но PF 1.70→1.54, а
  LONG-ветка при 6/4 уходит под гейт 1.3. И порог не был ограничителем —
  обе растущие бумаги проходили его с запасом. Дефицит LONG = свойство
  падающего рынка (в бэктесте 2020-2026 LONG это 75% всех сделок).
- **Возврат интрадея**: свип полной решётки (288 комбинаций vol_spike×RR×
  stop_atr, часовки, 8-12 тыс. сделок на точку) → **PF_max 1.08, точек с
  PF≥1.3 ноль**. Пробойный интрадей на MOEX структурно убыточен. Живые 35
  бумажных сделок это же и показывали: винрейт 20%, 71% выходов по стопу.
- **Расширение стопов** (гипотеза из совпадения «71% выходов по стопу» в
  интрадее и свинге, урок lessons id=186): на часовках работает
  (stop_atr 1.0→2.5 даёт PF 0.99→1.07), на свинге `atr_stop_mult` 2.0→3.5
  даёт PF 1.70→1.94, НО сумма падает 1425%→1195% (сделок 1141→763).
  Классическая ловушка «PF накручивается срезанием объёма» — см. железные
  уроки скилла [[investpilot-calibrate]].

Инструмент свипа ширины стопа: `scripts/sweep_stop_swing.py` (monkeypatch
`atr_stop_mult`, который захардкожен в `build_plan` и не выведен в Settings).

Полный разбор — Obsidian `Projects/investpilot/` D56 + Changelog 2026-08-07.
