منو +

تلگرام - بله - ایتا : 09364549266 موبایل : 09119542983

آموزش شمارنده‌ها (Counters) در اکسپرت متاتریدر ۵

آموزش شمارنده‌ها (Counters) در اکسپرت متاتریدر ۵
کمپین متاگلد

یکی از ابزارهای کاربردی در برنامه‌نویسی اکسپرت‌ها برای متاتریدر ۵، شمارنده‌ها (Counters) هستند. این ابزار به شما امکان می‌دهد کدهای خود را بر اساس تعداد دفعات تکرار یا شرایط مشخص اجرا یا صبر دهید. در این مقاله به شما یاد می‌دهیم چگونه از این روش‌ها در اکسپرت‌ها استفاده کنید.

۱. شمارش “X” بار و عبور

گاهی لازم است یک بلوک کد تنها پس از شمارش تعداد مشخصی اجرا شود. برای این کار مراحل زیر را دنبال کنید:

مرحله ۱️⃣ – ایجاد متغیر برای تعیین حد شمارش ابتدا یک متغیر ایجاد کنید که حد تعداد دفعات شمارش را مشخص کند. این متغیر می‌تواند به‌عنوان پارامتر ورودی برای اکسپرت تعریف شود تا بتوانید آن را در بهینه‌سازی تغییر دهید.

مرحله ۲️⃣ – ایجاد متغیر برای ذخیره تعداد شمارش شده یک متغیر دیگر بسازید که نشان دهد چند بار تا کنون شمارش شده است.

مرحله ۳️⃣ – مقایسه شمارنده با حد تعیین شده وقتی شمارنده به حد تعیین شده رسید، زمان اجرای بلوک کد مورد نظر فرا رسیده است.

مرحله ۴️⃣ – ریست کردن شمارنده بعد از اجرای کد، حتماً شمارنده را ریست کنید تا دوباره شروع به شمارش کند. در غیر این صورت شمارش به صورت بی‌نهایت ادامه پیدا می‌کند.

نکته: شما می‌توانید شرایط فیلتر برای شمارنده هم تعریف کنید. به عنوان مثال:

“اگر شرط خاصی درست بود، یک بار شمارش کن.”

input int count = 50; // Set the counting limit as an input

int Counter; // counter variable

// Expert Initializing --------------------
int OnInit()
{
 return(INIT_SUCCEEDED);
}

// Expert DeInitializing -------------------
void OnDeinit(const int reason)
{

}

// Expert OnTick --------------------------
void OnTick()
{
 Counter ++; // add 1 to the counter on each tick.  
 Comment("Current Count -:", Counter);
 
 if(Counter == count)  // Count "X" times and pass   | This block Executed only once per each count.
 {
  
  // Your code goes here......

 Alert(count," Times counted"); 
 Counter = 0; // Reset the counter at the end of your code block. This is must. 
 } 

} // OnTick End  <<----------------------

آموزش شمارنده‌ها (Counters) در اکسپرت متاتریدر ۵

۲. عبور “X” بار و سپس صبر “X” بار

این روش به شما امکان می‌دهد پس از عبور یک بلوک کد، به تعداد مشخص صبر کنید و دوباره اجرا کنید. این مدل کاربرد زیادی در مدیریت زمان‌بندی سیگنال‌ها دارد.

مرحله ۱️⃣ – تعیین حد شمارش و حد صبر دو متغیر بسازید: یکی برای حد شمارش و دیگری برای حد صبر. این متغیرها هم می‌توانند پارامتر ورودی برای اکسپرت باشند تا در بهینه‌سازی قابل تغییر باشند.

مرحله ۲️⃣ – ذخیره تعداد شمارش و صبر یک متغیر دیگر بسازید که نشان دهد چند بار شمارش شده و چند بار صبر کرده‌ایم.

مرحله ۳️⃣ – عبور پس از رسیدن به حد شمارش وقتی شمارنده به حد تعیین شده رسید، بلوک کد مورد نظر اجرا می‌شود.

مرحله ۴️⃣ – صبر پس از رسیدن به حد صبر وقتی صبرکننده به حد صبر رسید، اجرای کد به مدت مشخصی متوقف می‌شود.

مرحله ۵️⃣ – ریست کردن شمارنده و صبرکننده بعد از پایان صبر، حتماً شمارنده و صبرکننده را ریست کنید تا چرخه دوباره شروع شود.

input int count = 50; // Set the counting limit as an input
input int wait = 50; // Set the waiting limit as an input

int Counter; // counter variable default value is "0"
int Waiter; // Waiting variable default value is "0"

// Expert Initializing --------------------
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }

// Expert DeInitializing -------------------
void OnDeinit(const int reason)
  {

  }

// Expert OnTick --------------------------
void OnTick()
  {
   Comment("Counted Ticks -: ", Counter, "\n", "Waited Ticks -: ", Waiter);

   if(Counter < count) // Pass "X" times
     {
      Counter++; // update the counter

      // Your code goes here.

     }
   else
      if(Waiter < wait) // Wait for "X" times
        {
         Waiter++; // update the waiter

         // Your code goes here.

        }

   if(Waiter == wait) // Waiting Limit is reached
     {
      Counter = 0; // reset counter
      Waiter = 0; // reset waiter
     }






  } // OnTick End  <<----------------------
//+------------------------------------------------------------------+

 

نکته: شما می‌توانید برای بلوک شمارنده و صبرکننده هم شرایط فیلتر تعریف کنید، مثلا:

“اگر این شرط درست بود، کمی صبر کن.”

با استفاده از شمارنده‌ها و صبرکننده‌ها می‌توانید کدهای اکسپرت خود را کنترل شده و هوشمندانه اجرا کنید. این روش‌ها باعث می‌شوند که اجرای کدها بهینه و قابل پیش‌بینی باشد و از اجرای بی‌رویه جلوگیری شود.

 مزایا:

  • کنترل اجرای کد بر اساس تعداد دفعات
  • جلوگیری از اجرای بی‌رویه یا خطا
  • قابلیت ترکیب با شرایط مختلف و فیلترهامدیریت بهتر زمان‌بندی سیگنال‌ها


دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Blue Captcha Image Refresh

*

ارتباط با پشتیبانی هوش فعال

از طریق روش‌های زیر با ما در ارتباط باشید: