Торговый стол, который ничего вам не должен объяснять
Почему мы построили inite.fund именно так, а не иначе. Пять ограничений, к которым мы возвращаемся снова и снова.
Розничный трейдинговый софт в массе плох, потому что его пишут люди, торгующие нарративом: ИИ, обыгрывающий рынок, секретный индикатор, проприетарное преимущество. Институциональный софт в массе плох, потому что его десять лет точили под запросы фич, и теперь он делает всё одинаково посредственно.
inite.fund — посередине. Не розница и не институционал. Без нарратива. Полтора года мы его строили, ломали и собирали заново; ниже — пять принципов, к которым мы возвращаемся раз за разом.
1. Методология должна защищаться без нас в комнате
Если метод приходится объяснять задним числом — это не метод, а нарратив. Мы выкинули кучу фич, красиво работавших в backtest, но не сводимых к двум предложениям.
Проверка: дайте Claude прочитать код. Если стратегию нельзя пересказать тому, кто её ни разу не видел, — это не стратегия.
На этом мы обожглись с Q-learning-выходом для торговых стратегий. Он обучался, на backtest работал. Объяснить, почему он выходит именно здесь, мы не могли. Снесли и вернулись к фиксированным правилам. Фиксированные правила быстрее выкатывать, быстрее дебажить, и ломаются они предсказуемо.
2. Аудит-лог идёт раньше фичи
Любое изменение состояния пишет строку. Смены режимов идут в
mode_history. У движений капитала есть audit_ref — это и делает их
идемпотентными. Любой вызов MCP-инструмента попадает в audit_log до
того, как вернёт ответ. У каждой сделки — свой автомат состояний,
который можно проиграть с диска.
Это не паранойя. Это про то, что финансовый софт ломается странно. Когда что-то идёт не так в 03:14 ночи в воскресенье, вопрос никогда не «что код должен делать», вопрос «что код реально сделал». Без логов вы восстанавливаете из домыслов. Логи всегда выигрывают у домыслов.
Аудит-лог заодно открывает дорогу MCP. Claude вызывает set_mode,
audit_log пишет «via mcp:user#7», вы потом смотрите и точно знаете,
кто и как. След один и тот же — кликнули вы кнопку или ввели
предложение в чате.
3. Пользователь — это и есть радиус поражения
В старой версии inite.fund был один глобальный «торговый пользователь»: ключи лежали в общих настройках, доступ был у любого админа. В этом квартале мы это переписали.
Теперь каждая стратегия принадлежит ровно одному пользователю. Длинные стратегии, торговые аккаунты, записи в хранилище, токены — всё привязано к пользователю. Если его скомпрометировали — отзываете токен, ротируете его ключи биржи. Его стратегии уходят в деградированный режим. Другие пользователи этого даже не замечают.
Кода в этом подходе больше, чем в глобальной модели. Он окупается с первого же случая, когда надо подключить третьего оператора, не перевыпуская ключи всем остальным.
4. Real-time — это фича; свежесть данных — это бюджет
Данные в реальном времени стоят дорого. Дёргать биржу на каждый тик — дорого. Рендерить маркетинговую страницу на сервере под каждый запрос — дорого. Поэтому мы задаём допуск по свежести для каждой поверхности и под него проектируем.
- Дашборд кокпита тянет SSE с шагом 5-15 секунд. Бесплатно.
- Маркетинговый сайт собирается на сервере, кешируется на эдже на 30 секунд. Считай, бесплатно.
- OG-карточки (превью ссылок в Twitter / Discord) рендерятся по запросу из продуктового API, кеш 5 минут на стороне самой платформы превью.
- MCP-инструменты на каждый вызов забирают свежее состояние. На пользователя — около 20 вызовов в день, свежесть тут по сути бесплатна.
Никакого глобального обещания «real-time» нет — есть бюджет свежести для каждой поверхности. «AUM обновлён 10 секунд назад» на /strategies значит ровно это; дашборд тикает быстрее, OG-картинка — медленнее.
5. Делайте то, что нужно двум операторам
Самое сложное проектное решение в таком софте — для кого он. Рознице нужны чат-боты и эмодзи. Хедж-фонду — compliance-хуки и FIX. Мы выбрали середину: тот, кто вёл бы небольшую аллокацию руками, если бы софта не было; умеет читать код; и кому важнее не потерять деньги, чем быстро разбогатеть.
Отсюда вытекает всё остальное:
- Доступ только по инвайту. Самостоятельной регистрации нет. Подключение — это разговор.
- Зашифрованное хранилище ключей бирж. Открытым текстом ключ показывается один раз. Модель та же, что у Stripe с restricted-ключами; логика та же.
- MCP в приоритете, дашборд — вторичен. Дашборд нужен для мониторинга и аварийных действий. Большая часть правок идёт через Claude.
- Скиллы — это Markdown, а не закрытая плагин-система. Вы их читаете. Вы их форкаете. И можете запретить нам их обновлять, если захотите.
Что мы никогда не сделаем
- Обещать доходность. Любая опубликованная цифра — это история результатов, а не прогноз.
- Прятать ваши деньги от вас. Весь стек поддаётся аудиту; код внутренний, но методология — в этом блоге.
- Продавать на FOMO. Только по инвайту, ограниченный темп подключения новых пользователей, никакой публичной регистрации. Если сомневаетесь — подождите. Стол никуда не денется и в следующем месяце.
- Торговать вашими деньгами без ваших ключей. Каждая стратегия читает из вашего хранилища. Кастоди — не наша работа.
Что мы будем делать всегда
Строить софт, который уважает оператора. Запускать в прод методологию, которой для защиты не нужен нарратив. Открывать столько архитектуры, сколько надо, чтобы было ясно: магией мы не торгуем. Подключать пользователей по одному и проводить онбординг руками, пока не вычистим все косяки.
Остальное — исполнение.
- inite team
- 2026-05-11Журнал, который нельзя подделать
Каждое движение капитала, каждый апрув и каждая смена режима пишутся в журнал с хеш-цепочкой. Зачем это нужно в трейдинг-софте и как проверить целостность за полминуты.
- 2026-05-09Когда движок останавливается
Алгоритм работает сам. Но в трёх случаях он спрашивает оператора, и ещё в одном просто ложится. Разбираем, как устроены HIL-очередь, режимы стратегии и kill switch и где между ними проходит граница.
- 2026-05-06Просадка как акселератор, а не тормоз
Почему портфель режет риск на −8% — сильно раньше целевого диапазона −15% — и почему срез частичный, а не полный. Математика, философия и пограничные случаи, сломавшие первые три дизайна.