Development системы версионирования конфигураций торгового бота
Конфигурация торгового бота — не статичный файл. Параметры стратегий меняются после оптимизации, лимиты корректируются по мере роста счёта, добавляются новые инструменты. Система версионирования фиксирует каждое изменение, позволяет откатиться к предыдущей версии и понять, почему вчера стратегия вела себя иначе.
Зачем версионировать конфигурации
Сценарий без версионирования: бот начал терять деньги три дня назад. Вы изменили несколько параметров за последнюю неделю, но не записывали что именно. Найти причину изменения поведения — задача-квест.
С версионированием: в логе видно, что 3 дня назад параметр take_profit_multiplier изменился с 2.5 на 1.8. Откат к предыдущей версии — одна команда. Сравнение конфигураций — diff двух версий.
Git как бэкенд для конфигураций
Самый простой и мощный подход — хранить конфигурации в Git-репозитории. YAML или JSON файлы, каждое изменение — commit с описанием. Это даёт:
- Полную историю изменений с author и timestamp
-
git diffдля сравнения версий -
git revertдля отката - Pull Request workflow для review изменений в продакшене
- Branching для тестирования параметров
# strategy_config_v1.5.yaml
version: "1.5"
updated_at: "2024-01-15T10:30:00Z"
updated_by: "[email protected]"
change_reason: "Увеличение TP после анализа февральских результатов"
strategies:
trend_following:
instruments: ["BTC/USDT", "ETH/USDT"]
take_profit_multiplier: 2.5 # было 1.8
stop_loss_pct: 0.02
position_size_pct: 0.05
Применение конфигураций: hot reload vs restart
Hot reload: бот применяет новую конфигурацию без перезапуска. Идеально, но требует careful implementation — не все параметры безопасно менять на ходу. Например, изменение position_size_pct при наличии открытых позиций: применять немедленно или только к новым?
Staged apply: новая конфигурация применяется к новым стратегическим циклам, текущий цикл завершается со старыми параметрами. Безопаснее, небольшая задержка.
Restart required: некоторые параметры (например, подключение к бирже, тип стратегии) требуют полного перезапуска. UI должен явно показывать, какие параметры требуют restart.
Аудит-лог применения конфигураций
Каждое применение новой конфигурации логируется:
- Версия до и после
- Кто и когда применил
- Каким образом (автоматически по расписанию или вручную)
- Были ли открыты позиции в момент применения
- Успешно ли прошёл переход
Версионирование конфигураций — небольшая инвестиция (1-2 недели) с большой долгосрочной ценностью для поддержки и оптимизации стратегий.







