نسخه بروزرسانی‌شده سورس کد آموزشی MQL5

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

اگر می‌خواهید نحوه اتصال یک اندیکاتور سفارشی به اکسپرت و تبدیل سیگنال‌های آن به معاملات خودکار را یاد بگیرید، سورس کد اکسپرت Pivot Point Supertrend بورس۹۰ یک نمونه ساده، تمیز و استاندارد برای شماست. این نسخه با خواندن بافرهای اندیکاتور، سیگنال خرید و فروش را روی کندل بسته تشخیص می‌دهد و امکانات کاربردی‌تری مثل خروج با سیگنال مخالف، فیلتر اسپرد، انتخاب تایم‌فریم و مدیریت حد سود و ضرر را در اختیار شما می‌گذارد.

PivotPointSupertrendEA_Improved_v1.5.mq5 MQL5
// Buy Signal: support[1] != 0 && support[2] == 0
// Sell Signal: resistance[1] != 0 && resistance[2] == 0

int GetSignal()
{
   double support1 = NormalizeDouble(bufferSupport[1], _Digits);
   double support2 = NormalizeDouble(bufferSupport[2], _Digits);

   double resistance1 = NormalizeDouble(bufferResistance[1], _Digits);
   double resistance2 = NormalizeDouble(bufferResistance[2], _Digits);

   if(support1 != 0.0 && support2 == 0.0)
      return 1;  // Buy Signal

   if(resistance1 != 0.0 && resistance2 == 0.0)
      return -1; // Sell Signal

   return 0;
}
در این سورس کد، خروجی‌های اندیکاتور مستقیماً با دستور CopyBuffer خوانده می‌شوند. سپس اکسپرت بر اساس تغییر وضعیت بافرهای Support و Resistance روی کندل بسته‌شده، سیگنال دقیق را شناسایی و پوزیشن را باز می‌کند.
منطق ورود به معامله

اکسپرت چطور از Pivot Point Supertrend سیگنال می‌گیرد؟

در این سورس کد، اکسپرت با استفاده از تابع iCustom به اندیکاتور متصل می‌شود و مقادیر دو بافر اصلی (Support و Resistance) را با CopyBuffer می‌خواند. سپس با بررسی کندل‌های بسته‌شده، تغییر وضعیت روند را به عنوان سیگنال خرید یا فروش تشخیص می‌دهد.

سیگنال خرید (Buy)

شرط ورود به معامله خرید

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

support[1] != 0 && support[2] == 0
  • سیگنال روی کندل بسته‌شده بررسی می‌شود تا از نوسانات کاذب جلوگیری شود.
  • معامله Buy با قیمت Ask و با رعایت فیلتر اسپرد باز می‌شود.
  • حد ضرر (SL) می‌تواند مستقیماً روی خط Support اندیکاتور قرار گیرد.
نمونه سیگنال خرید با اندیکاتور پیوت پوینت سوپرترند در متاتریدر ۵
نمونه‌ای از تغییر وضعیت اندیکاتور و صدور سیگنال خرید
سیگنال فروش (Sell)

شرط ورود به معامله فروش

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

resistance[1] != 0 && resistance[2] == 0
  • سیگنال فروش با بررسی دقیق تغییر وضعیت بافر Resistance صادر می‌شود.
  • معامله Sell با قیمت Bid اجرا شده و در صورت نیاز پوزیشن‌های مخالف بسته می‌شوند.
  • حد ضرر (SL) می‌تواند روی خط Resistance تنظیم و دنبال شود.
نمونه سیگنال فروش با اندیکاتور پیوت پوینت سوپرترند در متاتریدر ۵
نمونه‌ای از تغییر وضعیت اندیکاتور و صدور سیگنال فروش
نکته آموزشی: هدف این بخش نمایش منطق هسته مرکزی اکسپرت است. تنظیمات مربوط به تعیین تایم‌فریم، فیلتر اسپرد، حد سود، حد ضرر و محدودیت پوزیشن‌ها همگی به صورت داینامیک از بخش Inputs متاتریدر قابل تغییر هستند.
قابل تنظیم در Strategy Tester

ورودی‌های اکسپرت؛ ساده، کارآمد و مناسب برای بهینه‌سازی

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

