Мультиинструментальная торговля: GAZPF + SBERF на Fibonacci Grid — MajoTrade
MajoTrade

Мультиинструментальная торговля: GAZPF + SBERF на Fibonacci Grid

· REPA

Сегодня мы добавили поддержку мультиинструментальной торговли в нашего Rust-бота для MOEX. Теперь бот одновременно работает с двумя фьючерсами — GAZPF (Газпром) и SBERF (Сбербанк), каждый со своими оптимальными параметрами.

Что нового

Мультисимвольная архитектура

Раньше бот торговал только одним инструментом. Теперь каждый символ получает собственное состояние Fibonacci Grid — независимый анализ свингов, уровней входа и управление позициями. Два инструмента работают параллельно в одном процессе, разделяя ресурсы, но не мешая друг другу.

Формат запуска стал выразительнее:

--symbols GAZPF@RTSX:1:0.05:2.2,SBERF@RTSX:1:0.05:1.0

Четвёртый параметр — per-symbol min_swing — порог минимального свинга для построения сетки Фибоначчи. Это оказалось критически важным: GAZPF и SBERF имеют разную волатильность.

Per-symbol пороги: зачем это нужно

При первом запуске SBERF бот не смог построить Fibonacci Grid — свинги инструмента не достигали порога 2.2%, установленного для GAZPF. Бектест на 1953 свечах (2 недели данных) показал:

min_swingСделкиWin RateProfit FactorP&L
0.8%1435.7%0.94-0.17%
1.0%742.9%1.51+0.09%
1.5%0---

Оптимальный порог для SBERF — 1.0%. При нём бот обнаруживает структурные свинги ~1.0-1.3%, характерные для этого менее волатильного фьючерса, и показывает положительный Profit Factor.

Для сравнения, GAZPF работает с порогом 2.2% — его свинги достигают 2.5-4%.

Dashboard: переключатель инструментов

Веб-дашборд на bot.majotrade.net получил кнопки выбора инструмента — GAZPF и SBERF. Каждый инструмент имеет свой viewport на графике, что позволяет переключаться между символами без потери масштаба.

Dashboard работает на WebAssembly (Rust + eframe/egui), обновляет данные каждые 5 минут и поддерживает два режима — DRY RUN (симуляция) и LIVE.

Текущее состояние системы

Что работает

  • Fibonacci Stateful Grid — стратегия на основе уровней Фибоначчи с каскадными входами на уровнях 0.382, 0.500, 0.618, 0.786
  • Dual-mode — бот всегда симулирует сделки (dry-run), опционально размещает реальные ордера через Finam API
  • Мультисимвольная торговля — GAZPF + SBERF с независимыми grid-состояниями
  • Per-symbol конфигурация — индивидуальные пороги свинга для каждого инструмента
  • Веб-дашборд — real-time визуализация на bot.majotrade.net с графиком свечей, уровнями Фибоначчи и историей сделок
  • PostgreSQL — хранение свечей, состояния grid, истории сделок
  • Systemd — автоматический запуск, мониторинг, ограничение ресурсов

Текущие позиции (на момент публикации)

  • GAZPF: Grid LONG, свинг 127.13 -> 132.65 (+4.3%), ожидание входа на уровнях коррекции
  • SBERF: Grid LONG, вход @ 314.95 (уровень 0.382), TP=315.67, SL=314.37, свинг 311.91 -> 316.83 (+1.6%)

Статистика dry-run (GAZPF, с 21 февраля)

6 сделок за 2 недели, Win Rate 50% (3W/3L). Стратегия консервативная — входит только при подтверждённых свингах и ждёт откатов к уровням Фибоначчи.

Технические детали

Бот написан на Rust, работает на домашнем сервере (archbook, Arch Linux). Ключевые компоненты:

  • bot4rest — основной торговый процесс, REST API polling к Finam
  • orchestrator — управление токенами и мониторинг
  • dashboard_export — генерация JSON из PostgreSQL для веб-дашборда
  • fib_backtest — бектест-инструмент для подбора параметров на исторических данных

Весь код — open source, а дашборд доступен по адресу bot.majotrade.net.

Что дальше

  • Сбор статистики SBERF dry-run для валидации порогов
  • Анализ корреляции между инструментами (одновременные позиции)
  • Подготовка к live-торговле при достаточной статистике dry-run