این اکسپرت یک ابزار کاربردی و مدیریت ریسک برای معاملهگران در متاتریدر 4 است که یک دکمه قرمز رنگ با عنوان “CLOSE ALL” را روی نمودار قرار میدهد. برخلاف بسیاری از رباتهای معاملهگر که به صورت خودکار وارد پوزیشن میشوند، این کد هیچگونه اقدام خودکاری روی معاملات انجام نمیدهد و تنها زمانی فعال میشود که کاربر شخصاً روی دکمه کلیک کند. این ویژگی امنیت بالایی به آن میبخشد، زیرا هیچ ریسکی برای باز یا بسته شدن ناخواسته معاملات وجود ندارد و کنترل کامل در دستان کاربر است.
مزیت اصلی این اسکریپت در سرعت و دقت عملکرد آن نهفته است. در لحظات حساس بازار که قیمت به سرعت در حال حرکت است، بستن تکتک معاملات از طریق پنل معاملاتی میتواند منجر به ضرر بیشتر یا از دست رفتن فرصت خروج به موقع شود. این اکسپرت با یک کلیک، تمام پوزیشنهای باز (Buy و Sell) را به ترتیب از آخرین مورد به اولین مورد پردازش کرده و میبندد. علاوه بر این، بازخورد دقیقی از تعداد معاملات بسته شده و احتمالی ناموفق را در قالب یک کامنت روی نمودار نمایش میدهد که به شفافیت عملیات کمک میکند.
از نظر فنی، کد بسیار تمیز و اصولی نوشته شده است. استفاده از حلقه `for` با شمارش معکوس (`i >= 0`) یک روش استاندارد برای جلوگیری از خطاهای ناشی از تغییر ایندکسها در حین بسته شدن معاملات است. همچنین، مدیریت صحیح قیمتهای بید و اسک برای سفارشات خرید و فروش، و تعیین لغزش (Slippage) معادل ۱۰ پوینت، احتمال اجرای موفقیتآمیز دستورات را افزایش میدهد. کامنت نمایش داده شده نیز بهطور خودکار توسط یک تایمر پس از چند ثانیه پاک میشود تا نمودار شلوغ نشود و معاملهگر بتواند به تحلیل خود ادامه دهد. این ترکیب از سادگی، سرعت و دقت، آن را به یک دستیار ضروری برای اسکالپرها و معاملهگرانی که چندین پوزیشن باز همزمان دارند، تبدیل کرده است.
در کد ارائهشده، تنظیمات اکسپرت به صورت هاردکد (Hardcoded) در بخش متغیرهای سراسری ابتدای برنامه تعریف شدهاند و از طریق پنجره Properties متاتریدر یا فایل set. قابل تغییر نیستند. در واقع، این اکسپرت از بلوک input برای پارامترهای قابل تنظیم توسط کاربر استفاده نکرده است. این کار عمداً برای سادگی و جلوگیری از دستکاریهای ناخواسته انجام شده، اما به این معنی است که برای تغییر مقادیر، باید کد منبع را مستقیماً ویرایش کرده و دوباره کامپایل کنید.
تنظیمات موجود در کد شامل موارد زیر است:

ویدیو آموزش جامع اکسپرت بستن تمام معاملات Close All Trade در متاتریدر 4
- موقعیت و اندازه دکمه (Visual Settings):
- buttonX = 10 و buttonY = 50: این دو پارامتر مختصات گوشه دکمه را بر حسب پیکسل تعیین میکنند. به دلیل استفاده از CORNER_LEFT_LOWER (نبش پایین-چپ نمودار) در تابع ObjectSetInteger، دکمه در فاصله ۱۰ پیکسلی از لبه چپ و ۵۰ پیکسلی از لبه پایین نمودار قرار میگیرد. اگر میخواهید دکمه جای دیگری باشد، باید این اعداد و احتمالاً CORNER را تغییر دهید.
- buttonWidth = 120 و buttonHeight = 30: این پارامترها طول و عرض دکمه را بر حسب پیکسل مشخص میکنند. دکمه فعلی ۱۲۰ پیکسل طول و ۳۰ پیکسل ارتفاع دارد که اندازه مناسبی برای کلیک سریع است.
- پارامترهای بستن معامله (Trade Closure Settings):
- لغزش (Slippage) – مقدار 10 در تابع OrderClose: این عدد مستقیماً در دستور بستن معامله نوشته شده و متغیر جداگانهای برای آن تعریف نشده است. این مقدار نشاندهنده حداکثر انحراف مجاز قیمت (بر حسب پوینت) از قیمت درخواستی هنگام بسته شدن معامله است. مقدار ۱۰ به این معناست که اگر قیمت در لحظه ارسال درخواست تا ۱۰ پوینت (مثلاً ۱ پیپ در جفتارزهای ۴ رقمی) حرکت کند، معامله همچنان بسته خواهد شد. در بازارهای پرنوسان، ممکن است نیاز باشد این عدد را در کد افزایش دهید تا خطای “Requote” کاهش یابد، اما افزایش بیش از حد آن میتواند باعث ضرر ناخواسته ناشی از بسته شدن در قیمت بدتر شود.
- رنگ فلش (Arrow Color): با clrAqua مشخص شده و صرفاً ظاهر فلش ثبت معامله روی نمودار را تعیین میکند.
- زمان نمایش پیام (Comment Timer):
- EventSetTimer(5) و EventSetTimer(3): در انتهای تابع CloseAllPositions، مدت زمان نمایش پیام وضعیت روی نمودار تعیین شده است. اگر در فرآیند بستن، حداقل یک معامله (چه با موفقیت چه ناموفق) پردازش شود، پیام به مدت ۵ ثانیه نمایش داده میشود. اگر هیچ معاملهای برای بستن وجود نداشته باشد، پیام “No open positions to close” به مدت ۳ ثانیه روی نمودار میماند. این زمانها را میتوانید با ویرایش اعداد داخل این توابع تغییر دهید.
توجه بکنید همیشه برای فعال سازی اکسپرت های معامله گر که عملیات (اضافه کردن پوزیشن ، ویرایش پوزیشن و بستن پوزیشن ) را انجام می دهند باید در سر برگ common گزینه Allow live trading فعال باشد تا اکسپرت اجازه دستکاری معاملا را داشته باشد.

تنظیمات اکسپرت close All
این نسخه از اکسپرت هیچ پارامتر ورودی (Input Parameter) برای کاربر تعریف نکرده است. این یک ضعف بزرگ در طراحی محسوب میشود، زیرا کاربر برای تغییرات جزئی مجبور به ویرایش کد منبع و کامپایل مجدد است.






