إنتقل إلى المحتوى الرئيسي

لوحة_التحكم

أول_شيء_تراه_عند_تسجيل_الدخول،وبصراحة_الصفحة_التي_ستتركها_مفتوحة_طوال_اليوم. صفحة_الوصول(/،_Components/Pages/Index.razor)_هي مركز_قيادة_مباشر_ومتقدم_للهاتف لنشاط_المستخدم_المسجل_الدخول_عبر_عمليات_cBot_واختبارات_backtest_والموارد_و(للمديرين)عنقود العقدة.تتحدث_ذاتها،_تبدو_رائعة_على_الهاتف،_ولا_تجبرك_أبداً_على_الضغط_على_F5.

ماذا_تعرض​

من_الأعلى_إلى_الأأسفل،مرتبة_حسب_الأولوية_للهاتف(كل_كتلة_هي_عنصر_تخزين_بعرض_كامل_ على_الهاتف،_شبكة_متجاوبة_على_الكمبيوتر_اللوحي/سطح_المكتب):

  1. الرأس —العنوان،مؤشر_مباشر(نقطة_نابضة_حقيقية؛ثابت_تحت prefers-reduced-motion)،_وقت_آخر_تحديث،_و تبديل_الفترة (1H · 24H · 7D · 30D) الذي_يشغل_KPIs_والرسم_البياني.
  2. KPIs_البطلة —أربع_بطاقات_سريعة_القراءة،كل_واحدة_رقم_كبير+ خط_بياني_SVG_مدمج،و(حيث_مجدي) الفرق_مقابل_الفترة_السابقة:
    • نشط_الآن —_التشغيلات_واختبارات_backtest_الحالية_التي_تبدأ/تعمل.
    • معدل_النجاح —المكتمل÷(المكتمل+_الفاشل)_على_الفترة؛_الفرق_بالنقاط_المئوية.
    • مكتمل —_التشغيلات/اختبارات_backtest_المكتملة_هذه_الفترة؛_الفرق_مقابل_الفترة_السابقة.
    • فشل —_الإخفاقات_هذه_الفترة؛الفرق(أقل_أفضل،_لذا_الانخفاض_يظهر_أخضر).
  3. رسم_النشاط_البياني —خط_زمني_مساحي_ApexCharts_للبدايات/الاكتمالات/الإخفاقات لكل_دلو_زمني.
  4. حلقة_حالة_Instance —قائمة_دائرية_للتشغيل/ backtests/ المعلق/ المكتمل/ الفاشل، الإجمالي_في_المركز.
  5. اختبارات_Backtest —لوحة_ثلاثية(قيد_التشغيل_/ مكتمل/ فاشل)،انقر_إلى/backtest.
  6. نسخ_التداول —_ملفات_نسخ_التداول_مع_نقطة_حالة_مباشرة،_عدد_الوجهات،_و علامة_Live على_الملفات_القيد_التشغيل؛انقر_إلى/copy-trading.
  7. وكلاء_AI —وكلاء_التداول_المدفوعون_بالشخصية_مع_حالة_التشغيل(المحرف_·الحالة) ووقت_آخر_إجراء؛انقر_إلى/agent-studio.
  8. تدفق_النشاط_المباشر —أحدث_20_حدثاً(الأحدث_أولاً)مع_نقطة_ملونة_حسب_الحالة ووقت_نسبي.
  9. صحة_العنقود (المديرون_فقط) —_العقد_النشطة_مقابل_الإجمالية_ومقياس_الاستخدام.
  10. مربعات_الموارد —cBots،_حسابات_التداول،معرفات_cTrader،مفاتيح_MCP (انقر_إلى_صفحاتها).

تخصيص_لوحة_التحكم_الخاصتك​

كل_كتلة_أعلاه_هي ** أداة_تحكمها**.اضغط تخصيص (أعلى_يمين_الرأس)لفتح حوار_حيث تظهر/تخفي أي_أداة_و إعادة_ترتيبها بالأسهم_لأعلى/لأسفل. إعادة_الضبط_ إلى_الافتراضييستعيد_ترتيب_الكتالوج.اختياركيُخزن_في_الخادم_لكل_مستخدم، لذا_يتبعك_عبر_المتصفحات_والأجهزة_—_ليس_هذا_التبويب_فقط.

  • الأدوات_المحصورة_بالميزات_والمديرين_فقط_(نسخ_التداول،وكلاء_AI،صحة_العنقود) تظهر_فقط_في_الحوار_عندما النشر/الدور_يسمح_بها.
  • كتالوج_الأدوات_مصدر_حقيقة_واحد_في_Core/Dashboard/DashboardWidgets.cs؛التقديم (التسمية_الأيقونة_التوفر)يعيش_فيComponents/Dashboard/DashboardWidgetMeta.cs.

كيف_تبقى_مباشرة​

الصفحة_تستعلم_GET /api/dashboard/overview?period=<1h|24h|7d|30d>كل_10_ثوانٍ_وتعيد عرض_الأدوات_في_مكانها_—_لا_إعادة_تحميل_يدوية.خطأ_الاسترجاع_العابر_يُبلع_ويُعاد في_العلامة_التالية؛_الحلقة_تتوقف_بشكل_أنيق_عند_التخلص.التحميل_الأول_يظهر_هيكلاً؛ فشل_مستمر_يعرض_بطاقة_خطأ_مع إعادة_المحاولة؛مستخدم_بدون_بيانات_يرى_KPIs_صفرية ونص_حالة_فارغة.

