اندیکاتور ATR Trailing Stop برای متاتریدر 5 یک ابزار تکنیکال برای شناسایی جهت حرکت قیمت، تعیین حد ضرر متحرک و نمایش نقاط احتمالی ورود خرید و فروش است. این اندیکاتور با استفاده از میانگین دامنه واقعی قیمت (ATR) فاصله حد ضرر متحرک از قیمت را محاسبه میکند و با حرکت بازار، سطح Stop را بهصورت پویا تغییر میدهد.
منطق اصلی اندیکاتور بر پایه True Range و میانگین ساده آن (SMA) است. برای هر کندل، True Range با در نظر گرفتن دامنه همان کندل و فاصله قیمتهای High و Low نسبت به Close کندل قبلی محاسبه میشود. سپس میانگین این مقادیر در تعداد کندل مشخصشده توسط کاربر محاسبه شده و بهعنوان ATR مورد استفاده قرار میگیرد.
پارامتر ATR Length تعیین میکند که ATR بر اساس چند کندل محاسبه شود و مقدار پیشفرض آن 14 است. پارامتر ATR Multiplier نیز ضریب فاصله حد ضرر از قیمت را مشخص میکند که بهصورت پیشفرض روی 3 قرار دارد. در نتیجه، فاصله Stop از قیمت با ضرب ATR در این ضریب محاسبه میشود و معاملهگر میتواند با تغییر آن، حساسیت اندیکاتور را نسبت به نوسانات بازار کنترل کند.
جهت عضویت در کانال اندیکاتور و اکسپرت کلیک کنید ایتا | بله | تلگرام
جهت سفارش طراحی و برنامهنویسی اختصاصی اندیکاتور، اکسپرت و ربات معاملهگر برای MetaTrader 4 و MetaTrader 5 میتوانید استراتژی، ایده یا نیاز معاملاتی خود را با تیم هوش فعال در میان بگذارید. برای دریافت مشاوره، بررسی امکان پیادهسازی و ثبت سفارش، از طریق شماره 09364549266 با پشتیبانی هوش فعال در ارتباط باشید.
یکی از ویژگیهای مهم این اندیکاتور، قابلیت حرکت پلهای یا Ratchet شدن حد ضرر است. در روند صعودی، حد ضرر متحرک در زیر قیمت قرار میگیرد و با افزایش قیمت تنها در جهت مناسب حرکت میکند و به عقب برنمیگردد. در روند نزولی نیز Stop بالای قیمت قرار گرفته و با کاهش قیمت به سمت پایین حرکت میکند. این ساختار باعث میشود سطح Stop بتواند همزمان با ادامه روند، از بخش بیشتری از سود احتمالی محافظت کند.
اندیکاتور همچنین تغییر وضعیت روند را بر اساس عبور قیمت بستهشده از خط Trailing Stop تشخیص میدهد. زمانی که قیمت از پایین خط Stop به بالای آن عبور کند، شرایط تغییر به سمت صعودی در نظر گرفته شده و زمانی که قیمت از بالای Stop به زیر آن عبور کند، شرایط نزولی شکل میگیرد. این تغییرات مبنای تولید سیگنالهای Buy و Sell هستند.
سیگنالهای خرید و فروش بهصورت فلش روی نمودار نمایش داده میشوند. فلش سبز Buy در پایین کندل و فلش قرمز Sell در بالای کندل قرار میگیرد تا نقاط تغییر احتمالی جهت حرکت قیمت بهصورت بصری مشخص شوند. علاوه بر این، خط آبی Trailing Stop بهصورت پیوسته روی نمودار رسم میشود تا معاملهگر بتواند فاصله قیمت از حد ضرر متحرک و وضعیت کلی روند را مشاهده کند.
از آنجا که فاصله Stop بر اساس ATR محاسبه میشود، این اندیکاتور با شرایط نوسانی بازار سازگار میشود. در دورههای پرنوسان، مقدار ATR افزایش پیدا کرده و فاصله Stop از قیمت بیشتر میشود؛ در مقابل، در بازارهای کمنوسان، فاصله Stop کاهش مییابد. این ویژگی نسبت به استفاده از یک فاصله ثابت میتواند انعطاف بیشتری در مدیریت معاملات ایجاد کند.
در مجموع، ATR Trailing Stop یک ابزار ساده و کاربردی برای معاملهگرانی است که به دنبال ترکیب تشخیص روند، حد ضرر متحرک و سیگنالهای تغییر جهت در یک اندیکاتور هستند. استفاده از ATR باعث میشود سطح Stop با نوسانات بازار هماهنگ شود و نمایش همزمان خط Trailing Stop و فلشهای Buy و Sell نیز امکان بررسی سریعتر شرایط بازار را در محیط MetaTrader 5 فراهم میکند.

