メインコンテンツまでスキップ

ダッシュボード

サインイン時に表示される最初の画面であり、実際に1日中開いておくことになるページです。 ランディングページ(/、Components/Pages/Index.razor)は、サインインしたユーザーの cBot実行、バックテスト、リソース、(管理者向け)ノードクラスタ全体のアクティビティのための ライブ、モバイルファーストコマンドセンターです。 自動更新され、phoneでも美しく表示され、F5を押さえる必要が永远不会。

表示内容​

優先度順(phoneではすべてのブロックが全幅スタックアイテム、タブレ/desktopではレスポンシブグリッド):

  1. ヘッダー — タイトル、ライブインジケーター(実際のpulsesするドット; prefers-reduced-motion下では静的)、 最終更新時刻、期間トグル(1H · 24H · 7D · 30D)— KPIとチャートを驱动。
  2. ヒーローKPI — 4つの一剑arellaカード、それぞれ大きな数字 + インラインSVGスパークライン + (意味のある場所では)前期間との差分:
    • Active now — 現在開始/実行中の実行 + バックテスト。
    • Success rate — 期間中の完了 ÷(完了 + 失敗); 差分はパーセンテージポイント。
    • Completed — この期間の終了した実行/バックテスト; 前期間との差分。
    • Failed — この期間の失敗; 差分(少ないほど良ため、減少は緑色で表示)。
  3. アクティビティチャート — 開始/完了/失敗の各時間バケットのApexChartsエリアタイムライン。
  4. インスタンスステータスリング — 実行/バックテスト/保留/完了/失敗のドーナツ、中心に合計。
  5. バックテスト — 3タイルスナップショット(実行中/完了/失敗)、クリックで/backtestへ。
  6. コピー取引 — ライブステータスドット、宛先数、実行中プロファイルのLiveバッジ付き コピー取引プロファイル; クリックで/copy-tradingへ。
  7. AIエージェント — 実行状態(アーキタイプ · ステータス)と最終アクション時刻付きペルソナ駆動取引エージェント; クリックで/agent-studioへ。
  8. ライブアクティビティフィード — 最新の20イベント(最新順)、ステータスカラーのドットと 相対タイムスタンプ付き。
  9. クラスタヘルス(管理者のみ) — アクティブvs合計ノードと容量使用量ゲージ。
  10. リソースタイル — cBot、取引アカウント、cTrader ID、MCPキー(各ページにクリックthrough)。

ダッシュボードのカスタマイズ​

上記のすべてのブロックはあなたがコントロールするウィジェットです。 ヘッダーの右上にあるCustomizeを押してダイアログを開き、ウィジェートの表示/非表示を切り替え、 上下矢印で並べ替えができます。デフォルトにリセットするとカタログ順序が復元されます。 あなたの選択はサーバー側でユーザーごとに永続化されるため、ブラウザやデバイス間をまたいで追跡 — このタブだけでなく。

  • 機能ゲートと管理者のみのウィジェット(コピー取引、AIエージェント、クラスタヘルス)は、 デプロイ/ロールがそれらを使用できる場合にのみダイアログに表示されます。
  • ウィジェットカタログはCore/Dashboard/DashboardWidgets.csの単一の情報源; 表示(ラベル + アイコン + 可用性)はComponents/Dashboard/DashboardWidgetMeta.csにあります。

ライブ状態を維持する方法​

ページは10秒ごとにGET /api/dashboard/overview?period=<1h|24h|7d|30d>をポーリングし、 ウィジェットをインプレースで再描画 — 手動再読み込みなし。 一時的なフェッチ失敗は飲み込まれ、次のティックでリトライ; disposeでループはクリーンに停止。 最初の読み込みではスケルトンが表示; 持続的な失敗はRetry付きの錯誤カードを表示; データのないユーザーはゼロのKPIと空状態copy能看到。

