Перейти к основному содержимому

Как рассчитываются сигналы на текущем рынке

TradeJS рассчитывает стратегии только после закрытия свечи. Можно выполнить один цикл для проверки или запустить постоянный процесс, синхронизированный с границами свечей:

# Один расчёт всех активных настроек
npx @tradejs/cli signals

# Постоянная обработка новых закрытых свечей
npx @tradejs/cli signals-daemon
# То же самое: npx @tradejs/cli signals --watch

Без явного флага --makeOrders эти команды не размещают ордера.

Настройка реальной работы

Настройки объявляются в tradejs.config.ts. Развёртывание связывает коннектор и торговый счёт с одной или несколькими полными конфигурациями:

export default defineConfig(basePreset, {
runtime: {
deployments: {
production: {
connectorName: 'bybit',
accountId: 'bybit-main',
tickers: ['BTCUSDT', 'ETHUSDT'],
strategies: {
DoubleTap: {
enabled: true,
selection: { tickers: ['BTCUSDT'] },
config: { INTERVAL: '15', UNIVERSE: 'crypto', MAX_LOSS_VALUE: 1 },
},
},
},
},
},
});

Для каждой стратегии задаются состояние enabled и полная конфигурация. strategyRevision вычисляется из проверенного пакета и итоговой конфигурации; ручного поля версии нет. selection.tickers ограничивает стратегию частью инструментов развёртывания. Если оба списка отсутствуют, доступные инструменты определяются коннектором и UNIVERSE.

Флаг --tickers временно переопределяет список для одной команды и не меняет tradejs.config.ts. Если удалить инструмент с открытой позицией, TradeJS сохранит его для решений о выходе и управления позицией.

Веб-приложение показывает рабочие настройки, но не переписывает их. Учётные данные торгового счёта остаются на сервере.

Выбор области расчёта

Без фильтров signals обрабатывает все включённые настройки. Текущий запуск можно сузить параметрами:

  • --deployment <name>;
  • --account <id>;
  • --connector <name>;
  • --timeframe <minutes>;
  • --universe crypto|tradfi;
  • --tickers, --exclude, --tickersLimit, --chunk.

Два экземпляра одной стратегии могут работать в одном процессе только с разными счетами. Одинаковая стратегия и один счёт отклоняются как неоднозначная настройка.

Что происходит на закрытии свечи

  1. Загружаются настройки проекта, счета, плагины и состояние паузы.
  2. Для каждой активной настройки определяются коннектор и инструменты.
  3. Загружаются свечи и необходимый рыночный контекст.
  4. Выполняется общий хук проекта beforeSignals.
  5. Каждая применимая стратегия обрабатывает последнюю закрытую свечу.
  6. Решения записываются до построения необязательных графиков.
  7. Применяются ограничения риска, правила, AI- и ML-фильтры.
  8. Ордер размещается только после всех проверок и при наличии --makeOrders.
  9. Выполняются afterSignals, уведомления и контроль цикла.

Сигнал — решение стратегии, а не ордер или исполнение. Отклонения, пропуски, отмены и исполнения записываются отдельно для диагностики полного жизненного цикла ордера.

Перезапуск и изменение настроек

Постоянный процесс хранит только недавнее детерминированное состояние расчёта. После перезапуска, пропуска свечей, существенного изменения конфигурации или достижения лимита живых свечей стратегия восстанавливается из прогревочной истории.

Настройки проекта и состояние паузы читаются в каждом цикле. Изменение вычисленной ревизии стратегии, композиции развёртывания, счёта или selection пересоздаёт только затронутый расчёт. Обработка пропущенной истории не размещает задним числом ордера и не отправляет торговые уведомления.

Для крипторынков Bybit по умолчанию используется публичный WebSocket свечей, а REST служит резервным источником при запуске, пропусках и переподключении. SIGNALS_KLINE_WS_ENABLED=0 включает только REST.

Проверка, пауза и возобновление

npx @tradejs/cli runtime-control verify \
--user root --deployment production

npx @tradejs/cli runtime-control pause \
--user root --deployment production --strategy DoubleTap

npx @tradejs/cli runtime-control resume \
--user root --deployment production --strategy DoubleTap

Пауза блокирует новые входы, но продолжает управление открытыми позициями. Возобновление снимает временную паузу, однако не включает развёртывание или стратегию с enabled: false. Если состояние паузы невозможно проверить, новые входы блокируются.

Ордера и мониторинг

  • --makeOrders разрешает размещение, но правила счёта, стратегии, риска, AI или ML всё ещё могут его отклонить;
  • --notify отправляет уведомления о принятых сигналах и необязательный AI-комментарий;
  • signals-summary создаёт краткую сводку недавней работы.

Запускайте постоянный процесс под supervisor, ограничьте память через SIGNALS_DAEMON_HEAP_MB и отслеживайте ошибки циклов и устаревшие свечи. См. Работа нескольких стратегий, Telegram-уведомления и Сравнение реальных и воспроизведённых входов.