ترکیب هوشمند اندیکاتورهای ADX و AMA برای معاملات دقیقتر 💹
🔍 معرفی کلی
اکسپرت Breadandbutter2 یکی از رباتهای معاملاتی خودکار برای پلتفرم متاتریدر 5 (MetaTrader 5) است که با استفاده از ترکیب دو اندیکاتور قدرتمند یعنی ADX (Average Directional Movement Index) و AMA (Adaptive Moving Average) طراحی شده است. هدف اصلی این اکسپرت، شناسایی نقاط ورود و خروج مطمئن در بازار، بستن موقعیتهای معکوس و اجرای معاملات دقیق تنها در زمان تشکیل کندل جدید است.
⚙️ نحوه عملکرد اکسپرت بر اساس اندیکاتورهای ADX و AMA

این اکسپرت از منطق زیر برای تصمیمگیری استفاده میکند:
- اندیکاتور ADX برای سنجش قدرت روند استفاده میشود.
- اندیکاتور AMA یا میانگین متحرک تطبیقی، جهت و نوسان فعلی بازار را تعیین میکند.
- اکسپرت تنها در هنگام تشکیل کندل جدید (New Bar) بررسی سیگنال انجام میدهد تا از معاملات اشتباه در نوسانات لحظهای جلوگیری شود.
- هنگام دریافت سیگنال خرید یا فروش، موقعیتهای مخالف بسته میشوند تا از معاملات همزمان در جهتهای مختلف پیشگیری شود.
💡 منطق اصلی سیگنالدهی در کد اکسپرت
در ساختار کدنویسی Breadandbutter2، دو شرط اصلی وجود دارد:
📈 سیگنال خرید:
if(adx_0 < adx_1 && ama_0 > ama_1) { ClosePositions(POSITION_TYPE_SELL); double sl = (InpStopLoss == 0) ? 0.0 : m_symbol.Ask() - ExtStopLoss; if(sl >= m_symbol.Bid()) // incident: the position isn't opened yet, and has to be already closed { PrevBars = 0; return; } double tp = (InpTakeProfit == 0) ? 0.0 : m_symbol.Ask() + ExtTakeProfit; OpenBuy(sl, tp); return; }
🔹
توضیح:
زمانی که مقدار فعلی ADX از مقدار قبلی کمتر باشد (نشانهی افت قدرت روند نزولی) و در عین حال میانگین تطبیقی (AMA) صعودی شود، اکسپرت سیگنال خرید صادر کرده و هر معامله فروش باز را میبندد.
📉 سیگنال فروش:
if(adx_0 > adx_1 && ama_0 < ama_1) { ClosePositions(POSITION_TYPE_BUY); double sl = (InpStopLoss == 0) ? 0.0 : m_symbol.Bid() + ExtStopLoss; if(sl <= m_symbol.Ask()) // incident: the position isn't opened yet, and has to be already closed { PrevBars = 0; return; } double tp = (InpTakeProfit == 0) ? 0.0 : m_symbol.Bid() - ExtTakeProfit; OpenSell(sl, tp); return; }
🔹
توضیح:
وقتی مقدار ADX افزایش یابد (قدرت روند نزولی بیشتر شود) و در همین حال میانگین AMA به سمت پایین حرکت کند، اکسپرت معامله خرید را بسته و وارد پوزیشن فروش میشود.
⚙️ دو روش تنظیم و بهینهسازی پارامترها
برای دستیابی به بهترین عملکرد، جستجو و تنظیم پارامترهای مناسب برای هر جفتارز (Symbol) و تایمفریم (Timeframe) به دو روش انجام میشود:
🧩 ۱. روش دستی (Manual)
در این روش، کاربر میتواند با ویرایش علائم “<” و “>” در معادلات سیگنال، منطق ورود و خروج را تغییر دهد تا با شرایط بازار مورد نظرش هماهنگ شود. این روش برای تریدرهایی مناسب است که مایلند کنترل کامل بر منطق اکسپرت داشته باشند.
⚙️ ۲. روش خودکار (Automatic)
در حالت خودکار، اکسپرت بهصورت درونساخت (Built-in Optimization) یا از طریق Strategy Tester به جستجوی بهترین مقادیر برای پارامترهای زیر میپردازد:
- Stop Loss (حد ضرر)
- Take Profit (حد سود)
- AMA Indicator Horizontal Shift (جابجایی افقی اندیکاتور AMA)
با اجرای بهینهسازی (Optimization) در متاتریدر 5، سیستم بهترین ترکیب ممکن از این متغیرها را برای سوددهی بیشتر پیشنهاد میدهد.
📊 مزایای اکسپرت Breadandbutter2
✅ ترکیب دو اندیکاتور مهم برای افزایش دقت سیگنالها
✅ اجرای معاملات فقط در تشکیل کندل جدید (کاهش نویز)
✅ بستن خودکار معاملات مخالف برای کنترل ریسک
✅ امکان تنظیم و بهینهسازی دستی یا خودکار
✅ مناسب برای تایمفریمهای M15 تا H1
✅ سازگار با تمام جفتارزها و CFDها
⚠️ نکات مهم پیش از استفاده
- قبل از استفاده در حساب واقعی، حتماً آن را در حساب دمو تست کنید.
- از تنظیمات Trailing Stop برای حفظ سود معاملات استفاده کنید.
- پیشنهاد میشود اکسپرت روی بازارهایی با نوسان متعادل استفاده شود.
- عملکرد در زمان اخبار اقتصادی قوی ممکن است دچار نوسان شود.




