منو +

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

دانلود رایگان اکسپرت Start of New Bar برای متاتریدر 4

تشخیص Start of New Bar در اکسپرت MetaTrader 4

تشخیص باز شدن کندل جدید در اکسپرت (EA) متاتریدر

اگر شما یک اکسپرت (Expert Advisor) در متاتریدر ایجاد کرده باشید، حتماً می‌دانید که با دریافت هر تیک قیمت جدید (Tick Quote) تابع رویداد OnTick() به‌صورت خودکار فراخوانی می‌شود. اما نکته مهم اینجاست که متاتریدر به‌صورت پیش‌فرض رویدادی برای شروع یا باز شدن یک کندل جدید ندارد.

در این مقاله یاد می‌گیرید چطور می‌توان با یک روش ساده و حرفه‌ای، شروع کندل جدید را شناسایی و به آن واکنش نشان داد.

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

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

جهت عضویت در کانال اندیکاتور و اکسپرت  کلیک کنید ایتا | بله | تلگرام

 

جهت سفارش طراحی و برنامه‌نویسی اختصاصی اندیکاتور، اکسپرت و ربات معامله‌گر برای MetaTrader 4 و  MetaTrader 5  می‌توانید استراتژی، ایده یا نیاز معاملاتی خود را با تیم هوش فعال در میان بگذارید. برای دریافت مشاوره، بررسی امکان پیاده‌سازی و ثبت سفارش، از طریق شماره 09364549266 با پشتیبانی هوش فعال در ارتباط باشید.

  • باز کردن پوزیشن‌های جدید بر اساس سیگنال کندل قبلی
  • به‌روزرسانی سطوح Stop Loss و Take Profit
  • ثبت داده‌ها یا تحلیل بازار در شروع هر کندل

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

روش تشخیص کندل جدید با متغیر Static

/ Default tick event handler
   void OnTick()
   {
      // Check for new bar (compatible with both MQL4 and MQL5).
         static datetime dtBarCurrent  = WRONG_VALUE;
                datetime dtBarPrevious = dtBarCurrent;
                         dtBarCurrent  = iTime( _Symbol, _Period, 0 );
                bool     bNewBarEvent  = ( dtBarCurrent != dtBarPrevious );

      // React to a new bar event and handle it.
         if( bNewBarEvent )
         {
            // Detect if this is the first tick received and handle it.
               /* For example, when it is first attached to a chart and
                  the bar is somewhere in the middle of its progress and
                  it's not actually the start of a new bar. */
               if( dtBarPrevious == WRONG_VALUE )
               {
                  // Do something on first tick or middle of bar ...
               }
               else
               {
                  // Do something when a normal bar starts ...
               };

            // Do something irrespective of the above condition ...
         }
         else
         {
            // Do something else ...
         };

      // Do other things ...
   };

 

یکی از روش‌های کاربردی برای تشخیص کندل جدید، استفاده از زمان باز شدن کندل (Opening Time) است.

ایده اصلی:

  1. زمان باز شدن کندل جاری را بررسی کنید
  2. اگر این زمان نسبت به بررسی قبلی تغییر کرده بود، یعنی کندل جدید آغاز شده است
  3. واکنش لازم (اجرای کدها) را انجام دهید

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

نکته مهم هنگام بارگذاری اولیه اکسپرت

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

محل دسترسی به کدهای نمونه

تمام کدهای منتشر شده توسط نویسنده این روش، علاوه بر بخش CodeBase، در تب Public Projects نرم‌افزار MetaEditor نیز با نام FMIC در دسترس هستند.

تشخیص Start of New Bar در اکسپرت MetaTrader 4

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

How to Detect New Bar in MetaTrader Expert Advisors

⚠️ هشدار و سلب مسئولیت

اکسپرت‌های رایگان ارائه‌شده در سایت هوش فعال صرفاً با هدف آموزش، آزمایش و آشنایی با ابزارهای معاملاتی ارائه می‌شوند و هیچ‌گونه تضمینی بابت سوددهی یا عملکرد آن‌ها در شرایط مختلف بازار وجود ندارد.

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

لطفاً پیش از استفاده در حساب واقعی، اکسپرت را در حساب Demo و با سرمایه‌ای که توان از دست دادن آن را دارید، آزمایش کنید.

بروکر متاگلد

بروکر ایکس چف

بروکر وینگو مارکت

راهنمای نصب اندیکاتور و اکسپرت در متاتریدر

 
 

راهنمای ایجاد حساب دمو و ریل ، نصب متاتریدر و اضافه کردن حساب به متاتریدر

 

ثبت نام در وینگو مارکت  | ثبت نام در متاگلد | ثبت نام در ایکس چف

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

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

Blue Captcha Image Refresh

*

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

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