Разработка системы лимитов (max position, max daily loss) для бота

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1Все 1306 услуг
Разработка системы лимитов (max position, max daily loss) для бота
Средний
~2-3 дня
Часто задаваемые вопросы

Направления блокчейн-разработки

Этапы блокчейн-разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1286
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    902
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1122
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    859

Разработка системы лимитов (max position, max daily loss) для бота

Система лимитов — это guardrails торгового бота. Без лимитов единственная ошибка в коде стратегии или неожиданное рыночное движение могут обнулить счёт. Лимиты превращают потенциально катастрофическое событие в контролируемый убыток.

Типология лимитов

Позиционные лимиты

Max position size per instrument: максимальный размер позиции по одному инструменту. Абсолютное значение (например, 0.5 BTC) или процент от портфеля (5%).

Max total exposure: суммарная экспозиция по всем открытым позициям. Ограничивает общий leverage.

Max positions count: количество одновременно открытых позиций. Защита от стратегии, которая начала открывать позиции во всех инструментах сразу.

Concentration limit: максимальная доля капитала в одном активе. Если 3 разных позиции все коррелируют с BTC — их суммарный вес не должен превышать X%.

Потери и P&L лимиты

Max daily loss: максимальный убыток за торговый день. При достижении — остановка до следующего дня. Стандарт для профессиональных трейдеров: 2-5% от счёта.

Max weekly/monthly loss: аналогично для более длинных периодов.

Max drawdown: максимальная просадка от исторического пика. При достижении — пауза и ревью стратегии.

Per-trade max loss: максимальный убыток по одной сделке. Если стоп-лосс не сработал и позиция ушла дальше — принудительное закрытие.

Операционные лимиты

Max orders per minute: защита от случайного flood биржевого API.

Max order size: максимальный размер одного ордера (защита от ошибки в расчёте размера позиции).

Реализация: pre-trade checks

Проверки лимитов должны выполняться до отправки ордера, а не после:

def validate_order(order, portfolio_state, limits):
    # Check position size
    current_pos = portfolio_state.get_position(order.symbol)
    new_pos_size = current_pos.size + order.quantity
    if new_pos_size > limits.max_position_size[order.symbol]:
        raise LimitViolation("MAX_POSITION_SIZE", ...)
    
    # Check daily loss
    if portfolio_state.daily_pnl < -limits.max_daily_loss:
        raise LimitViolation("DAILY_LOSS_LIMIT", ...)
    
    # Check total exposure
    new_exposure = portfolio_state.total_exposure + order.notional_value
    if new_exposure > limits.max_total_exposure:
        raise LimitViolation("MAX_EXPOSURE", ...)
    
    return True

Pre-trade validation — синхронная, быстрая (< 1ms), происходит в том же потоке что и генерация сигнала.

Динамические лимиты

Статические лимиты — хорошо, но рынок меняется. Динамические лимиты адаптируются к условиям:

Volatility-adjusted position sizing: при высоком VIX или ATR — уменьшать размер позиций автоматически. Такой же expected dollar risk при разной волатильности.

Time-of-day limits: снижать лимиты в часы низкой ликвидности (ночь по Asian session для European markets).

Drawdown-adjusted: по мере роста просадки — постепенно снижать лимиты. Это Kelly-inspired подход: чем меньше капитал, тем меньше абсолютные ставки.

Мониторинг и алертинг по лимитам

Оператор должен видеть текущую «загрузку» лимитов в реальном времени:

Лимит Максимум Текущее % использования
Daily loss $5,000 $1,230 24.6%
Max exposure $50,000 $31,500 63.0%
BTC position 1.0 BTC 0.45 BTC 45.0%

При достижении 80% лимита — предупреждение. При достижении 100% — действие (пауза/остановка) + алерт.

Система лимитов — относительно простой компонент в реализации (2-4 недели), но с высочайшей ценностью для risk management.