اندیکاتور ATR Position Sizer

اندیکاتور ATR Position Sizer در متاتریدر ۵

اندیکاتور ATR Position Sizer در متاتریدر ۵

مقدمه و هدف اندیکاتور ATR Position Sizer

یکی از بزرگ‌ترین چالش‌های معامله‌گران، انتخاب حجم (Lot Size) مناسب برای ورود به معامله است.
بسیاری از تریدرها یا به‌صورت ثابت (مثلاً همیشه ۰.۱ لات) معامله می‌کنند یا حجم را بر اساس حس و تجربه تغییر می‌دهند. نتیجه؟ مدیریت ریسک ناپایدار و احتمال ضررهای بزرگ.

ابزار ATR Position Sizer با هدف حل همین مشکل طراحی شده است: این اندیکاتور حجم بهینه معامله را بر اساس میزان ریسک دلخواه شما و نوسان واقعی بازار (اندازه‌گیری‌شده با ATR) پیشنهاد می‌دهد.

به زبان ساده:

  • شما تعیین می‌کنید که در هر معامله نهایتاً چه درصدی از سرمایه‌تان در معرض ریسک قرار بگیرد (مثلاً ۱%).
  • اندیکاتور، مقدار ATR را محاسبه می‌کند و با در نظر گرفتن ضریب انتخابی شما (Multiplier)، فاصله‌ی حد ضرر (SL) را مشخص می‌کند.
  • در نهایت حجم مناسب معامله (Lot) به شما نمایش داده می‌شود.

منطق و فرمول محاسبه اندیکاتور ATR Position Sizer

حد ضرر بر اساس ATR

StopLoss = ATR × Multiplier

مثال: اگر ATR = 20 پیپ باشد و شما ضریب ۱.۵ انتخاب کنید، حد ضرر پیشنهادی = 30 پیپ خواهد بود.

مقدار ریسک دلخواه

RiskAmount = AccountBalance × (Risk% / 100)

مثال: اگر حساب شما ۱۰,۰۰۰ دلار باشد و ریسک ۱% را انتخاب کنید → RiskAmount = 100 دلار.

محاسبه حجم

LossPerLot = SL (in ticks) × TickValue

LotSize = RiskAmount / LossPerLot

این حجم سپس با قوانین بروکر (حداقل/حداکثر لات و Step) نرمالایز می‌شود.


جدول ورودی‌های اندیکاتور ATR Position Sizer

نام پارامتر

توضیح

InpUseEquity

اگر true باشد، محاسبات بر اساس Equity حساب انجام می‌شود. اگر false باشد، بر اساس Balance حساب محاسبه می‌شود.

InpATRTimeframe

تایم‌فریم مورد استفاده برای محاسبه ATR (پیش‌فرض: H1). مثلاً می‌توانید ATR تایم‌فریم H4 یا D1 را هم انتخاب کنید.

InpATRPeriod

تعداد کندل‌هایی که در محاسبه ATR استفاده می‌شود (پیش‌فرض: ۱۴).

InpDefaultRiskPct

درصد ریسک پیش‌فرض برای هر معامله. مثلاً ۱.۰ به‌معنای ریسک ۱ درصد از موجودی انتخابی است.

InpDefaultSLMult

ضریب ATR برای محاسبه حد ضرر. مثال: اگر ATR = 20 پیپ و Multiplier = 1.5 باشد، حد ضرر پیشنهادی = 30 پیپ خواهد بود.

InpPipSizeOverride

اگر مقدار آن ۰.۰ باشد، pip size به‌صورت خودکار تشخیص داده می‌شود. اگر مقداری غیر از صفر وارد کنید (مثلاً ۰.۰۱ یا ۰.۱)، آن مقدار به‌صورت دستی برای محاسبه pip size استفاده می‌شود.

InpTextColor

رنگ متون پنل نمایش داده شده روی نمودار. پیش‌فرض: سفید.

InpAccentColor

رنگی که برای نمایش Lot پیشنهادی استفاده می‌شود (برای جلب توجه). پیش‌فرض: سبز لایم.

InpShowPanelBG

اگر true باشد، پس‌زمینه پنل روی چارت نمایش داده می‌شود. اگر false باشد، پنل بدون پس‌زمینه است.

InpPanelBgColor

رنگ پس‌زمینه پنل (در صورتی که فعال باشد). پیش‌فرض: مشکی.

InpPanelBgAlpha

شفافیت (Transparency) پس‌زمینه پنل بین ۰ تا ۲۵۵. عدد پایین‌تر = شفاف‌تر.

InpEditBgColor

رنگ پس‌زمینه جعبه‌های ویرایش (Edit Box) که کاربر می‌تواند درصد ریسک و Multiplier را تغییر دهد.

InpCorner

محل قرارگیری پنل روی چارت: ۰ = بالا چپ (LT)، ۱ = بالا راست (RT)، ۲ = پایین چپ (LB)، ۳ = پایین راست (RB).

InpPanelX

فاصله افقی پنل از لبه نمودار (بر حسب پیکسل).

InpPanelY

فاصله عمودی پنل از لبه نمودار (بر حسب پیکسل).

نکته مهم در مورد محل قرارگیری پنل روی چارت

