MagicTradeBot の 管理アプリ は、取引に関する重要なデータを保存・管理するために複数の SQL ベースのデータベースをサポートしています。 この柔軟性により、軽量な組み込み型データベースから本番環境向けの大規模リレーショナルデータベースまで、幅広い環境での運用が可能です。
📌 保存されるデータ
MagicTradeBot は、接続されたデータソースに以下の構造化データを保存します:
- 取引所アカウント: API キー、認証情報、および取引所ごとの設定
- 取引シンボル: 特定の取引所またはアカウントに紐づいた通貨ペア
- 取引テンプレート: 戦略、リスク制御、シンボルの紐付けを含むカスタム定義
- 取引データ: リアルタイムおよび履歴の取引ログと実行データ
- Kline データ: サードパーティプロバイダーを使用せずにローカルで構築・最適化されたローソク足データ
- その他: ログ、システム設定、スケジュール、実行時に重要なメタデータなど
💾 対応データソース
MagicTradeBot は現在、以下の SQL データベースエンジンをサポートしています:
- SQLite – 軽量で組み込み型(デフォルト)
- SQL Server – Microsoft 提供のエンタープライズ向けリレーショナルデータベース
- MySQL – 人気のあるオープンソース RDBMS
- PostgreSQL – 高機能なオープンソースオブジェクト・リレーショナル DBMS
⚙️ 設定構成
すべてのデータベース接続は、管理アプリ内の 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
- コンテナ環境では Secrets Manager や Docker Secrets を使用してください。
- 可能であれば、データベースを静止状態で暗号化してください。
🧪 SQLite のデフォルト使用(ローカル/開発に推奨)
MagicTradeBot には SQLite があらかじめ統合・設定されており、ローカルテストをすぐに開始できます。
"SQLLight": "Data Source=Data/MTManagementDB.db"
デフォルトのファイルベースデータベースは、自動的に /Data
フォルダ内に作成されます。
🔧 外部データベースへの切り替え
- 使用したい SQL Server / MySQL / PostgreSQL でデータベースを作成します。
appsettings.json
にある接続文字列を更新します。- 必要なポートが開いていてアクセス可能であることを確認します。
- 管理アプリを再起動します。
🧩 まとめ
- MagicTradeBot はすべての取引データ、構成、ログを構造化データベースに保存します。
- 軽量からエンタープライズ対応の SQL エンジンまでサポート。
- セキュアかつスケーラブルな展開が可能な環境変数ベースの設定。
- 構成ファイルの修正のみでデータベースの切り替えが容易。
より高度な環境では、バックアップのスケジューリングやデータベースのレプリケーションも、使用するデータベースエンジンによって外部からサポートされています。