توضیحات طراح اندیکاتور
این پروژه نمونهای از تبدیل یک اندیکاتور TradingView با زبان Pine Script به MQL5 است که با هدف حفظ تطابق کامل با یک پیادهسازی مرجع در Python طراحی شده است. منطق محاسباتی اندیکاتور در هر سه نسخه یکسان نگه داشته شده تا نتایج حاصل از آنها با یکدیگر قابل مقایسه و بررسی باشند.
در این اندیکاتور، مقدار nLoss از حاصلضرب ضریب ATR در میانگین ساده True Range طی تعداد کندلهای تعیینشده توسط InpATRLength به دست میآید. خط Stop در زمانی که قیمت بالاتر از آن قرار دارد، بهصورت پلهای به سمت بالا حرکت میکند و در زیر قیمت باقی میماند. برعکس، زمانی که قیمت پایینتر از Stop قرار داشته باشد، خط Stop به سمت پایین حرکت کرده و بالای قیمت باقی میماند.
هنگامی که قیمت در زمان بستهشدن کندل از خط Stop عبور کند، Stop به سمت دیگر قیمت منتقل میشود و یک فلش روی نمودار نمایش داده میشود. عبور قیمت به سمت بالای Stop بهعنوان سیگنال خرید و عبور قیمت به سمت پایین Stop بهعنوان سیگنال فروش در نظر گرفته میشود.
در فرآیند تبدیل Pine Script به MQL5، چند نکته مهم برای حفظ تطابق محاسباتی رعایت شده است. برای ta.tr(true)، از آنجا که کندل اول قیمت بستهشدن قبلی ندارد، True Range در این کندل تنها برابر با اختلاف High و Low در نظر گرفته میشود. همچنین ta.sma(x, n) تا زمانی که تعداد کافی از کندلها وجود نداشته باشد، مقدار معتبر تولید نمیکند و اولین مقدار معتبر آن در کندل n-1 شکل میگیرد.
عبارت nz(stop[1], src) نیز به این صورت ترجمه شده است که در صورت وجود Stop قبلی، همان مقدار استفاده شود و اگر Stop قبلی هنوز مقدار معتبری نداشته باشد، قیمت فعلی بهعنوان مقدار جایگزین در نظر گرفته شود. همچنین متغیر دائمی var float stop = na که در Pine برای حفظ وضعیت Stop از یک کندل به کندل بعدی استفاده میشود، در نسخه MQL5 با یک بافر پایدار و در نسخه Python با یک آرایه در حال اجرا پیادهسازی شده است.

در بخش تشخیص سیگنال نیز رفتار ta.crossover و ta.crossunder بهصورت دقیق حفظ شده است. این توابع زمانی که یکی از دو طرف مقایسه مقدار na داشته باشد، سیگنال تولید نمیکنند؛ نکتهای که بهخصوص در اولین کندلهای معتبر محاسبات اهمیت دارد و برای جلوگیری از ایجاد سیگنالهای اشتباه در ابتدای دادهها رعایت شده است.
این پروژه همچنین شامل کد منبع Pine، نسخه Python با پیادهسازی خطبهخط برای مقایسه، و یک تست تطبیقی است که خروجی Python و Pine را با خروجی MQL5 مقایسه میکند. هدف این ساختار، اطمینان از این است که نسخه MQL5 نهتنها از نظر ظاهری، بلکه از نظر منطق محاسباتی نیز با نسخه اصلی مطابقت داشته باشد.
نسخه MQL5 این اندیکاتور در MetaEditor نیز بدون خطا و هشدار کامپایل شده است؛ بنابراین میتوان از آن بهعنوان نمونهای برای انتقال دقیق اندیکاتورهای Pine Script به محیط MetaTrader 5 استفاده کرد، بهخصوص در پروژههایی که حفظ رفتار و نتایج نسخه اصلی اهمیت زیادی دارد.
تنظیمات اندیکاتور ATR Trailing Stop
InpATRLength – ATR length : تعداد کندلهایی را مشخص میکند که برای محاسبه میانگین دامنه واقعی قیمت (ATR) استفاده میشوند. مقدار پیشفرض 14 است. مقادیر پایینتر باعث میشوند اندیکاتور نسبت به تغییرات و نوسانات کوتاهمدت قیمت حساستر شود و حد ضرر متحرک سریعتر واکنش نشان دهد، در حالی که مقادیر بالاتر باعث نرمتر شدن محاسبات و کاهش حساسیت به نوسانات کوتاهمدت میشوند.

InpMult – ATR multiplier : ضریب ATR برای تعیین فاصله خط Trailing Stop از قیمت را مشخص میکند. مقدار پیشفرض 3.0 است. افزایش این مقدار باعث دورتر شدن حد ضرر متحرک از قیمت و کاهش احتمال خروج زودهنگام در نوسانات بازار میشود، اما ممکن است بخش بیشتری از سود در زمان برگشت قیمت از دست برود. کاهش این مقدار خط Stop را به قیمت نزدیکتر کرده و حساسیت سیگنالهای تغییر جهت را افزایش میدهد.
اندیکاتور ATR Trailing Stop
این فایل ویژه است. پس از بررسی شماره، در صورت VIP بودن، لینک دانلود نمایش داده میشود.










