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

نسخ التداول

عكس حساب cTrader الرئيسي على حساب واحد أو أكثر من حسابات التابعة — عبر وسطاء مختلفة وعبر أرقام cID — مع التحكم لكل وجهة + التوفيق في درجة المال.

المفاهيم​

  • ملف النسخ — حساب رئيسي واحد (SourceAccountId) + وجهات واحدة أو أكثر. دورة الحياة: Draft → Running → Paused → Stopped (Error عند الفشل). جذر التجميع: CopyProfile (يملك CopyDestination).
  • الوجهة — حساب تابع واحد + مجموعة كاملة من القواعد لكيفية نسخ الرئيسي إليه. جميع الإعدادات لكل وجهة، لذا يمكن للحساب الرئيسي الواحد أن يغذي حسابات تابعة متحفظة وعدوانية في نفس الوقت.
  • مضيف محرك النسخ — عامل تشغيل لملف النسخ (CopyEngineHost). يشترك في تيار التنفيذ الرئيسي، ويطبق كل حدث على كل وجهة.
  • المشرف — CopyEngineSupervisor، خدمة خلفية على كل عقدة. يستضيف الملفات المعينة، ويشفي نفسه عبر المجموعة (انظر التوسع).

ما يتم عكسه​

حدث الرئيسيإجراء التابع
فتح مركز السوق / نطاق السوقفتح نسخة بحجم معين (موضوع عليها معرّف موضع المصدر)
أوامر معلقة محدود / توقف / توقف-محدودوضع الأمر المعلق المطابق، حاملاً وقف الخسارة / الربح المستهدف للرئيسي
تعديل أمر معلقتعديل الأمر المعلق المنعكس في المكان (بما فيه وقف الخسارة / الربح المستهدف)
إلغاء أمر معلق / انتهاء الصلاحيةإلغاء الأمر المعلق المنعكس
إغلاق جزئيإغلاق نفس نسبة مركز التابع
زيادة الحجم (زيادة الحجم)فتح الحجم المضاف (اختياري)
تغيير وقف الخسارة / التوقف المتتبعتعديل حماية مركز التابع
إغلاق كاملإغلاق نسخة التابع

يتم وضع علامة على كل نسخة باستخدام معرّف موضع / أمر المصدر. بعد إعادة الاتصال، يعيد المضيف بناء الحالة من التوفيق: يفتح نسخاً يملكها الرئيسي لكن التابع مفقود، ويغلق "الأيتام" التابعة التي لم يعد الرئيسي يملكها — بدون تكرار التداولات.

إنشاء ملف​

تفتح ملف جديد نموذج صفحة كاملة مخصص (/copy-trading/new)، وليس حوار — مجموعة الخيارات كبيرة بما يكفي لكي تقرأ الصفحة بشكل أفضل على الهاتف وسطح المكتب. يجمع كل شيء مقدماً: اسم الملف، المصدر (الحساب الرئيسي)، الوجهات (حسابات التابعة) (تحديد متعدد مع زر تحديد الكل؛ الحساب الرئيسي المختار مستبعد من قائمة التابعة)، + مجموعة الخيارات الكاملة لكل وجهة. فقط الحسابات المرتبطة عبر Open API من cTrader قابلة للتحديد كرئيسي أو وجهة — النسخ يضع الطلبات عبر Open API، لذا لا يمكن لحساب مضاف يدوياً (cID فقط) أن ينسخ وليس موجود في القائمة؛ عند عدم ربط أي حساب، الصفحة تعرض إشعار يشير إلى حسابات التداول. تعرض أنماط التحجيم والاتجاه ومرشح الرمز كعلامات بشرية مع شرح منقوش لكل وضع على نصيحة المساعدة لإدارة الأموال. كل تحكم يحمل نصيحة مساعدة توضح ما يفعله وكيفية استخدامه. تستخدم المدخلات المنظمة تحكماً محققاً بشكل صحيح — الأرقام/النسب المئوية عبر حقول رقمية، الأنماط/الاتجاه/المرشح عبر محددات، مرشح الرمز عبر قائمة إضافة/إزالة رموز، وخريطة الرمز عبر جدول إضافة/إزالة صفوف Source → Destination (× multiplier) — لا تستخدم أبداً بلوب نص مفصول بفواصل. يتم التحقق من صحة جميع المدخلات قبل الحفظ — اسم/مصدر/وجهة مفقود، معامل حجم غير موجب، حد دنيا/أقصى سالب/غير متسق، نسبة انسحاب خارج النطاق، لا نوع أمر مفعل، أو مرشح رمز فارغ يظهر كقائمة أخطاء + يمنع الحفظ. عند الإنشاء، يتم إنشاء الملف + كل وجهة مختارة مضافة مع الإعدادات المختارة، ثم تعود الصفحة إلى قائمة نسخ التداول.