سه ورودی آخر اندیکاتور (InpCorner, InpPanelX, InpPanelY) دقیقاً برای کنترل محل نمایش پنل طراحی شده‌اند:

  • InpCorner تعیین می‌کند پنل در کدام گوشه نمودار نمایش داده شود:
    • ۰ = بالا-چپ (Left Top)
    • ۱ = بالا-راست (Right Top)
    • ۲ = پایین-چپ (Left Bottom)
    • ۳ = پایین-راست (Right Bottom) ← حالت پیش‌فرض
  • InpPanelX فاصلهٔ افقی پنل از لبهٔ نمودار (بر حسب پیکسل) را مشخص می‌کند. هرچه مقدار بزرگ‌تر باشد، پنل بیشتر به سمت داخل نمودار جابه‌جا می‌شود.
  • InpPanelY فاصلهٔ عمودی پنل از لبهٔ نمودار (بر حسب پیکسل) را مشخص می‌کند. هرچه مقدار بزرگ‌تر باشد، پنل بیشتر به سمت پایین نمودار منتقل می‌شود (اگر گوشه بالا باشد) یا از پایین فاصله می‌گیرد (اگر گوشه پایین باشد).

📌 نکته کلیدی:

با تغییر ترکیب این سه ورودی می‌توانید پنل را دقیقاً در محل دلخواه خود روی نمودار قرار دهید.

مثال‌ها:

  • اگر مانیتور کوچک دارید و پنل روی قیمت‌ها افتاده، می‌توانید InpPanelX = 400 یا InpPanelY = 80 تنظیم کنید تا به سمت داخل یا پایین منتقل شود.
  • اگر می‌خواهید پنل همیشه در بالای نمودار سمت راست باشد، مقدار InpCorner = 1 بگذارید و سپس با تغییر X/Y موقعیت دقیق آن را تنظیم کنید.
  • در مانیتورهای بزرگ (FullHD یا 4K)، برای اینکه پنل خیلی به لبه نچسبد، کافی است InpPanelX و InpPanelY را بزرگ‌تر کنید (مثلاً ۲۰۰–۳۰۰ پیکسل).

پنل اندیکاتور ATR Position Sizer
تصویر پنل اندیکاتور ATR Position Sizer

نحوه استفاده اندیکاتور ATR Position Sizer

  1. فایل اندیکاتور را در پوشه MQL5/Indicators کپی کنید و ترمینال را ری‌استارت کنید.
  2. اندیکاتور را روی نمودار جفت‌ارز یا طلا اجرا کنید.
  3. یک پنل اطلاعات روی چارت ظاهر می‌شود که شامل موارد زیر است:
    • Balance/Equity
    • مقدار ATR (براساس تایم‌فریم انتخابی)
    • Pip Size نماد
    • فاصله حد ضرر پیشنهادی (هم به پیپ، هم به قیمت)
    • حجم پیشنهادی (Lot Size)
  4. اگر دکمه‌ی Copy Lot (GV) را بزنید، مقدار حجم پیشنهادی در یک Global Variable ذخیره می‌شود و می‌تواند توسط اکسپرت‌ها یا اسکریپت‌ها استفاده شود.

نکات کارایی و  Multi-Timeframe

  • برای جفت‌ارزهایی مثل EURUSD، ATR روی تایم‌فریم H1 یا H4 معمولاً مناسب است.
  • برای طلا (XAUUSD) یا شاخص‌ها بهتر است Pip Size را به‌صورت دستی (Override) تنظیم کنید تا محاسبات دقیق‌تر باشد.
  • اگر بازار در شرایط پرنوسان است (مثلاً بعد از خبر NFP)، ضریب ATR را بیشتر بگیرید (مثلاً ۲ یا ۳) تا حد ضرر بزرگ‌تر و حجم کوچک‌تر شود.
  • اگر بازار کم‌نوسان است، ضریب ATR کمتر هم قابل استفاده است.

اندیکاتور ATR Position Sizer

لطفا قبل از استفاده از اندیکاتور ATR Position Sizer راهنمای مربوط به آن را که در همان پوشه قرار گرفته را به دقت مطالعه نمایید.


سلب مسئولیت

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


✅  FAQ

سؤالات متداول

خیر.اندیکاتور ATR Position Sizer فقط یک ابزار محاسباتی است و هیچ معامله‌ای را باز یا بسته نمی‌کند. وظیفه‌ی آن صرفاً محاسبه‌ی حجم بهینه (Lot Size) بر اساس ریسک و ATR است.

دلیل اصلی به Pip Size و Tick Value هر نماد برمی‌گردد. در برخی نمادها مثل XAUUSD یا شاخص‌ها، مقدار پیپ متفاوت است. در صورت نیاز می‌توانید از پارامتر InpPipSizeOverride استفاده کنید و pip size را به‌صورت دستی تنظیم کنید.

با کلیک روی این دکمه، مقدار لات پیشنهادی در یک Global Variable با نام ATRPS_LastLot_ ذخیره می‌شود. سپس می‌توانید این مقدار را در اکسپرت‌ها یا اسکریپت‌های دیگر فراخوانی کنید.

اگر InpUseEquity = true باشد، حجم معامله بر اساس Equity حساب محاسبه می‌شود (مناسب برای حساب‌هایی با معاملات باز). اگر مقدار آن false باشد، محاسبات بر اساس Balance انجام می‌شود.