# GOAL: стратегии на 5-минутных свечах — готовые тексты для Павла Всё подготовлено 28.09.2026. План и разведка — в `PLAN.md` рядом. Гейты проверены в обе стороны (пустая папка → падают с перечислением этапов; макет → «Ф1/Ф2/Ф3 OK»), макет удалён. ## 1. Цель — вставить ОДНИМ сообщением (текст в goal_text.txt, 3400 знаков) ``` /goal Стратегии на 5-минутных свечах Bybit: найти кандидатов с положительным матожиданием после комиссий или доказать с цифрами, что их нет verify: 1) Данные 5м (data/5m/_5m.csv без шапки: ts,open,high,low,close,volume; контракты — PLAN.md п.6) по >=100 USDT-перпам: >=15 млн баров, >=40 пар с историей >=12 мес, плюс манифест и reports/validate_5m.json (dup=0, медиана coverage >=0.95); вывод валидатора вставь в ответ. 2) reports/stand_reconcile.json: движок стенда сверен с прод-движком TON-бота на 30м барах из ресемпла 5м (>=4 пары), расхождение PF <=5%; вывод в ответ. 3) reports/costs.json + reports/COSTS.md: средние |r5м| и |r1ч|, комиссии 0,055% и 0,02% на ногу, >=5 сценариев p*; вывод в ответ. 4) Проверено >=12 методов из банка PLAN.md п.4, правила каждого зафиксированы ДО прогона: results/methods/ + сводка results/summary_5m.csv (EV всей выборки и OOS, t, плацебо, рандом, Sharpe, просадка, по годам). 5) Контроль честности: плацебо-сдвиг, рандом-вход, альфа против «купил и держу», издержки тейкер и мейкер, block-bootstrap, поправка Бонферрони (reports/count_tests.json), разбивка по годам. 6) Кандидат принят только при EV>0 после тейкерской комиссии на OOS, плацебо ~0 (|медиана| <3 б.п.), |t| >= порога Бонферрони и плюсе в >=2 из 3 лет; иначе метод идёт в docs/REJECTED.md (>=12 строк таблицы с цифрами). 7) reports/VERDICT.md: первая строка «ВЕРДИКТ: проверено N, положительное матожидание у K» либо «ОТРИЦАТЕЛЬНЫЙ РЕЗУЛЬТАТ», далее цифры. 8) Есть кандидат — strategies//rules.md, bot/paper_5m.py ($1000 демо, комиссия и funding внутри), сухой прогон reports/paper_dry_run.json, первый отчёт бота, план форварда с чекпоинтами 4 и 12 недель. Нет кандидата — reports/NO_CANDIDATE.md (>=12 строк). 9) Публикация: репозиторий anatoly/crypto-screener-5m и вики >=7 страниц (reports/PUBLISH.md со ссылкой), README.md >=3000 Б, >=3 графика в charts/. 10) В ответ: вердикт, таблица «метод -> EV полная/OOS -> t -> плацебо», путь к results/summary_5m.csv, ссылка на репо. constraints: Гейты /opt/data/scripts/screener5m_gate_f1..f3.sh только запускать (правка = провал этапа). Приёмка — облачная модель. Запрещено: подгонка на OOS, отбор пар по результату, EV без издержек, смена правил метода после просмотра цифр. Издержки от нотионала: тейкер 0,055% на ногу + слиппедж 1 б.п. (3 б.п. вне топ-30 по обороту), мейкер 0,02% на ногу, funding при удержании через 00/08/16 UTC. Отсутствие кандидата — валидный результат: сдать таблицу опровергнутого, «рабочий» метод не выдумывать. Прогоны дольше 10 мин — background с notify. screener_research и csm — только читать. Ключи и токены в репозиторий и логи не писать. boundaries: /opt/data/work/screener5m + venv .venv (uv: pandas,numpy,matplotlib,scipy,statsmodels,pyarrow); данные — публичный REST api.bybit.com без ключей (пагинация kline назад через end=oldest-1, 1000 баров на запрос, retCode 10016 пропускать), до 5 ГБ; репозиторий anatoly/crypto-screener-5m. stop when: нет доступа к Bybit или Gitea; нужно выбирать между двумя равными кандидатами; вселенная или правила подбирались после просмотра OOS; по итогам Ф1 ни один класс методов не даёт EV>0 — доложить и ждать решения Павла. ``` ## 2. Гейты — добавлять ТРЕМЯ отдельными сообщениями (по одному за раз, порядок важен) ``` /goal gate add bash /opt/data/scripts/screener5m_gate_f1.sh /goal gate add bash /opt/data/scripts/screener5m_gate_f2.sh /goal gate add bash /opt/data/scripts/screener5m_gate_f3.sh ``` Что проверяет каждый (136 проверок, все читают диск напрямую): | Гейт | Этапы | Смысл | |---|---|---| | f1 | Э0–Э3 | файлы 5м (≥100, 6 полей, время вверх), манифест (≥15 млн баров, ≥40 пар ≥12 мес), валидатор (dup=0, медиана coverage ≥0,95), сверка движка с прод-движком (≥4 пары, PF ≤5%), планка издержек (комиссии 0,055/0,02, ≥5 сценариев p*) | | f2 | Э4–Э6 | ≥12 файлов методов (≥100 сделок), сводка с EV/EV-OOS/t/плацебо/рандом (нет пустых полей), по годам (≥12×≥3), Бонферрони (n_tests ≥12, порог ≥2,9), плацебо ≥800 Б, ≥12 строк опровергнутого, ≥3 PNG | | f3 | Э7–Э9 | вердикт первой строкой + явный итог, ветка кандидата (rules.md, paper_5m.py, сухой прогон ≥100 сделок с комиссиями, форвард-план 4 и 12 недель) ИЛИ ветка «нет кандидата» (≥12 строк), публикация репо и вики ≥7 страниц, README ≥3000 Б | Контрольные суммы (сверять перед запуском цели; я не менял их после теста): ``` 40d7d99349509f6828376eb29f98233743447a0b295a8d1964f7a3f3b5ed0d7a screener5m_gate_f1.sh 7e1e36e2d1531d37253fbb2eb3e2b76a46ac2179fc2b8cf5f13f721be160e438 screener5m_gate_f2.sh 18d34dc86945d0c61980bf27893781c656ac8d57580d2bbab1eb921bf0c9f171 screener5m_gate_f3.sh ``` ## 3. После постановки — проверить ``` /goal show # поля не улетели в заголовок /goal gate list # все три гейта на месте /goal # состояние цикла и остаток бюджета (max_turns = 60) ``` Разбор состояния цели в БД (на чтение): ```bash /opt/hermes/.venv/bin/python3 -c " import sqlite3, json c = sqlite3.connect('file:/opt/data/state.db?mode=ro', uri=True) k, = c.execute(\"select key from state_meta where key like 'goal:%' order by rowid desc limit 1\").fetchone() d = json.loads(c.execute('select value from state_meta where key=?', (k,)).fetchone()[0]) print(k, d.get('turns_used'), '/', d.get('max_turns'), '| gates:', len(d.get('gates') or [])) print('outcome:', ((d.get('contract') or {}).get('outcome') or '')[:150])" ``` ## 4. Что уже проверено руками (не переоткрывать) - 5м история Bybit доступна глубоко назад при явном `start`/`end` (проверено на 2020, 2021, 2022) — прежняя заметка «только 3,5 дня» верна лишь для запроса без `start`. - Скорость: 2,7 запроса/с одиночными вызовами; 1000 баров на запрос; `retCode 10016` пропускать. - Планка: средний модуль 5м-дохода 22,8 б.п. (BTC 6,2), 1ч — 78,0 б.п.; тейкер на круг 0,11% → цель/стоп 0,2%/0,2% требуют точности 77,5% (мёртвая зона для скальпинга по одному бару). - Диск: 29 ГБ свободно; оценка выгрузки 100 пар × 18 мес ≈ 15,5 млн баров ≈ 400 МБ, ≈ 11 000 запросов.