バックエンド​

  • Endpoints/DashboardEndpoints.csが/overviewをマッピング(古いスカラー/statsも維持)。 ユーザーごと、ICurrentUserで管理者にゲート; クロックはTimeProviderから。 GET/PUT /api/dashboard/layoutもマッピング — ユーザーのウィジェットレイアウト、 ページ開始時に読み込まれ、Customizeダイアログから保存。
  • レイアウト永続化はUserDashboard集約(Core/Dashboard/UserDashboard.cs): ユーザーごとに1つのボード(UserIdで一意)、順序付きウィジェット設定リスト (visible + order)をjsonbカラムとして所有。 順序付きリストはApply / Resetを通じてのみ突然変異し、 すべてのキーをDashboardWidgetsカタログに対して検証し、コレクションを完全で重複なしのまま維持。 不明なキーはDomainException → 400で拒否されます。
  • Endpoints/DashboardQuery.csが複合DashboardOverview読み取りモデルを構築: オールタイムステータススナップショット(グループカウント)、 материализован onceのウィンドウ化されたインスタンスセット、 リソース/ノードカウント。 インスタンスステータスと终端タイムスタンプはTPHサブタイプに存在(カラムではなく)、 そのため行は共有InstanceEndpoints.GetStartedAt/GetStoppedAt помощникによってメモリで読み取られます。 イベント時刻 = stopped ?? started ?? created。
  • Endpoints/DashboardModels.csがDTO保持、期間→(ウィンドウ、バケットカウント)プラン、 DashboardMath — 純粋で決定論的なバケッティング + KPI/差分数学(I/Oなし、nowが渡される)。

KPI差分は現在のウィンドウと即座に先行するウィンドウを比較(そのためにクエリはダブルウィンドウをフェッチ)。 ライブアカウントP&Lフィードはありません — プラットフォームはバックテストとprop-firmトラッキングの 株式のみを持つため、ダッシュボードは意図的に運用(アクティビティ、スループット、成功率)、 而不是经纪公司残고 ticker。

デザインとトークン​

すべての颜色はデザイートークン(var(--app-success|-warning|-error|-info|-primary|-text*))から来て、 因此ホワイトラベルパレットが無料でフロー — チャート含む、 そのシリーズ颜色は実行時にwindow.appReadTokensから解決されたトークンを読み取ります (SVGはCSS変数を直接的消费できない)。ダッシュボードのどこにもハードコードされたhexなし。 ../ui-guidelines.mdを参照。

「Powered by cMind」リンク​

ダッシュボードにはこのドキュメントサイトヘの小さな tastefulな**「Powered by cMind」リンクが表示されます。 これはデフォルトで表示** — 私たちはプロジェクトに誇りを持っており、 他のトレーダーがそれを見つけるのに役立ちます — が完全にあなたの判断次第です。 完全にホワイトラベルされたインスタンスを実行するリセラはApp:Branding:ShowSiteLinkをfalseに flipすと消えます。 ホワイトラベルブランディングを参照。

テスト​

  • ユニットスタイル(tests/IntegrationTests/DashboardMathTests.cs)— バケティング、成功率、前期間差分、期間解析、空/境界(nowのイベント、ゼロ除算ガード)。
  • ユニット(tests/UnitTests/Dashboard/UserDashboardTests.cs)— UserDashboard集約:デフォルトシード、order/visibility適用、欠落のappended、重複collapse、 不明なキー拒否、リセット。
  • 統合(tests/IntegrationTests/DashboardQueryTests.cs、DashboardLayoutTests.cs)— 実際のPostgresに対する読み取りモデル(ステータス/KPI/アクティビティ/リソース、管理者ノードヘルス、 空ユーザーパス)、新しいバックテスト/コピープロファイル/エージェントセクション、 レイアウトラウンドトリップ(カスタムレイアウト保存 → 再読み込み → order + visibilityが持続)。
  • E2E(tests/E2ETests/DashboardTests.cs、DashboardCustomizeTests.cs)— desktop + mobile:KPIカード、チャート、リング、フィードが描画; 期間トグルがアクティブ期間を切り替え、 再読み込み; KPIが/runにドリル-through; ウィジェットを非表示にすると再読み込み後に持続、 リセットが復元、Customizeダイアログが電話で動作(水平オーバーフローなし)。 /はPageSmokeTests、MobileLayoutTests(シェル + 非オーバーフロー)、 MobileJourneyTestsにも含まれる。