Хранение данных и настройка источников данных

  • Home
  • Documentation
  • Хранение данных и настройка источников данных

Управляющее приложение MagicTradeBot поддерживает несколько SQL-баз данных для хранения и управления важными данными, связанными с трейдингом. Эта гибкость позволяет пользователям работать как в легковесных средах с встраиваемыми БД, так и с полнофункциональными промышленными реляционными СУБД.

📌 Какие данные сохраняются

MagicTradeBot сохраняет следующие структурированные данные в подключённую базу данных:

  • Биржевые аккаунты: учетные данные бирж, API-ключи и настройки для каждой биржи.
  • Торговые символы: валютные пары, привязанные к определённым биржам или аккаунтам.
  • Шаблоны торговли: пользовательские определения стратегий, настроек риска и привязки символов.
  • Торговые данные: журналы сделок и данные исполнения в реальном времени и в истории.
  • KlineData: локально сформированные и оптимизированные данные свечей, не зависящие от сторонних поставщиков.
  • Другое: логи, системные настройки, расписания и другая важная метаинформация для выполнения.

💾 Поддерживаемые источники данных

В настоящее время MagicTradeBot поддерживает следующие SQL-серверы баз данных:

  • SQLite – легковесный и встроенный (по умолчанию)
  • SQL Server – полнофункциональная корпоративная СУБД от Microsoft
  • MySQL – популярная СУБД с открытым исходным кодом
  • PostgreSQL – продвинутая объектно-реляционная СУБД с открытым кодом

⚙️ Настройка конфигурации

Все соединения с базой данных настраиваются в файле appsettings.json внутри управляющего приложения:

{
  "ConnectionStrings": {
    "SQLLight": "Data Source=Data/MTManagementDB.db",
    "SQLSERVER": "Server=localhost;Database=MagicTrade;User Id=sa;Password=yourpass;",
    "Postge": "Server=localhost;Database=MagicTrade;User Id=pguser;Password=yourpass;",
    "MySQL": "Server=localhost;Database=MagicTrade;User=mtuser;Password=yourpass;"
  },

  "Secrets": {
    // ⚠️ ПРЕДУПРЕЖДЕНИЕ: Никогда не размещайте реальные секреты в системе контроля версий!
    "Database": {
      "Host": "",        // Переменная окружения: Secrets__Database__Host
      "Name": "",        // Переменная окружения: Secrets__Database__Name
      "User": "",        // Переменная окружения: Secrets__Database__User
      "Password": ""     // Переменная окружения: Secrets__Database__Password
    }
  }
}

🔐 Лучшие практики безопасности

  • Никогда не сохраняйте пароли и ключи в appsettings.json в продуктивной среде.
  • Используйте переменные окружения для безопасной передачи секретов, например:
    • Secrets__Database__User
    • Secrets__Database__Password
  • Применяйте менеджер секретов или Docker Secrets в контейнеризированной среде.
  • Шифруйте базу данных в состоянии покоя, если возможно.

🧪 Использование SQLite по умолчанию (рекомендуется для локальной разработки)

MagicTradeBot поставляется с предустановленной и предварительно настроенной SQLite. Никаких дополнительных действий не требуется для начала тестирования.

"SQLLight": "Data Source=Data/MTManagementDB.db"

Файл базы данных создаётся автоматически в каталоге /Data.

🔧 Переход на внешние базы данных

  1. Создайте необходимую базу данных в SQL Server, MySQL или PostgreSQL.
  2. Обновите соответствующую строку подключения в appsettings.json.
  3. Убедитесь, что нужные порты открыты и доступны.
  4. Перезапустите управляющее приложение.

🧩 Резюме

  • MagicTradeBot хранит все торговые данные, настройки и логи в структурированной базе данных.
  • Поддерживаются как лёгкие, так и масштабируемые корпоративные SQL-серверы.
  • Безопасное и гибкое развертывание возможно с использованием переменных окружения.
  • Легко переключаться между базами данных, просто изменяя конфигурацию.

Для продвинутых развёртываний поддерживается резервное копирование и репликация баз данных (в зависимости от используемого движка).

📎 Related Topics