الرئيسية > المدونة > OnTick وOnTimer في MQL5: متى تستخدم كلًّا منهما

MQL5تطوير الـ EAMT5

OnTick وOnTimer في MQL5: متى تستخدم كلًّا منهما

نُشر: 2026-10-29وقت القراءة: حوالي 2 دقيقة
⏱ يعكس هذا المقال المعلومات حتى تاريخ نشره. تتغير أرقام أداء EA (PF وDD والعائد السنوي) مع التداول الحي وإعادة التحقق — راجع أحدث المعلومات في صفحات EA. اطلع على أحدث نتائج EA →

الخلاصة: القرار عند الشمعة الجديدة، والمهام الزمنية في OnTimer

نبدأ بالخلاصة. إذا كان الـ EA يتخذ قرارات التداول على أطر زمنية أطول مثل H1 أو H4، فيكفي أن يتخذ القرار عند أول تيك بعد تكوّن شمعة جديدة. تكرار الحساب نفسه مع كل تيك لا يغيّر القرار، وكل ما يفعله هو استهلاك المعالج. أما المهام التي نريد تنفيذها حتى عند غياب التيكات، فنستخدم لها OnTimer، مثل كتابة الحالة في نهاية الأسبوع أو ترتيب الأوامر في وقت محدد.

لكن الخيار الصحيح يعتمد على الاستراتيجية. في هذا المقال نوضح الفرق بين الآليتين، والنقاط التي يستطيع من يختار الـ EA التحقق منها.

مقارنة الوسطاء الموصى بهم →

🎁 تحميل EA مجاناً

📧 دورة بريدية مجانية (8 رسائل) + حزمة من 13 مؤشر MT5 حصريًا للمشتركين

فور اشتراكك يصلك رابط تنزيل حزمة حصرية للمشتركين تضم مؤشرات MT5 الثلاثة عشر لدينا: ملفات مُجمّعة (.ex5) والشيفرة المصدرية ودليل الإعداد. بعد ذلك 8 رسائل عن أساسيات التداول الآلي وقراءة الاختبارات التاريخية بشكل صحيح واختيار الوسيط (رسالة يوميًا في أول 5 أيام، ثم بعد 7 و14 و30 يومًا من الاشتراك). وتصلك أيضًا تنبيهات قبل كل رفع لسعر النسخ المباعة في MQL5 Market (سعر الإطلاق يرتفع تدريجيًا مع المبيعات). مستشارو موقعنا مجانيون مع حساب حقيقي لدى وسيط شريك.

* الخصوصية محمية بشكل صارم. يمكنك إلغاء الاشتراك في أي وقت.

آلية العمل: التشغيل بالتيك والتشغيل بالزمن

OnTick (التشغيل بالتيك)

يُستدعى OnTick كلما وصل سعر جديد (تيك) إلى الرمز الذي يعمل عليه الـ EA. في أوقات الحركة العنيفة قد يُستدعى عدة مرات في الثانية الواحدة، وفي عطلة نهاية الأسبوع حين يتوقف السوق لا يُستدعى أبدًا.

وهناك سلوك يجب معرفته: التيكات التي تصل أثناء انشغال الـ EA بمعالجة التيك السابق لا تدخل في طابور الانتظار، بل يتم تجاهلها. أي أن الـ EA الذي تستغرق معالجته وقتًا طويلًا سيفوته عدد من التيكات في أثناء الحركات المفاجئة.

OnTimer (التشغيل بالزمن)

يُستدعى OnTimer على فترات تحددها بالدالة EventSetTimer(). وهو يعمل بغض النظر عن حركة السعر، لذلك يُستدعى حتى أثناء إغلاق السوق. لكل EA مؤقت واحد فقط، وإذا كانت المعالجة مشغولة يتم تجاهل الاستدعاء بالطريقة نفسها. كما أنه لا يوجد ضمان بأن يُستدعى في الفترة المحددة بالضبط.

البندOnTickOnTimer
ما الذي يشغّلهتحديث السعرمرور فترة زمنية
أثناء إغلاق السوقلا يُستدعىيُستدعى
عدد الاستدعاءاتيزيد كلما اشتدت حركة السوقثابت تقريبًا
المهام المناسبةقرارات الدخول والخروجالتجميع الدوري والمهام المرتبطة بوقت محدد
أهم تنبيهالمعالجة الثقيلة تُفوّت التيكاتيعمل حتى لو لم يصل سعر جديد

كيف تكتب كودًا لا يهدر المعالج في الاستراتيجيات قليلة التداول

لو كانت الاستراتيجية تقرر على إطار H4، فمهما استُدعي OnTick آلاف المرات خلال الساعات الأربع التي تستغرقها الشمعة الواحدة، تبقى قيم الشمعة المكتملة التي نعتمد عليها في القرار كما هي. لذلك نعتمد عادةً صيغة تمرّر المعالجة الثقيلة «عند تغيّر الشمعة فقط»، كما يلي:

datetime g_lastBar = 0;

void OnTick()
{
   datetime cur = iTime(_Symbol, PERIOD_H4, 0);
   if(cur == g_lastBar) return;   // لا شيء ما دمنا في الشمعة نفسها
   g_lastBar = cur;
   // هنا نتخذ القرار بالاعتماد على الشمعة المكتملة (shift 1)
}

