データ保存とデータソースの構成

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 ManagerDocker 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