Files
dzentra_bot/README.md

3.9 KiB
Raw Blame History

Dzentra

Dzentra — модульный монолит автоматической торговой системы с Telegram-интерфейсом. В текущем принятом Production scope полностью собрана вертикаль Trades Feed: получение сделок, проверка последовательности, reconnect/recovery, опциональное сохранение в PostgreSQL и восстановление после перезапуска.

Текущий scope

  • Production ingestion, Consistency, Recovery, persistent checkpoint и Startup Recovery реализованы для Trades.
  • Historical Access и deterministic Replay доступны как отдельные API и не запускаются автоматически.
  • REST-потоки Quotes и Candles продолжают использоваться Trading/UI. Новые WebSocket Runtime, Consistency/Recovery и persistent writer wiring для них пока не подключены.
  • Retention и создание месячных партиций выполняются только явным вызовом.
  • Обычный запуск приложения требует PostgreSQL для журнала и balance snapshots, даже если Trade Stream и Market Data Storage выключены.

Подробное фактическое состояние описано в архитектуре Trades Feed.

Быстрый старт существующего checkout

Требуются Python 3.12, доступный PostgreSQL и Telegram Bot Token. Команды выполняются из корня репозитория:

python3.12 -m venv app/.venv
app/.venv/bin/python -m pip install --upgrade pip
app/.venv/bin/python -m pip install -r app/requirements-dev.txt
test -e app/.env || cp app/.env.example app/.env

Заполните созданный app/.env, не добавляйте его в Git и не перезаписывайте уже существующий файл. Затем запустите приложение:

cd app
.venv/bin/python -m src.main

Настройки режимов, PostgreSQL и безопасный Docker-запуск приведены в эксплуатационном руководстве. Более подробная инструкция для разработчика находится в app/README.md.

Обязательные проверки

Из корня репозитория:

./scripts/check_python_types.sh
app/.venv/bin/python scripts/check_documentation_integrity.py

Ожидаемый результат Pyright — 0 errors, 0 warnings, а documentation gate — issues=0. Обычная offline-регрессия запускается из app:

cd app
.venv/bin/python -m pytest -q

Default pytest-набор исключает opt-in группы integration, stress и live, но включает статическую проверку Pyright. Целевой тест не заменяет полный type gate.

Навигация

Исторический bootstrap

bootstrap_project.py — исторический генератор первоначального каркаса. Для установки или запуска существующего checkout его использовать не нужно.