Как рассчитываются сигналы на текущем рынке
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.
Два экземпляра одной стратегии могут работать в одном процессе только с разными счетами. Одинаковая стратегия и один счёт отклоняются как неоднозначная настройка.
Что происходит на закрытии свечи
- Загружаются настройки проекта, счета, плагины и состояние паузы.
- Для каждой активной настройки определяются коннектор и инструменты.
- Загружаются свечи и необходимый рыночный контекст.
- Выполняется общий хук проекта
beforeSignals. - Каждая применимая стратегия обрабатывает последнюю закрытую свечу.
- Решения записываются до построения необязательных графиков.
- Применяются ограничения риска, правила, AI- и ML-фильтры.
- Ордер размещается только после всех проверок и при наличии
--makeOrders. - Выполняются
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-уведомления и
Сравнение реальных и воспроизведённых входов.