الاستيراد / التصدير. يمكن تصدير كتلة الإعدادات بأكملها إلى ملف JSON وإعادة استيرادها لملء النموذج مسبقاً، بحيث يمكن إعادة استخدام التضبيط عبر الملفات دون إعادة الكتابة. يمكن أيضاً تصدير / استيراد خريطة الرمز كملف CSV (Source,Destination,VolumeMultiplier) — جهز خريطة رموز وسيط كبيرة في جدول بيانات وحملها في خطوة واحدة. نفس تحكم الرموز وخيارات استيراد/تصدير CSV متاحة أيضاً في حوار الوجهة على صفحة نسخ التداول.

تحترم إجراءات الصف دورة الحياة: البدء مفعل فقط عندما لا يكون قيد التشغيل، التوقف + الإيقاف المؤقت فقط عند التشغيل، الحذف معطل أثناء التشغيل + يطلب تأكيداً قبل إزالة الملف + الوجهات.

يُظهر ملف مُبدأ للتو حالة Starting لفترة وجيزة (وليس أخضر Running) بينما يقوم مضيفه بتحميل بيانات المرجع وتشغيل أول إعادة مزامنة — فهو ليس يعكس الأوامر عبر الوجهات بعد. يتحول إلى Running في اللحظة التي تكتمل فيها إعادة المزامنة الأولى ويمكن للمحرك نسخ. يتم التعامل مع البدء كقيد التشغيل لعناصر التحكم الصف (البدء معطل، التوقف وسجلات مباشرة مفعلة، الحذف/التعديل محظور)، بحيث لا يمكن إعادة تشغيل ملف التدفئة أو تحريره أثناء البدء. يتم تتبع مرحلة التدفئة في العملية على العقدة التي تستضيف الملف؛ ملف مستضاف على نسخة أخرى (أو لا يمكن استضافته — حساباته المصدر/الوجهة غير مرتبطة عبر Open API) يعرض حالتها البسيطة.

خيارات لكل وجهة​