ومن المهم أيضًا إنشاء مقابض المؤشرات (handles) مرة واحدة في OnInit، وعدم إعادة إنشائها داخل OnTick في كل مرة. وإذا استخدمت OnTimer فاستدعِ EventKillTimer() في OnDeinit لإيقاف المؤقت.

عند تشغيل الـ EA على عدة رسوم بيانية في VPS، يظهر هذا الفرق في صورة حمل على المعالج. أفكار اختيار الـ VPS مجموعة في معلومات VPS.

ما الذي يمكن لمن يختار الـ EA التحقق منه

حتى لو لم تتمكن من الاطلاع على الكود، يمكنك التحقق من النقاط التالية إلى حدٍّ ما:

  • الوصف والمعاملات: هل يوجد خيار مثل «اتخاذ القرار عند الشمعة الجديدة فقط»؟
  • استخدام المعالج في VPS: إذا انخفض الحمل بوضوح عند إزالة EA واحد، فقد يكون ينفّذ معالجة ثقيلة مع كل تيك.
  • سجل الخبراء (Experts log): هل تتكرر المخرجات نفسها مع كل تيك؟
  • نتائج الاختبار: إذا كان الـ EA يقرر عند سعر افتتاح الشمعة، فلا يُفترض أن تختلف النتائج كثيرًا بين وضع «Open prices only» ووضع «Every tick». أما إذا اختلفت كثيرًا فهو يتفاعل أيضًا مع حركة السعر داخل الشمعة.

للاطلاع على أساسيات تركيب الـ EA وإعداده، راجع طريقة إعداد الـ EA.

الحدود والتنبيهات

لنذكر أيضًا الجوانب غير المريحة.

  • لا نراقب المخاطر داخل الشمعة: عندما نقصر القرار على الشمعة الجديدة، لا يتفاعل الـ EA مع التغيرات المفاجئة داخلها. ينبغي حماية الصفقة بأمر وقف الخسارة المرتبط بالأمر نفسه، وإلا فقد تتسع الخسارة بما لا نتوقعه.
  • تأخر الشمعة الجديدة: حتى بعد تكوّن الشمعة، لا تبدأ المعالجة قبل وصول أول تيك فيها. في الرموز أو الأوقات قليلة الحركة قد يتأخر القرار عن بداية الشمعة.
  • OnTimer قد يختلف في الاختبار عن الواقع: في المختبر يُستدعى المؤقت وفق زمن افتراضي، فلا يلزم أن تكون الفترات مطابقة لما يحدث في الحساب الحقيقي.
  • خفة المعالجة لا تحسّن الأداء: خفض حمل المعالج لا يجعل الاستراتيجية أكثر ربحًا. جودة الاستراتيجية مسألة منفصلة.

وفي الـ EA العاملة على H4 والقليلة الصفقات، مثل ETHEREUM EA، يصعب أكثر ملاحظة هذه الفروق في التصميم. ومع ذلك فإن ما يمكن التحقق منه من الخارج محدود. وما نستطيع الجزم به هو الكود الذي كتبناه نحن فقط.

الخلاصة

  • يُستدعى OnTick عند وصول سعر، ويُستدعى OnTimer على فترات زمنية ثابتة
  • الأحداث التي تصل أثناء المعالجة لا تدخل طابور الانتظار بل يتم تجاهلها، والمعالجة الثقيلة تؤدي إلى فوات بعضها
  • في الاستراتيجيات قليلة التداول، اتخاذ القرار «عند الشمعة الجديدة فقط» يوفّر المعالج
  • استخدم OnTimer للمهام التي نريدها حتى في الأوقات التي لا توجد فيها تيكات
  • الحماية من مخاطر ما داخل الشمعة تتم بأمر الوقف، وخفة المعالجة لا ترفع الأداء
  • مزيد من الخبرات في معرفة EA وMT5

📧 دورة بريدية مجانية (8 رسائل) + حزمة من 13 مؤشر MT5 حصريًا للمشتركين

فور اشتراكك يصلك رابط تنزيل حزمة حصرية للمشتركين تضم مؤشرات MT5 الثلاثة عشر لدينا: ملفات مُجمّعة (.ex5) والشيفرة المصدرية ودليل الإعداد. بعد ذلك 8 رسائل عن أساسيات التداول الآلي وقراءة الاختبارات التاريخية بشكل صحيح واختيار الوسيط (رسالة يوميًا في أول 5 أيام، ثم بعد 7 و14 و30 يومًا من الاشتراك). وتصلك أيضًا تنبيهات قبل كل رفع لسعر النسخ المباعة في MQL5 Market (سعر الإطلاق يرتفع تدريجيًا مع المبيعات). مستشارو موقعنا مجانيون مع حساب حقيقي لدى وسيط شريك.

* الخصوصية محمية بشكل صارم. يمكنك إلغاء الاشتراك في أي وقت.

هل لديك سؤال عن المستشارين الآليين أو الفوركس؟

يمكنك طرحه في منتدى التداول على Nattzy (التسجيل مجاني). نرحب أيضًا بالأسئلة خارج موضوع هذا المقال، مثل إعدادات المستشار الآلي واختيار الوسيط.

اسأل على Nattzy ↗

التعليقات والأسئلة