الواجهة_الخلفية​

  • Endpoints/DashboardEndpoints.csتعين/overview(وتحتفظ_بالنظير_القديم /stats).هي_لكل_مستخدم_ومحصورة_بالميزات_عبرICurrentUser؛الساعة_تأتي_منTimeProvider._ كما_تعين_GET/PUT /api/dashboard/layout_—_تخطيط_أدوات_المستخدم،محمل_عند_بدء الصفحة_ومحفوظ_من_حوار_التخصيص.
  • استمرار_التخطيطهو_المجموعUserDashboard (Core/Dashboard/UserDashboard.cs):_ لوحة_واحدة_لكل_مستخدم_(فريدة_على_UserId)،تمتلك_قائمة_مرتبة_من_إعدادات_الأدوات (مرئية_ترتيب)مخزنة_كعمودjsonb.القائمة_المرتبة_تتغير_فقط_عبرApply/Reset, اللذين_يتحققان_من_كل_مفتاح_مقابل_كتالوجDashboardWidgetsويحافظان_على_اكتمال القائمة_وإزالة_التكرار.المفاتيح_غير_المعروفة_ترفض_بـDomainException →_400.
  • Endpoints/DashboardQuery.csيبني_نموذج_القراءةDashboardOverview:لقطة_حالة كل_الوقت_(العد_المجموعات)،مجموعة_نافذة_من_الحالات_المادية_مرة_واحدة،وعد_الموارد/العقد. حالة_الحالة_وطوابع_الوقت_الطرفية_تعيش_على_أنواع_TPH_الفرعية(وليس_الأعمدة)، لذا_الصفوف_تُقرأ_في_الذاكرة_عبر_مساعدي_InstanceEndpoints.GetStartedAt/GetStoppedAtالمشاركين. وقت_الحدث_=_stopped ?? started ?? created.
  • Endpoints/DashboardModels.csholds the DTOs،خطة_الفترة→(نافذة،عد_الدلو) و_DashboardMath_ —الرياضيات_النقية_الحتمية_لـ_التجميع_و_KPI/الفرق(لا_I/O،nowيُمرر). فروق_KPI_تقارن_النافذة_الحالية_بالنافذة_السابقة_فوراً(الاستعلام_يجلب_نافذة_مزدوجة_لهذا). لا_توجد_تغذية_حيّة_لحساب_P&L_—المنصة_لديها_حقوق_فقط_لـ_اختبارات_backtest وتتبع_prop-firm_—لذا_لوحة_التحكم_مُخصصة_بشكل_متعمد تشغيلية(النشاط، الإنتاجية،معدل_النجاح)،_وليس_مؤشر_أرصدة_الوسيط.

التصميم_و_الرموز​

كل_اللون_ياتي_من_رموز_التصميم_(var(--app-success|-warning|-error|-info|-primary|-text*))، لذا_لوحة_ألوان_العلامة_البيضاء_تتدفق_مجاناً—بما_في_ذلك_الرسم_البياني_الذي_تُقرأ ألوان_السلسلة_من_الرموز_المحلولة_في_وقت_التشغيل_عبر_window.appReadTokens (SVG_لا_تستطيع_استهلاك_متغيرات_CSS_مباشرة).لا_رمز_سداسي_محدد_في_أي_مكان في_لوحة_التحكم.انظر../ui-guidelines.md.

رابط_"مدعوم_بواسطة_cMind"_​

تعرض_لوحة_التحكم_رابطاً_صغيراً_أنيقاً "مدعوم_بواسطة_cMind"يشير_إلى_موقع التوثيق_هذا.يتم إظهاره_افتراضياً—نحن_فخورون_بالشروع_ويساعد_المتداولين_الأخرىين في_العثور_عليه_—لكن_الأمر_بيدك_كلياً.معادو_التسويق_الذي_يشغل_نسخة_مؤشرة كلياً_بـ_علامة_بيضاء_يعكسونApp:Branding:ShowSiteLink_ إلى_false_ويختفي.انظرتحديد_العلامة_البيضاء.

الاختبارات​

  • وحدة_النمط (tests/IntegrationTests/DashboardMathTests.cs)_—_التجميع،معدل النجاح،_فروق_الفترة_السابقة،تحليل_الفترة،فارغ/حدود(حدث_عندnow،_حراسة_القسمة_على_صفر).
  • وحدة (tests/UnitTests/Dashboard/UserDashboardTests.cs)_—المجموعUserDashboard: بذرة_افتراضية،_تطبيق_ترتيب/رؤية،_إلحاق_محذوف،_انهيار_التكرار،_رفض_مفتاح_غير_معروف،_إعادة_ضبط.
  • تكامل (tests/IntegrationTests/DashboardQueryTests.cs،DashboardLayoutTests.cs)—نموذج القراءة_مقابل_Postgres_الحقيقي_(الحالة/KPIs/النشاط/الموارد،صحة_عقد_المسؤول،مسار المستخدم_الفارغ)،أقسام_backtests/copy-profiles/agents_الجديدة،ورحلة_ذهاب_وإياب للتخطيط(حفظ_تخطيط_مخصص_→إعادة_تحميل→_الترتيب_والرؤية_مستمران).
  • E2E (tests/E2ETests/DashboardTests.cs،DashboardCustomizeTests.cs)—كمبيوتر مكتبي_+ هاتف:بطاقات_KPI،الرسم_البياني،الحلقة_وتغذية_تعرض؛تبديل_الفترة يبديل_الفترة_النشطة_ويُعيد_التحميل؛نقر_KPI_يفتح_إلى/run؛ **إخفاء_أداة_يستمر عبر_إعادة_التحميل**، إعادة_الضبطيعيدها،وتعمل_حوار_التخصيص_على_الهاتف without_overflow_الأفقي./أيضاً_فيPageSmokeTests، MobileLayoutTests(shell+_no-overflow)وMobileJourneyTests.