يتم التعيين على صفحة ملف جديد، في حوار الوجهة على صفحة نسخ التداول، أو عبر POST /api/copy/profiles/{id}/destinations:

  • الحجم (MoneyManagementMode + معامل): كمية ثابتة، مضروب الكمية/القيمة الاسمية، توازن متناسب/إنصاف/الهامش الحر، نسبة مئوية من المخاطر الثابتة، رافعة مالية ثابتة، متناسب تلقائي، مخاطرة %-من-التوقف (M7). زائد حدود كمية دنيا/قصوى + فرض كمية دنيا. المخاطرة من التوقف تحجم الوجهة بحيث تخاطر بنسبة مئوية معينة من رصيدها الخاص، مشتقة من مسافة وقف الخسارة للرئيسي (الرئيسي يخاطر بـ 2% → التابع يخاطر تلقائياً بـ 2%): كميات = الرصيد × % ÷ (مسافة التوقف × حجم العقد). الفتح الرئيسي بدون وقف خسارة لا توجد مسافة لتحجيم ضده → يستخدم كمية توقف الخسارة بديلة المكونة (M7) إذا تم تعيينها، وإلا تم تخطيها (no_stop_loss) لم يتم تخمينها. يتوازن الإنصاف/الهامش الحر المتناسب بعيداً عن الإنصاف الحقيقي للحساب (الرصيد + Σ عائم P&L، مشتق لكل API cTrader المفتوح الذي لا يسلم الإنصاف)، وليس الرصيد العادي — بحيث يعكس الرئيسي الجالس على ربح/خسارة مفتوحة نسخاً بشكل صحيح. لم يتم كشف الهامش المستخدم بواسطة API التوفيق، لذا يتم التعامل مع الهامش الحر كإنصاف (وكيل الأموال المتاحة بصراحة)؛ تقرأ الأنماط الأخرى الرصيد + تخطي جولة إعادة التقييم الإضافية.
  • مرشح الاتجاه: كلاهما / طويل فقط / قصير فقط. عكس: الجانب المقلوب (+ مبادلة SL↔TP) للنسخ المتناقضة.
  • إدارة فقط (تجاهل-صفقات-جديدة / إغلاق-فقط): عكس الإغلاقات والإغلاقات الجزئية وتغييرات الحماية على المراكز المنسوخة بالفعل، لكن لا تفتح أي مراكز/أوامر معلقة جديدة (تم تخطيها manage_only). استخدم لإغلاق الوجهة دون قطع النسخ الموجودة.
  • مزامنة-الفتح-عند-البدء / مزامنة-الإغلاق-عند-البدء (افتراضي مشغل): على أول إعادة مزامنة للملف، سواء كان يجب فتح نسخ لمراكز الرئيسي الموجودة مسبقاً، + سواء كان يجب إغلاق نسخ التابع الأمر الذي أغلقه الرئيسي أثناء توقف الملف. كلاهما ينطبق فقط عند البدء — إعادة الاتصال أثناء التشغيل تصالح دائماً بالكامل بحيث يتعافى عدم التزامن بغض النظر.
  • خريطة الرمز + مرشح الرمز (قائمة بيضاء / قائمة سوداء). يحمل كل إدخال في خريطة الرمز مضروب حجم إضافي لكل رمز (تجاوز cMAM لكل رمز) يحجم حجم النسخة لهذا الرمز فوق حجم الوجهة (1 = لا تغيير). يتم استيراد / تصدير الخريطة بأكملها كـ CSV (GET …/symbol-map.csv, PUT …/symbol-map/csv؛ الأعمدة Source,Destination,VolumeMultiplier) — يتم التحقق من صحة كل صف من خلال كائنات قيمة النطاق، لذا لا يمكن لملف مشوه أن ينتج خريطة غير صحيحة.
  • نافذة ساعات التداول (C18) — نافذة يومية UTC لكل وجهة (start/end دقائق في اليوم، نهاية حصرية؛ start == end = طوال اليوم). الفتح الجديد خارج النافذة تم تخطيه (trading_hours)؛ النافذة مع start > end تلتف بعد منتصف الليل (على سبيل المثال 22:00–06:00). المراكز الموجودة تبقى مدارة.
  • مرشح تسمية المصدر (C18، معادل cTrader لمرشح رقم سحري MT) — عند التعيين، انسخ فقط تداولات الرئيسي التي تطابق التسمية بالضبط (على سبيل المثال تداولات بوت واحد، أو تسمية يدوية فقط)؛ وإلا تم تخطيها (source_label). فارغ = انسخ الكل. يتم نقلها على ExecutionEvent.SourceLabel من تسمية موضع/أمر الرئيسي TradeData.Label، موضوع احترام عند إعادة المزامنة أيضاً.
  • حماية الحساب (ZuluGuard / الحماية العالمية للحساب) — مراقبة الإنصاف المباشر للوجهة (الرصيد + Σ عائم P&L، مصوت كل CopyDefaults.EquityGuardInterval) مقابل أرضية StopEquity و/أو سقف اختياري TakeEquity. عند الاستراحة، طبق الوضع: CloseOnly (توقف النسخ الجديدة، احتفظ بإدارة الموجودة)، Frozen (توقف الفتح)، SellOut (إغلاق كل نسخة على الوجهة على الفور). بمجرد إطلاق النار، الوجهة مقفلة — لا فتح جديد حتى إعادة تشغيل المضيف — + تم رفع تنبيه CopyAccountProtectionTriggered. يتطلب SellOut StopEquity؛ TakeEquity يجب أن يجلس فوق StopEquity. لا ضمان: بيع يستخدم تنفيذ السوق — مثل مكافئ كل منافس، لا يمكن ضمان سعر الملء في السوق السريع/الفجوة.
  • زر الذعر Flatten-All (C8) — POST /api/copy/profiles/{id}/flatten يغلق على الفور كل موضع منسوخ على كل وجهة + أقفال ضد الفتح الجديد. موجه عملية عبر: تعيين API علم، المشرف يسلم إلى مضيف التشغيل (إعادة استخدام قناة تدوير الرمز)، والذي يتسطح في المكان؛ تم مسح العلم لذا يطلق مرة واحدة بالضبط (CopyFlattenAll تنبيه). ثم يقوم المستخدم بإيقاف مؤقت/توقف الملف.
  • حماية قاعدة شركة التمويل (C7) — تطبيق مستخدمي التمويل الشركة طلبوها. لكل وجهة، حد الخسارة اليومية (خسارة من الإنصاف الافتتاحي لليوم) و/أو حد الانسحاب المتتبع (خسارة من الإنصاف المرتفع الجاري)، كلاهما بعملة الإيداع. عند الاستراحة الوجهة تسطح تلقائياً (كل نسخة مغلقة) + مقفلة بقية يوم UTC (فتح جديد تم تخطيه prop_lockout)؛ تنبيه CopyPropRuleBreached يطلق. يتم مسح الإغلاق عندما يتدحرج يوم UTC (خط أساس/ذروة جديدة مأخوذة). يشاركون في نفس استطلاع الإنصاف المباشر مثل حماية الحساب.
  • رعشة التنفيذ (C11، معطل بشكل افتراضي) — تأخير عشوائي 0..N ms قبل وضع كل نسخة، لإلغاء الارتباط من طوابع الوقت القريبة المتطابقة عبر حسابات المستخدم الخاصة. تحذير الامتثال: مساعدة لشركات التمويل التي تسمح بالنسخ — ليس أداة لتجنب شركة تحظر؛ البقاء في حدود قواعد شركتك هو مسؤوليتك.
  • قفل الإعدادات (C9) — تجميد إعدادات الوجهة للفترة (POST …/destinations/{id}/lock بدقائق). بينما يكون مقفلاً، لا يمكن إزالة الوجهة (التجميع يرفض مع CopyDestinationConfigLocked) — حماية متعمدة ضد التغييرات الحمقاء أثناء الانسحاب. ينتهي القفل تلقائياً في الطابع الزمني الخاص به.
  • تنبيه ما قبل الاتساق (C10) — تحذير (مرة واحدة لكل يوم UTC) عندما تصل الربح اليومي للوجهة إلى نسبة مئوية معينة من الإنصاف الافتتاحي لليوم (CopyConsistencyThresholdApproaching)، بحيث تحترم قاعدة اتساق شركة التمويل قبل أن تطلق النار. الجانب الإيجابي، مستقل عن جانب الخسارة؛ يعمل بنفس خط الأساس اليومي مثل حماية القاعدة.
  • مرشح نوع الأمر — اختر بالضبط أي أنواع أوامر رئيسي لنسخها: السوق، نطاق السوق، محدود، توقف، توقف-محدود (CopyOrderTypes الأعلام؛ جميع الأنواع الافتراضية). انتقائية تشبه cMAM.
  • نسخة SL / نسخة TP — عكس وقف الخسارة / الربح المستهدف للرئيسي، أو إدارة الحماية بشكل مستقل. ينطبق على كل من المراكز المفتوحة و الأوامر المعلقة المستقرة — يتم وضع نسخة محدودة/توقف/توقف-محدود وتعديلها باستخدام وقف الخسارة/الربح المستهدف للأمر الرئيسي (مبدل تحت عكس)، بحيث تتعلق الحماية في لحظة ملء الأمر المعلق، وليس فقط بعد ذلك.
  • نسخة التوقف المتتبع، عكس الإغلاق الجزئي، عكس زيادة الحجم — كل واحد قابل للتبديل بشكل مستقل.
  • انسخ انتهاء الصلاحية المعلق (افتراضي مشغل) — عكس طابع الوقت لانتهاء صلاحية Good-Till-Date للأمر الرئيسي المعلق.
  • انسخ الانزلاق الرئيسي (افتراضي مشغل) — بالنسبة لأوامر نطاق السوق والتوقف-محدود، ضع أمر التابع بانزلاق الرئيسي بالضبط-في-النقاط (السعر الأساسي مأخوذ من البقعة المباشرة للتابع).
  • الحراس: أقصى نسبة انسحاب، حد الخسارة اليومية، تأخير النسخ الأقصى، مرشح الانزلاق (تخطي النسخة إذا تحرك السعر التابع بعيداً عن نقاط N من إدخال الرئيسي). تأخير النسخ الأقصى يتم قياسه مقابل طابع الوقت الحقيقي للخادم للحدث الرئيسي (ExecutionEvent.ServerTimestamp) عبر TimeProvider المحقون: الإشارة الأقدم من أقصى تأخر تم تكوينه تم تخطيها، بحيث لا تتم نسخ قديمة أبداً في وقت متأخر (في السابق الحد الأقصى للتأخير كان دائماً صفراً + الحارس ميت).
  • تطبيع دقة SL/TP (M6) — أسعار وقف الخسارة/الربح المستهدف المنسوخة مستديرة إلى وجهة دقة رمز الرمز قبل التعديل (على المراكز و وضع أمر معلق/تعديل)، بحيث لا تطلق السعر الرئيسي بدقة أفضل (أو عدم تطابق أرقام وسيط) أبداً خادم INVALID_STOPLOSS_TAKEPROFIT.
  • دائرة كاسر الرفض / حماية المتابع (G8) — وجهة ترفض CopyDefaults.RejectionBudget تفتح على التوالي مسافرة: لا فتح جديد لنافذة التبريد (CopyDestinationTripped تنبيه يطلق)، إيقاف عاصفة الرفض من التحرر (حساب شركة التمويل). تبقى المراكز الموجودة مدارة + مغلقة بينما مسافرة؛ كاسر إعادة تعيين تلقائي بعد التبريد + نسخة ناجحة مسح العداد.
  • سقف صرف الكمية (C14) — حد أقصى مطلق لحجم النسخة و/أو حد متعدد-من-الرئيسي. يتم حساب النسخة تجاوز الحد الأقصى المطلق، أو تجاوز N× حجم الرئيسي الخاص، صعب-مغلق (سطح كـ lot_sanity تخطي، تم العد على cmind.copy.skipped) لم يتم وضعه — يدافع ضد فئة فرط الحجم الكارثية (0.23-أرتال الرئيسي تحويل إلى 3 أرتال على كل جهاز استقبال عبر مضروب هارب أو خطأ تقريب). كلا البعدين افتراضي 0 (معطل).

