Опционы, мобильный дашборд и улыбка волатильности: три обновления торгового бота
За последние недели мы добавили три крупных обновления на bot.majotrade.net — мобильную адаптацию интерфейса, полноценную вкладку опционной торговли и визуализацию улыбки волатильности в реальном времени.
Мобильная версия дашборда
Раньше дашборд был рассчитан на десктоп — боковая панель со статистикой, широкий график свечей, горизонтальная таблица сделок. На телефоне всё это сжималось до нечитаемого состояния.
Теперь при нажатии кнопки [M] в левом верхнем углу интерфейс переключается в мобильный режим:
- Вертикальная компоновка — все панели выстраиваются в одну колонку: статус, график, таблица сделок, прогресс grid search
- Три строки навигации — режим торговли (DRY RUN / LIVE), выбор инструмента (GAZPF / SBERF / CNYRUBF), и переключатель вкладок (Futures / Options / Smile)
- Адаптивные размеры — график занимает оптимальную высоту для вертикального экрана, таблицы прокручиваются
Настройка сохраняется в localStorage — при следующем заходе телефон автоматически откроется в мобильном режиме.
Вкладка Options: опционная цепочка и Greeks
Вторая вкладка дашборда показывает опционную цепочку CNY/RUB (CRM6@RTSX) в формате, привычном опционным трейдерам:
Portfolio Greeks — сводка по портфелю: Net Delta, Gamma, Theta, Vega, количество позиций и нереализованный P&L. Эти метрики обновляются каждые 5 минут и показывают текущую экспозицию опционного портфеля.
Options Chain — симметричная таблица Call | Strike | Put. Для каждого опциона отображаются:
- Bid / Ask — текущие котировки из стакана
- Theo — теоретическая цена по модели (American CRR binomial tree, 50 шагов)
- IV — подразумеваемая волатильность
- Delta, Gamma, Theta, Vega — Greeks
- Open Interest — количество открытых контрактов
ATM-страйк подсвечен жёлтым для быстрой ориентации. ITM-опционы выделены цветом.
Вкладка Smile: улыбка волатильности
Третья вкладка — визуализация улыбки волатильности. Это ключевой инструмент для опционной стратегии vol-reversion, которую использует наш бот.
Что на графике
Белая линия — рыночная IV. Подразумеваемая волатильность, рассчитанная из mid-цены стакана для каждого страйка. Классическая форма «улыбки» — OTM-опционы дороже в терминах волатильности, чем ATM.
Оранжевая линия — справедливая волатильность (fair vol). Наша модельная оценка, строится как:
- 40% — историческая улыбка (из реальных сделок по опционам)
- 60% — историческая волатильность базового актива
Когда рыночная IV ниже fair vol — опцион недооценён, бот покупает. Когда выше — переоценён, бот игнорирует или продаёт.
Синие кривые — история. Часовые снимки улыбки за последние 3 дня. Старые бледнее, свежие ярче. Показывают динамику: сжимается улыбка или расширяется, смещается ли скью.
Жёлтая пунктирная линия — текущая цена базового актива (ATM).
Таблица под графиком
Для каждого страйка — числовые значения: Market IV, Fair Vol, Edge (разница), Discount. Зелёный цвет — недооценён, красный — переоценён.
Как устроен сбор данных
На домашнем сервере archbook работает options_bot — опционный сканер на Rust. Каждые 60 секунд он:
- Запрашивает стакан котировок по всем страйкам опционной цепочки через Finam API
- Рассчитывает IV через биномиальную модель (American option pricing)
- Вычисляет справедливую волатильность с учётом исторической улыбки
- Записывает vol edge и discount в PostgreSQL
Каждые 5 минут cron-задача экспортирует данные в три JSON-файла: per-symbol дашборд, grid progress, и vol_smile.json. Файлы загружаются по FTP на сайт, WASM-приложение подхватывает их автоматически.
Технический стек
Весь дашборд — это Rust, скомпилированный в WebAssembly:
- eframe + egui 0.30 — UI-фреймворк для immediate-mode рендеринга
- egui_plot — графики: свечи, Fibonacci уровни, улыбка волатильности
- Trunk — сборщик WASM-бандлов для Rust
- web-sys — доступ к browser API (fetch, localStorage) из Rust
Никакого JavaScript-фреймворка — только Rust. Размер бандла ~2.8 МБ, загрузка мгновенная.
На серверной стороне:
- options_bot — сканер опционной цепочки, vol-reversion стратегия
- dashboard_export — SQL-запросы к PostgreSQL, генерация JSON
- bot4rest — основной фьючерсный бот (Fibonacci Grid, 3 инструмента)
Все три бинарника работают как systemd-сервисы с ограничением памяти и CPU, автоматическим рестартом при сбоях.
Что дальше
- Накопление данных для полноценной исторической улыбки (первые торговые дни)
- Маркеры позиций бота на графике smile — зелёные для покупок, красные для продаж
- Запуск live-торговли опционами после валидации стратегии на реальных данных
Дашборд доступен по адресу bot.majotrade.net. Попробуйте переключиться на мобильный режим кнопкой [M] и посмотреть вкладки Options и Smile.