Владение репозиториями и пакетами
TradeJS — мультирепозиторная система. Поведение тестируется, версионируется и публикуется из того репозитория, которому оно принадлежит.
От генератора до рабочего сервера
npx create-tradejsсоздаёт отдельный npm-проект.@tradejs/baseпредоставляет стандартный набор компонентов.- Он устанавливает публичные стратегии, индикаторы и коннекторы.
- Проект хранит
tradejs.config.ts, lock-файл, локальные данные, результаты бэктестов и зависимости от закрытых стратегий. - При самостоятельном размещении
TradeJS-Projectсобирает версионированный образ приложения и передаёт его тег и ревизию проекта вTradeJS-Deploy. TradeJS-Deployхранит Compose, TLS, постоянные тома, SSH, ограничения ресурсов и секреты рабочего окружения.
Репозиторий фреймворка не хранит рабочую конфигурацию пользователя или артефакты бэктестов. Репозиторий развёртывания не собирает исходники стратегий или приложения.
Границы пакетов
TradeJSпубликует движок и общие пакеты среды исполнения.TradeJS-Baseпубликует@tradejs/base— базовую композицию пакетов.TradeJS-Strategy-Kitпубликует общие вспомогательные функции через явные подпути@tradejs/strategy-kit/*.- Каждый репозиторий
TradeJS-Strategy-*публикует собственный пакет@tradejs/strategy-*. TradeJS-Strategy-TemplateиTradeJS-Workflowsстандартизируют новые репозитории стратегий, CI и публикацию.
TrendLine и ReverseTrendLine — единственное групповое исключение. Обе стратегии
живут в TradeJS-Strategy-TrendLine и публикуются вместе как
@tradejs/strategy-trend-line, потому что используют общую механику семейства.
Отдельного пакета для общей логики трендовых линий нет.
Пакеты Base, Kit и стратегий объявляют зависимости от среды исполнения TradeJS
через peerDependencies; совпадающие devDependencies нужны только для
независимой сборки и тестов исходного репозитория. Сгенерированный проект
устанавливает одну точную композицию. Пакет не должен приносить вторую копию
движка через dependencies.
Публичные и закрытые стратегии
Базовый набор зависит от полного публичного каталога. Проект может использовать этот набор, перечислить только выбранные публичные пакеты или добавить закрытый пакет:
import { basePreset } from '@tradejs/base';
import { defineConfig } from '@tradejs/core/config';
export default defineConfig(basePreset, {
strategies: ['@your-scope/private-strategy'],
});
Доступ к закрытому реестру принадлежит сгенерированному проекту или его среде сборки. Токен публикации публичных пакетов TradeJS нельзя копировать в среду исполнения или репозиторий развёртывания.
Обновление пакетов в рабочем проекте
Для реальной торговли фиксируйте точные версии пакетов. Набор пакетов фреймворка может
состоять из одной канонической стабильной версии либо из одной проверенной точной версии
x.y.z-beta.N, общей для всех пакетов фреймворка. Base, Strategy Kit и пакеты стратегий остаются
только на стабильных версиях. Обновите зависимость, lock-файл и полную декларацию стратегии, затем
запустите проверки проекта. Парсер каждой стратегии отклоняет неизвестные поля и подставляет значения
по умолчанию. Проверка вычисляет
strategyRevision из точного пакета стратегии, её прямых TradeJS-зависимостей,
пакета среды исполнения и разобранной итоговой конфигурации.
deploymentCompositionId связывает цель развёртывания, состояние включения, выбор символов и все ревизии
стратегий. Ручного поля version в конфигурации среды исполнения больше нет.
Отправка изменений в Project обновляет только исходники. Публикация неизменяемого образа и передача точного SHA в Deploy выполняются отдельным явным процессом. Публикация пакета стратегии сама по себе не меняет работающую установку TradeJS.
Где вносить изменение
- Решения, графики, адаптеры и общие функции семейства стратегии меняются в её репозитории.
- Вспомогательная функция для нескольких несвязанных стратегий меняется в
TradeJS-Strategy-Kit. - Состав публичного базового набора меняется в
TradeJS-Base. - Личная композиция, базовые настройки среды исполнения и образ приложения меняются в
TradeJS-Project. - Схема серверов, учётные данные, TLS, тома и правила развёртывания меняются в
TradeJS-Deploy. - Общая семантика среды исполнения и публичные контракты фреймворка меняются в
TradeJS.