الموثوقية والحالات الحدية​

تم بناء محرك لواقع أن أي شيء يمكن أن يفشل في أي وقت:

  • مهلة ربط الملء المعلق للعبد (C13) — عبد معلق منعكس حيث اختفى العبد المعلق الرئيسي (لم يستقر ولا تم ملؤه للتو) ملغى بعد مهلة الربط، بحيث لا يمكن ملء نسخة العبد دون ارتباط في موضع غير مدار (CopyPendingTimedOut). تنظيف إعادة المزامنة أيضاً أيتام معلق مملوءة موضوع الهوية.

  • سباق الملء المعلق عبر الوسيط — يمكن أن يملأ المعلق الخاص به (السعر المصاب) في النافذة الصغيرة قبل معالجة حدث الملء/الإلغاء الرئيسي. هذا يترك موضع العبد الذي يُطلق عليه معرّف الأمر الترتيب المصدر، والذي قد تفتقد المسارات القريبة/SL-TP الكنسية (الرئيسية على معرّف الموضع المصدر). على ملء رئيسي تتقاعد النسخة المبكرة للعبد واستبدالها بنسخة سوق واحدة موسومة بشكل كنسي — لذا تنتهي الوجهة بنسخة واحدة بالضبط، لا تضاعف أبداً؛ على إلغاء رئيسي يتم إغلاقها بشكل صريح (الرئيسي لم يأخذ أبداً التجارة). كلاهما يعمل فوراً، وليس فقط عند إعادة المزامنة التالية. إصابة SL/TP على جانب العبد التي تغلق نسخة الرئيسي لا تزال تحتفظ بها تحركها الرئيسي وأعيد فتحها عند المصالحة التالية (المحرك ينعكس أحداث الرئيسي؛ لا يستهلك تنفيذات جانب الوجهة).

  • إغلاق/تسطيح قوي (M8) — إغلاق أيتام عند إعادة المزامنة، أو التسطيح عند اختراق الحراس، يتسامح مع موضع وسيط مغلق بالفعل (POSITION_NOT_FOUND): كل إغلاق يعمل بشكل مستقل، لذا لا يتم إلغاء هوية واحدة قديمة أبداً إعادة المزامنة أو ترك بقية الحساب غير مسطح.

  • البدء مع الرئيسي موجود بالفعل في التداولات — على البدء يصالح المضيف + يفتح نسخ لمراكز الرئيسي الموجودة.

  • انقطاع الاتصال / عدم التزامن — على إعادة الاتصال يصالح المضيف: يفتح نسخاً مفقودة، ويغلق الأيتام، وأعادة الهويات المعلقة. لا أوامر مكررة.

  • فشل وضع الأمر — فشل في وجهة واحدة مسجل، لا يحجب أبداً وجهات أخرى.

  • رمز صحيح واحد لكل cID — يلغي cTrader رمز الوصول القديم للـ cID في لحظة إصدار رمز جديد. تبديل cMind مضيف التشغيل في المكان (إعادة فحص مأخذ مباشر) بحيث يستمر النسخ دون إسقاط دفقة. انظر دورة حياة الرمز.

