Управляющее приложение 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
.
🔧 Переход на внешние базы данных
- Создайте необходимую базу данных в SQL Server, MySQL или PostgreSQL.
- Обновите соответствующую строку подключения в
appsettings.json
. - Убедитесь, что нужные порты открыты и доступны.
- Перезапустите управляющее приложение.
🧩 Резюме
- MagicTradeBot хранит все торговые данные, настройки и логи в структурированной базе данных.
- Поддерживаются как лёгкие, так и масштабируемые корпоративные SQL-серверы.
- Безопасное и гибкое развертывание возможно с использованием переменных окружения.
- Легко переключаться между базами данных, просто изменяя конфигурацию.
Для продвинутых развёртываний поддерживается резервное копирование и репликация баз данных (в зависимости от используемого движка).