كيفية فتح طلب واحد فقط عندما يعطي رسمان بيانيان نفس الإشارة
Results 1 to 4 of 4

Thread: كيفية فتح طلب واحد فقط عندما يعطي رسمان بيانيان نفس الإشارة

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



  2. #2

    Quote Originally Posted by ;
    مرحبًا ، أقوم بتشغيل نفس EA على رسومات متعددة ، يتم تنفيذه وطلبه عند استيفاء الشروط عند فتح شمعة جديدة. لكن في بعض الأحيان يعطي أكثر من زوج إشارة في نفس الوقت مما يؤدي إلى طلبين مفتوحين في نفس الوقت تمامًا ، كما هو موضح في الصورة. هل هناك أي طريقة لتصحيح هذا ومنع أحد الأوامر من الحدوث؟ {صورة}
    يتم تشغيل كل من EA في مؤشرات ترابط مختلفة ويتم تنفيذهما بشكل غير متزامن. إذا قاموا بفتح مراكز في نفس الوقت بالضبط ، فأنت بحاجة إلى إجبارهم على التنفيذ المتزامن باستخدام كائن المزامنة (mutex). قم بإنشاء كائن المزامنة (mutex). عندما يتم استيفاء إشارة الفتح ، دع كل EA يحصل على كائن المزامنة (mutex). بمجرد الحصول على كائن المزامنة (mutex) ، تحقق من وجود أمر مفتوح بالفعل. إذا كانت الإجابة بنعم ، فلا تفتح واحدة أخرى. نظرًا لأن EA واحد فقط يمكنه الحصول على كائن المزامنة (mutex) في أي وقت ، فإن EA الذي يحاول الحصول عليه سيتعين عليه انتظار EA الذي يمتلكه. بهذه الطريقة ، لم تعد EA تعمل بالتوازي ، وهو شرط مسبق لتحقيق ما تريد. تطبيق عملي هو
    https://github.com/rosasurfer/mt4-mq...fLib1.mq4#L315(إنها تفعل الكثير مما تحتاجه) ، حالة استخدام فعلية
    https://github.com/rosasurfer/mt4-mq...ller.mq4#L1030، لا يتم تنفيذ الأسطر 1049-1051 أبدًا بواسطة أكثر من EA واحد بالضبط (سلوك متزامن بدلاً من سلوك غير متزامن بخلاف ذلك).
    https://www.mql5.com/en/docs/globals...setonconditionهو صديقك ونقطة البداية للتحقيق.

  3. #3

    Quote Originally Posted by ;
    {quote} يتم تشغيل كل من EA في مؤشرات ترابط مختلفة ويتم تنفيذهما بشكل غير متزامن. إذا قاموا بفتح مراكز في نفس الوقت بالضبط ، فأنت بحاجة إلى إجبارهم على التنفيذ المتزامن باستخدام كائن المزامنة (mutex). إنشاء كائن المزامنة. عندما يتم استيفاء إشارة الفتح ، دع كل EA يحصل على كائن المزامنة (mutex). بمجرد الحصول على كائن المزامنة (mutex) ، تحقق من وجود أمر مفتوح بالفعل. إذا كانت الإجابة بنعم ، فلا تفتح واحدة أخرى. نظرًا لأن EA واحد فقط يمكنه الحصول على كائن المزامنة (mutex) في أي وقت ، فإن EA الذي يحاول الحصول عليه سيتعين عليه انتظار EA الذي يمتلكه. بهذه الطريقة ، لم يعد EA يعمل بالتوازي ، شرط مسبق ...
    حسنا شكرا لك. إذن ، كائن المزامنة من بحثي هو ملف mqh خارجي ، أليس كذلك؟

  4. #4

    Quote Originally Posted by ;
    {quote} حسنًا ، شكرًا لك. إذن ، كائن المزامنة من بحثي هو ملف mqh خارجي ، أليس كذلك؟
    قد يكون أي مورد يمكن الوصول إليه بواسطة لغة برمجة مع طريقة محددة لإدارة الوصول. بعبارات بسيطة للغاية ، يعد هذا عدد مرات الوصول إلى المورد. يمكن أيضًا أن يُطلق على مثل هذا المورد إشارة ، ومفتاح المزامنة هو إشارة خاصة: واحدة ذات وصول حصري متبادل. هذا يعني أنه عداد بأقصى عدد من المداخل المتزامنة وهو 1. إذا استحوذت إحدى كتل التعليمات البرمجية على المورد ، فلا يمكن لأي كتلة رمز أخرى (حصرية متبادلة). يتعين على جميع الآخرين الانتظار حتى يقوم الكود الذي يمتلك المورد بإصداره. سمها قفل إذا كنت تريد. في MQL ، يمكنك استخدام مقبض نافذة ، أو مقبض ملف ، أو متغير خاص ، أو في حالة إطار العمل الخاص بي ، فهو مجرد سلسلة MQL عادية مخزنة في المخطط. يتيح لك GlobalVariableSetOnCondition () إنشاء آلية قفل باستخدام متغير عام كمورد يمكنك إدارة الوصول إليه. ابحث عن GlobalVariableSetOnCondition وقم بالقفل في منتدى MQL5 ، هناك بعض الأمثلة على عمليات التنفيذ. GlobalVariableSetOnCondition () هو جزء من MQL خاصة لهذا الغرض ، من أجل أي شيء آخر. من وثائق MQL4 القديمة: توفر الوظيفة وصولاً ذريًا إلى متغير عالمي ، لذلك يمكن استخدامها لتوفير إشارة للتفاعل بين العديد من الخبراء الذين يعملون في وقت واحد داخل محطة عميل واحدة.

أذونات النشر

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  
  • رمز BB مفعل
  • الابتسامات مفعلة
  • رمز[IMG] مفعل
  • رمز [VIDEO] مفعل
  • رمز HTML غير مفعل
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.