MetaTrader 5 - Expert Advisor Inputs
PPS EA v1.5
ورودی‌های اکسپرت پیوت پوینت سوپرترند در متاتریدر ۵ بزرگنمایی

نمایی از تب Inputs در متاتریدر ۵. تمامی متغیرهای کلیدی برای بک‌تست (Backtest) و بهینه‌سازی (Optimization) در این قسمت در دسترس شماست.

تنظیمات عمومی معامله

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

Timeframe Fixed Lot Max Positions

دو روش برای حد سود و ضرر

می‌توانید استراتژی خروج خود را یا بر اساس فاصله ثابت (Points) تعیین کنید و یا از مقادیر داینامیک Support و Resistance اندیکاتور استفاده نمایید.

SL/TP by Points SL/TP by Indicator

خروج با سیگنال مخالف

با فعال کردن این ویژگی، به محض صدور سیگنال در جهت عکس، اکسپرت پوزیشن فعلی را می‌بندد. همچنین امکان توقف کامل ورود به معاملات Buy یا Sell وجود دارد.

Close On Opposite Signal Buy/Sell Control
نکته توسعه‌ای: این سورس کد عمداً به دور از پیچیدگی‌های اضافه نوشته شده است. هدف اصلی، ارائه یک ساختار تمیز برای یادگیری اتصال اکسپرت به اندیکاتورهای سفارشی و مدیریت پایه‌ای پوزیشن‌ها در MQL5 است.
01 اندیکاتور قابل تنظیم

پارامترهای اندیکاتور (مانند ATR Factor و Period) مستقیماً از داخل تنظیمات اکسپرت قابل تغییر و بهینه‌سازی هستند.

02 تایم‌فریم مستقل

امکان دریافت سیگنال از یک تایم‌فریم بالاتر (مثلاً H4) در حالی که اکسپرت روی چارت M15 در حال اجراست.

03 کنترل ریسک اولیه

جلوگیری از باز شدن معاملات جدید در زمان‌های خبر و نوسان شدید با استفاده از قابلیت فیلتر اسپرد (Max Spread).

04 بدون کدنویسی ماکارونی!

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

× نمای بزرگ ورودی‌های اکسپرت پیوت پوینت سوپرترند در متاتریدر ۵
Who Is It For?

این سورس کد مناسب چه افرادی است؟

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

مناسب است برای...

  • برنامه‌نویسان تازه‌کاری که می‌خواهند نحوه اتصال اکسپرت به اندیکاتورهای سفارشی را تمرین کنند.
  • کسانی که قصد دارند با نحوه خواندن بافرها (CopyBuffer) آشنا شوند.
  • معامله‌گرانی که استراتژی آن‌ها بر پایه Pivot Point Supertrend است و یک اسکلت اولیه برای اتوماسیون نیاز دارند.
  • افرادی که با MQL5 آشنایی نسبی دارند و می‌خواهند این سورس را تغییر داده و توسعه دهند.
  • کسانی که به دنبال یک ساختار تمیز برای درک بهتر مفاهیم پایه (مثل فیلتر اسپرد و خروج با سیگنال مخالف) هستند.

مناسب نیست برای...

  • کسانی که به دنبال یک «ربات جادویی» آماده برای کسب سود تضمینی هستند.
  • افرادی که می‌خواهند این کد را بدون بررسی و بک‌تست مستقیم روی حساب Real اجرا کنند.
  • معامله‌گرانی که هیچ آشنایی با زبان برنامه‌نویسی MQL5 ندارند و قصد ویرایش کد را هم ندارند.
  • کسانی که به دنبال امکانات پیچیده مثل گرید، مارتینگل، ریکاوری یا پنل‌های گرافیکی سنگین هستند.

سلب مسئولیت

این سورس کد صرفاً جنبه آموزشی و توسعه‌ای دارد. نصب و اجرای آن در محیط واقعی (Real) بدون تست کافی در استراتژی تستر و حساب دمو به هیچ وجه توصیه نمی‌شود. بورس۹۰ مسئولیت هرگونه زیان ناشی از اجرای مستقیم این اکسپرت را نمی‌پذیرد.