Доступ
Токен хранится локально на устройстве. API за Caddy(TLS).
📗 КНИГА — дневное решение
Ребаланс 17:00 исполняется сам. Превью 16:30 — информация; если план не нравится — выключи авто-торговлю в настройках до 17:00. Кнопка исполнения — только для исключений.
Превью книги 16:30 по расписанию и по кнопке · не решение, ничего не сохраняет
превью ещё не считалось
Решение дня —
Заявки — план (дельта тек→цель). Что советник планирует на этом решении. Факт — в карточке «Исполнение».
Кнопка ниже — исключение: исполнить ТЕКУЩЕЕ решение дня вручную, когда авто не прошло гейты (или решение HOLD/после killswitch). Сверяет id и хеш заявок с экраном, требует подтверждения. У рукава своих кнопок исполнения нет.
Исполнение
—
Заявки у брокера — живой статус, опрос каждые ~30с. Залитые уезжают в «исполнено сегодня». Незалитая лимитка добивается по рынку по таймауту.
⚡ ИНТРАДЕЙ-РУКАВ — решение
Шаг 5 минут, вход = —, выход —. Считается по закрытым барам.
Целевая позиция рукава
Плечо ноги = плечо дня × доля пути. Общая цель счёта = (1−w)·книга + w·рукав, по каждой ноге ОДНА нетто-позиция.
—
Что видит рукав
—
Заявки рукава шлёт диспетчер автоматически (тумблер
«Исполнение»). Аварийное гашение — «Стоп рукава» на вкладке Монитор.
P&L советника
P&L периметра советника = ликвидная стоимость (фьючерсы + АКММ + рубли) − внешние вводы/выводы, от 0 на старте. Замороженные US-акции (AT&T/ET) исключены. Снимок баланса перед закрытием вечёрки (~23:45). Периметр — ДВА счёта: основной (Альфа) за всю историю и ВТБ 22D00 (деньги супруги, 25.06–31.08, закрыт и переведён сюда 01.09). Срез у обоих ОДИН: фьючерсы + денежный фонд + рубли — по ВТБ это вариационная маржа (+78 868 ₽) и доход фонда LQDT (+69 262 ₽, аналог АКММ, которого у ВТБ нет) минус биржевые комиссии (−4 497 ₽) = +143 632 ₽. НДФЛ (−16 281 ₽), удержанный при закрытии счёта, заведён ВЫВОДОМ, а не убытком: на основном счёте налог не удержан, и срезы обязаны совпадать. Сходимость со счётом: 3 202 427 принципал + 143 632 результат − 16 281 НДФЛ = 3 329 779 ₽, ровно столько списано 01.09.
—
—
│
Учесть ввод/вывод средств (чтобы депозит не выглядел как P&L)
Поток вычитается из кривой, чтобы виден был только торговый P&L. Дата по умолчанию — сегодня.
Сетка режимов (все vol × cap) — анализ
Все режимы профиля на истории, с полосой ребаланса из настроек. Обновляется при прогоне advisor.
Статус
Позиции: факт vs цель
Свечи — что видит движок
Последняя цена по тикеру, дневное изменение, сигнал ансамбля (−1..+1) и целевое плечо.
Последний пересчёт целей
📗 Книга — журнал исполнений
Дневной контур: ребаланс в 17:00. Что и когда отправлено (покупка/продажа), цена филла и слиппедж. Новые сверху.
Значок — судьба сделки, не «брокер принял»:
✓ налилась ·
◐ частично ·
○ принята, но не налилась ·
⁇ ушла, подтверждения нет ·
✗ отклонена ·
↻рын добивание по рынку ·
* запись старого формата: состояние восстановлено по ответу брокера
⚡ Интрадей-рукав — решения
Внутридневной контур, шаг 5 минут. Ступень S0: заявок не шлёт — считает целевую позицию и пишет телеметрию.
—
Аварийный стоп — РАЗДЕЛЬНО
Два контура — две кнопки. Одна кнопка на оба означала бы, что нельзя погасить рукав, не погасив книгу.
📗 Книга (дневной ребаланс)
«Закрыть всё» пишет режим в конфиг и сразу запускает пересчёт:
решение на закрытие будет готово через минуту. Позиции этим не закрываются — решение надо ПОДТВЕРДИТЬ
(придёт пуш с числом заявок). Автоисполнения на этой кнопке нет намеренно.
«Без новых входов» пересчёт не запускает: следующий прогон будет пропускать только сокращающие заявки.
Любой стоп книги гасит и рукав (w → 0): в едином нетто-потоке иначе осталась бы доля рукава,
то есть «закрыть всё» закрыло бы не всё. Обратное неверно — стоп рукава книгу не трогает.
⚡ Интрадей-рукав
«В ноль» гасит долю рукава (w → 0) и снимает боевой тумблер: общая цель становится книжной. Книгу не трогает вовсе.
Настройки
⏻ Главные выключатели
ВКЛ — решение 17:00 исполняется без человека, если проходит гейты (спред, дрейф, алерты, лимит заявок); иначе лежит PROPOSED и ждёт кнопки «Исполнить решение дня». ВЫКЛ — каждое решение только PROPOSED + пуш; исполнить можно лишь кнопкой. Не нравится план в превью 16:30 — выключи ДО 17:00.
Отдельно от расчёта рукава («Включить живой рукав» в «Дополнительно») СОЗНАТЕЛЬНО: «считает» и «торгует» — разные события. ВКЛ — книга ужимается до (1−w), рукав торгует своей долей каждые 5 минут; зеркало супруге получает книжный срез. ВЫКЛ — рукав только считает и пишет телеметрию, счёт не трогает. Аварийно гасится «Стопом рукава» на Мониторе.
vol = целевая волатильность портфеля, cap = потолок плеча. Больше vol = больше доход И больше просадка/хвост при том же Sharpe. Это плечо, не edge.
C = множитель × счёт. Книга компаундит: счёт растёт → книга растёт, просадка → де-рискуется. Это размер РИСКА, не перевод денег (фьючерсы тратят только ГО). Историческая просадка × C должна быть заметно меньше счёта.
Ограничитель 1.2..2.0 (02.08.2026): низ 1.2 = один шаг вниз по лестнице, верх 2.0 = замер v11b, выше по числам хуже (Sharpe −0.025 за шаг +0.2, ГО пробивает залог). Потолок лестницы из CAPITAL_LADDER.md — 1.6, и не раньше квартала форварда.
Ограничитель 1.2..2.0 (02.08.2026): низ 1.2 = один шаг вниз по лестнице, верх 2.0 = замер v11b, выше по числам хуже (Sharpe −0.025 за шаг +0.2, ГО пробивает залог). Потолок лестницы из CAPITAL_LADDER.md — 1.6, и не раньше квартала форварда.
Какие рынки торгуем (галочками). Менять состав = отклонение от профиля (новый форвард).
Рыночные — сразу, но платишь спред. Лимитные у touch — по лучшей цене стакана, безопаснее на неликвиде.
Раз в час (и в выходные) смотрю ЖИВОЕ брокерское ГО из терминала. Если загрузка залога выше триггера — пропорционально сокращаю все ноги до цели. Наращивать не умею вовсе. Пусто в триггере = выключено.
Пороги не выдуманы, а посчитаны (docs/intraday_margin_guard_2026-08-03.md, 1414 интервалов с 2021): движение цен между решениями в 17:00 двигает загрузку максимум на 8.2%, поэтому из 0.85 ценовой шум дотащит максимум до 0.92 — триггер 0.95 на шуме не сработает НИКОГДА. Он нужен против повышения ставок ГО биржей внутри дня (февраль-март 2022) — этого никакая модель не видит, поэтому и спрашиваем брокера.
Предохранители: режет только со ВТОРОГО подряд пробоя (одиночный выброс терминала = только пуш), не глубже 50% книги за раз, пауза 30 мин между срезами, свой дневной лимит заявок (книжный не тратит), пуш обязателен.
Пороги не выдуманы, а посчитаны (docs/intraday_margin_guard_2026-08-03.md, 1414 интервалов с 2021): движение цен между решениями в 17:00 двигает загрузку максимум на 8.2%, поэтому из 0.85 ценовой шум дотащит максимум до 0.92 — триггер 0.95 на шуме не сработает НИКОГДА. Он нужен против повышения ставок ГО биржей внутри дня (февраль-март 2022) — этого никакая модель не видит, поэтому и спрашиваем брокера.
Предохранители: режет только со ВТОРОГО подряд пробоя (одиночный выброс терминала = только пуш), не глубже 50% книги за раз, пауза 30 мин между срезами, свой дневной лимит заявок (книжный не тратит), пуш обязателен.
Дополнительно (редко нужно)
Не перетряхивать позицию, пока цель не сдвинется больше порога. Срезает оборот. Входы/выходы/развороты проходят всегда.
Два ортогональных доп.голоса к 9-сигнальному ансамблю: carry (форма кривой фьюча) + кросс-секц. моментум (сила ноги против корзины). RESEARCH_LEDGER #33-35: стак +0.14 Sharpe, лучше просадка (in-sample). ВЫКЛ = профиль §3 бит-в-бит. Влияет на примерочную/тепловую карту.
Критерий отката ext-факторов (форвард-монитор ON vs OFF, проверка по ВС). Судим не раньше N дней; при пробитии — пуш.
Пробитие = после N дней ΔSharpe(ON−OFF) < порога ИЛИ ΔP&L < порога (ext системно вредит). Дефолт: 60 дн / −0.15 / −50000, авто-выкл ВЫКЛ.
⚡ Интрадей-рукав — БОЕВОЙ КОНТУР
Включает расчёт рукава на живых данных (ступень S0): он считает целевую позицию каждые 5 минут и пишет телеметрию. Счёт при этом не меняется — заявок рукав не создаёт, пути к исполнению в коде нет вовсе (проверяется тестом по AST).
⚠ Позиции начнёт двигать только отдельный тумблер «Исполнение» вверху карточки настроек — и вот тогда книга ужмётся до (1−w) своего размера: w это ДОЛЯ КАПИТАЛА, отданная рукаву, а не добавка сверху.
Для картинки — свои тумблер и доля в блоке примерочной (вкладка Paper), на бой они не влияют вовсе.
Ключи — риск-ключи: пауз нет, после смены превью 16:30 пришлёт пуш «профиль изменён — проверь превью».
⚠ Позиции начнёт двигать только отдельный тумблер «Исполнение» вверху карточки настроек — и вот тогда книга ужмётся до (1−w) своего размера: w это ДОЛЯ КАПИТАЛА, отданная рукаву, а не добавка сверху.
Для картинки — свои тумблер и доля в блоке примерочной (вкладка Paper), на бой они не влияют вовсе.
Ключи — риск-ключи: пауз нет, после смены превью 16:30 пришлёт пуш «профиль изменён — проверь превью».
Тумблер «🔴 Исполнение: рукав выставляет заявки» — вверху карточки настроек, рядом с авто-торговлей книги: два главных выключателя стоят первыми намеренно.
w = 0.30 держится на всех ступенях плеча ×1.4…×2.0 и в обеих половинах окна (R6/E4). Просадка смеси ниже книжной вплоть до w = 0.40; с 0.45 — выше. Лестница выката: S1 w=0.1 → S2 w=0.2 → S3 w=0.3.
🖼 Интрадей-рукав — ВИТРИНА (только картинка)
Управляет тепловой картой и примерочной, боевых заявок не касается вовсе. Это НЕ риск-ключи: смена картинки не роняет торговый прогон в ручной режим.
Тумблер прямо над картой переключает состояние мгновенно (карта считается заранее в двух состояниях). Само значение w применяется на следующей генерации сетки — то есть после ближайшего прогона advisor.
Тумблер прямо над картой переключает состояние мгновенно (карта считается заранее в двух состояниях). Само значение w применяется на следующей генерации сетки — то есть после ближайшего прогона advisor.
Что это: опорный размер капитала «под советником» (сейчас ≈ множитель × счёт). Зачем: если терминал отдаст битый баланс (ноль, ×10, глюк снапшота), живое C зажимается в коридор [0.3×…3×] от этого якоря — мусорное число не станет размером книги на реальных заявках. Это НЕ ограничение роста: внутри коридора C живёт со счётом. Как вести: держи якорь примерно равным текущему C и поднимай, когда счёт вырастет в разы — страница сама предупредит («Подними якорь», при C выше ~85% потолка).
Если решение одобрено (авто или кнопкой override) при закрытом рынке — исполнитель ждёт сессию и отправляет на открытии (в пределах TTL). Переносится только момент отправки.
Больше заявок, чем лимит — авто не проходит: решение лежит PROPOSED под кнопку «Исполнить решение дня» (защита от необычного ребаланса).
Сколько живёт АВТО-одобренное решение — окно на исполнение. 720 = 12ч. После кнопки override отсчёт начинается заново от нажатия (иначе исполнение на открытии биржи было бы невозможно).
Сколько решение PROPOSED ждёт кнопки «Исполнить решение дня». Не нажал — статус EXPIRED (вычисляется, ничего не пишется), книга в этот день не перекладывается, следующее решение вытеснит это. 10 = десять минут.
Основной канал уведомлений. Подпишись на эту строку в приложении ntfy.
Отдельный топик: при РЕАЛЬНОМ исполнении публикует изменения по фьючерсам + ГО+резерв (₽) для повтора на другом счёте. Без AKMM, без email, без пересчётов. Подписать того, кто повторяет.
Все кол-ва контрактов и рубли в зеркале умножаются на N. Только целое (дробное даст нецелые контракты). 1 = как есть.
Канал уведомлений. Подпишись на эту строку в приложении ntfy на телефоне.
Адрес машины с терминалом Альфа PRO.
Перед ребалансом: рублей < ГО×%/100 — продать AKMM на недостачу; сильно больше — купить излишек. Рыночная заявка. AKMM = залог под ГО, кэш нужен на клиринг. План показывается в блоке «Заявки».
floor кэша = ГО × %/100. По умолчанию 50.
Продаём чуть больше нехватки кэша, чтобы порог не сработал снова назавтра. По умолчанию 10.
Мёртвая зона: покупаем AKMM только когда свободного кэша заметно больше буфера (гистерезис, без пинг-понга). По умолчанию 15.
Backstop от runaway. По умолчанию 600000.