دانلود رایگان اکسپرت NovaBarra
دانلود رایگان اکسپرت NovaBarra

دانلود رایگان اکسپرت NovaBarra

خرید اکانت تریدینگ ویو

بروکر لایت فاییننس

تشخیص شروع کندل جدید در متاتریدر 4 با استفاده از اکسپرت 🕒📈

اگر شما هم در بازار فارکس یا معاملات دیگر فعالیت می‌کنید، احتمالاً می‌دانید که تشخیص لحظه شروع یک کندل جدید یکی از ابزارهای کلیدی برای اکسپرت‌ها (EA) است. در این مقاله، به ساده‌ترین و کاربردی‌ترین روش این کار در متاتریدر 4 و حتی متاتریدر 5 می‌پردازیم.

🔹 چرا نیاز به تشخیص کندل جدید داریم؟

برای یک اکسپرت، هر بار که یک تیک (Tick) جدید وارد شود، ترمینال متاتریدر به‌طور پیش‌فرض تابع OnTick() را فراخوانی می‌کند.

اما نکته مهم اینجاست که هیچ تابع پیش‌فرضی برای شروع یک بار یا کندل جدید وجود ندارد. بنابراین، اگر بخواهیم به محض باز شدن کندل جدید عملیاتی انجام دهیم، باید خودمان این تغییر را شناسایی کنیم.

🔹 روش تشخیص شروع کندل جدید 🕵️‍♂️

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

سفارش اکسپرت و ربات تریدر

کد نمونه‌ای که در ادامه آمده، هم در MQL4 و هم در MQL5 قابل استفاده است و این امکان را فراهم می‌کند:

static datetime lastBarTime = 0;  // متغیر static برای ذخیره زمان باز شدن کندل
if (Time[0] != lastBarTime) {
    lastBarTime = Time[0];        // آپدیت زمان کندل
    // اینجا می‌توانید کدهای دلخواه خود را اجرا کنید
}


// Standard tick event handler
   void OnTick()
   {
      // Check for a new bar (compatible with MQL4 and MQL5).
         static datetime dtBarraCorrente   = WRONG_VALUE;
                datetime dtBarraPrecedente = dtBarraCorrente;
                         dtBarraCorrente   = iTime( _Symbol, _Period, 0 );
                bool     bEventoBarraNova  = ( dtBarraCorrente != dtBarraPrecedente );

      // React to the event of a new bar and deal with the situation.
         if( bEventoBarraNova )
         {
            // Detect if this is the first tick received and deal with the situation.
               /* For example, when it is first applied to the graph and
 the bar is somewhere in the middle of its progress and
 is not really the start of a new bar. */
               if( dtBarraPrecedente == WRONG_VALUE )
               {
                  // Do something on the first tick or in the middle of a bar ...
               }
               else
               {
                  // Do something when a normal bar appears ...
               };

            // Do something independent of the previous condition ...
         }
         else
         {
            // Do something else ...
         };

      // Do other things ...
   };

 

🔹 نقش متغیر Static ⚡

متغیر static به ما این امکان را می‌دهد که زمان باز شدن کندل فعلی را حتی پس از خروج از تابع OnTick() حفظ کنیم. بر خلاف متغیرهای محلی معمولی، داده‌های این متغیر پس از خروج از تابع پاک نمی‌شوند و همین نکته کلیدی، تشخیص تغییر کندل را ممکن می‌کند.

🔹 نکته مهم هنگام نصب اکسپرت 🛠️

زمانی که اکسپرت برای اولین بار روی نمودار قرار می‌گیرد، کد به‌صورت پیش‌فرض واکنش نشان می‌دهد انگار که کندل تازه باز شده است. اگر قصد دارید این حالت را متفاوت مدیریت کنید، باید این شرایط را به‌صورت ویژه در برنامه خود لحاظ کنید.

🔹 دسترسی به کدها 💻

تمام کدهای منتشرشده در CodeBase اکنون در تب Public Projects در MetaEditor با نام FMIC در دسترس هستند. می‌توانید به راحتی آن‌ها را دریافت کرده و در اکسپرت خود استفاده کنید.

اندیکاتور اسکالپ طلا سیف ترید
 

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

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

شیوه کامپایل گرفتن فایل های اکسپرت و ایجاد فایل اجرایی برای اجرای اکسپرت در متاتریدر

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

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

راهنمای کامل اکسپرت up3x1 برای MetaTrader 5 📊 اگر به دنبال یک اکسپرت ادوایزر حرفه‌ای برای MetaTrader 5 هستید که بتواند معاملات شما...
up3x1
📊 معرفی کامل اندیکاتور RVIDiffSign در متاتریدر 5 سیگنال‌گیری هوشمند با ترکیب RVI و سمافور در دنیای معاملات بازارهای مالی، استفاده...
RVIDiffSign
معرفی کامل اندیکاتور StochasticDiffSign در متاتریدر 5 📊 اندیکاتور StochasticDiffSign یکی از ابزارهای کاربردی در پلتفرم MetaTrader 5 است که با هدف شناسایی نقاط...
StochasticDiffSign
📊 اندیکاتور ColorXvaMA_Digit در متاتریدر 5 راهنمای کامل، ساده و کاربردی برای معامله‌گران در دنیای تحلیل تکنیکال، استفاده از اندیکاتورهای...
Free Download ColorXvaMA_Digit Indicator for MetaTrader 5
💡 سیستم Very Blonde برای MetaTrader 5: یک نگاه جامع به Expert Advisor خلاقانه نویسنده ایده: Bluesky نویسنده کد MQL5: barabashkakvn در دنیای فارکس...
Very Blonde
در دنیای معامله‌گری و تحلیل تکنیکال، Bollinger Bands یکی از ابزارهای محبوب برای شناسایی روندها، نوسانات و نقاط ورود و خروج به...
Bollinger Bands Expert