قابلية المراجعة​

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

إلى جانب السجلات، يصدر محرك مقاييس OpenTelemetry على متر cMind.Copy (مسجل في خط أنابيب OTel المشترك، المُصدَّر عبر OTLP / إلى Azure Monitor مثل الباقي): cmind.copy.latency (حدث رئيسي → إرسال، ms)، cmind.copy.dispatch.duration (مروحة-خروج لجميع الوجهات، ms)، cmind.copy.slippage.points، cmind.copy.placed (موضوع علامة من قبل وجهة)، cmind.copy.skipped (موضوع علامة من قبل السبب)، + cmind.copy.failed. تجعل هذه انحدار الكمون/الانزلاق قابل للقياس، وليس فقط مرئي في سطر السجل — مجموعة مباشرة التأكيد عليها مقابل الميزانية.

API​

  • GET /api/copy/profiles — قائمة.
  • POST /api/copy/profiles — إنشاء (مع معرفات حساب وجهة اختيارية).
  • GET /api/copy/profiles/{id} — تفاصيل كاملة شامل كل خيار وجهة.
  • POST /api/copy/profiles/{id}/destinations — إضافة وجهة مع مجموعة الخيارات الكاملة.
  • DELETE /api/copy/profiles/{id}/destinations/{destinationId} — إزالة.
  • POST /api/copy/profiles/{id}/{start|pause|stop} — دورة الحياة.

الاختبارات​

  • وحدة (tests/UnitTests/CopyTrading) — أنماط الحجم، مرشحات القرار، مرشح نوع الأمر، نسخ انتهاء الصلاحية، الانزلاق نطاق السوق/التوقف-محدود، تبديلات SL/TP، إغلاق جزئي، تعديل أمر معلق/إلغاء، البدء مع فتح، قطع الاتصال → عدم التزامن → إعادة المزامنة، تبديل الرمز في المكان، إلغاء صحة عبر cID. يعمل ضد FakeTradingSession، محاكي في الذاكرة موثوق به في cTrader.
  • التكامل (tests/IntegrationTests/CopyLive) — ارتباط العقدة/مطالبة الإيجار، انتشار إصدار الرمز على PostgreSQL الحقيقي.
  • E2E (tests/E2ETests) — جولة ذهاب وإياب خيار الوجهة عبر API + واجهة المستخدم، دورة الحياة الكاملة.
  • الإجهاد / DST (tests/StressTests) — اختبار المحاكاة الحتمية: أحمال عشوائية مزروعة + حقن الأعطال (صنبور مأخذ، رفض الأمر، رفض نطاق السوق، تدوير الرمز، وفاة العقدة) محرك CopyEngineHost للسكون + التأكيد على ثبات التقارب. انظر testing/stress-testing.md. سطحت هذه المجموعة + أصلحت عرق حقيقي: OnReconnected سلك قبل التحميل المرجعي الأولي + إعادة المزامنة، لذا فإن صنبور مأخذ أثناء البدء يمكن أن يعيد تشغيل ثاني إعادة مزامنة في وقت واحد + فساد قواموس حالة المضيف غير المتزامنة — تحميل البدء + إعادة المزامنة الأولى الآن يعمل تحت _stateGate.
  • مباشر — حسابات cTrader تجريبية حقيقية؛ انظر testing/live-copy-trading.md.

انظر dev-credentials.md لملف بيانات اعتماد واحد مباشر + E2E قراءة الطبقات.

عناصر التحكم في الملف وإدارة الوجهة​

البدء/الإيقاف عبارة عن أزرار رمز على كل صف ملف (معطل عندما لا ينطبق الإجراء). يتم عرض حسابات المصدر والوجهة برقم رقم الحساب الخاص بهم، وليس أبداً معرف داخلي. سيؤدي النقر على ملف إلى فتح حوار لإدارة حسابات الوجهة الخاصة به (إضافة/إزالة مع إعدادات كاملة لكل وجهة).