اسکریپتها در متاتریدر ابزارهای کمکی برنامهنویسیشدهای هستند که به معاملهگران کمک میکنند بسیاری از دستورها و عملیات مورد نیاز در پلتفرم معاملاتی را به صورت خودکار اجرا کنند. همین قابلیت باعث میشود اسکریپتنویسی در متاتریدر اهمیت زیادی پیدا کند و بتواند در سرعت و دقت اجرای معاملات نقش موثر داشته باشد. علاوه بر این، مجموعه بزرگی از اسکریپتهای رایگان و تجاری که توسط دیگر معاملهگران توسعه داده شده نیز در دسترس است و کاربران میتوانند به آسانی از آنها استفاده کنند. در این مقاله به بررسی مفهوم اسکریپت متاتریدر و کاربردهای آنها میپردازیم.
اسکریپت در متاتریدر چیست؟
به برنامههای کوچکی که در متاتریدر نوشته میشوند و بخشی از عملیات معاملاتی را به صورت خودکار انجام میدهند، اسکریپت متاتریدر گفته میشود. در خود متاتریدر مجموعهای از اسکریپتهای آماده وجود دارد؛ از ابزارهای قرار دادن pending order گرفته تا تعیین همزمان حد سود و حد ضرر، مدیریت حجم معاملات و بسیاری موارد دیگر. در واقع اسکریپت یک ابزار اتوماتیک و قابل تنظیم است که با توجه به نیاز تریدر، سرعت و دقت اجرای دستورات را افزایش میدهد.
بر خلاف اکسپرتها (Expert Advisors) که به صورت مداوم در حال اجرا هستند، اسکریپت تنها یک بار اجرا شده و پس از انجام وظیفه موردنظر متوقف میشود. به همین دلیل، اسکریپتها معمولا برای عملیات سریع، یکمرحلهای و دقیق به کار میروند.
برای معاملهگران ایرانی، ثبات اتصال و داشتن یک IP ثابت و اختصاصی موضوعی مهم است، به خصوص وقتی پای اجرای مداوم اسکریپتها و اکسپرتها در میان باشد. به همین دلیل استفاده از سرور مجازی ترید به یک ابزار ضروری تبدیل شده، چون هم سرعت ثابت فراهم میکند هم از مشکلات مربوط به محدودیتهای کارگزاریهای بینالمللی جلوگیری میکند و مانع بسته شدن حسابهای شما و از دست رفتن سرمایه میشود. بسیاری از تریدرها با توجه به سادهتر بودن قوانین امارات برای فعالیت در پلتفرمهای ترید، از سرور مجازی امارات استفاده میکنند تا بدون نگرانی از مسدودی حسابهای کاربری، به فعالیت بپردازند.
کاربرد اسکریپت متاتریدر
متاتریدر به دلیل متنباز بودن این امکان را فراهم میکند که معاملهگران با استفاده از زبان برنامهنویسی MQL هر ابزار کمکی مورد نیاز خود را بسازند. زمانی که سطح معاملات حرفهایتر میشود، معمولا نیازهای پیچیدهتری نیز به وجود میآید؛ برای مثال ممکن است بخواهید تنها با یک دستور، حد سود و حد ضرر یا استاپ لاس روی چند معامله اعمال شود، یا ابزاری طراحی کنید که در ساعت مشخص یا هنگام ایجاد شرایط خاص روی نمادهایی که نمیتوانید به طور دائم بررسی کنید، هشدار ارسال کند.
تمام این فرایندهای زمانبر را میتوان با نوشتن اسکریپت متاتریدر به شکل خودکار اجرا کرد. به همین دلیل اسکریپتها کاربردهای بسیار گستردهای دارند؛ از ساخت یک اعلان ساده گرفته تا طراحی سیستمهای معاملاتی خودکار و ابزارهای دقیق مدیریت سرمایه. متنباز بودن متاتریدر این امکان را میدهد که هر ایده معاملاتی را به یک ابزار اتوماتیک تبدیل کنید و روند ترید را سریعتر، دقیقتر و کمخطاتر پیش ببرید.
برخی از مهمترین کاربردها عبارتاند از:
1. اجرای خودکار دستورات معاملاتی
معاملهگران میتوانند اسکریپتهایی ایجاد کنند که وظیفه باز کردن پوزیشن در شرایط خاص را برعهده داشته باشد؛ مثلا زمانی که قیمت به یک سطح مشخص میرسد. با این کار دیگر نیاز نیست بازار لحظهبهلحظه زیر نظر گرفته شود و اجرای معامله بدون تأخیر انجام میشود.
2. تحلیل دادههای بازار
اسکریپتها میتوانند محاسبات تحلیل تکنیکال را بهصورت خودکار انجام دهند. نمونههایی از این کاربرد شامل موارد زیر است:
-
محاسبه و نمایش اندیکاتورها
-
رسم خطوط حمایت و مقاومت
-
شناسایی الگوهای نموداری
این خودکارسازی باعث میشود تحلیل پیچیده، سریعتر و دقیقتر انجام شود.
3. مدیریت پوزیشنها
از کاربردهای مهم اسکریپتها، مدیریت خودکار معاملات باز است. برای مثال میتوان اسکریپتی طراحی کرد که روی تمام پوزیشنهای باز حد ضرر و حد سود تنظیم کند یا پارامترهای مدیریت ریسک را یکجا تغییر دهد. این کار سرعت کار معاملهگر را افزایش میدهد و به کنترل ریسک کمک میکند.
4. انجام وظایف ساده و روزمره
اسکریپتها فقط برای کارهای سنگین نیستند. آنها میتوانند بسیاری از وظایف کوچک اما تکراری را هم خودکار کنند:
-
ارسال هشدار و نوتیفیکیشن
-
ذخیره دادههای بازار در فایلهای Excel
-
تغییر ظاهر نمودار و تنظیمات گرافیکی
آشنایی با زبانهای برنامهنویسی MQL4 و MQL5
زبانهای برنامهنویسی MQL4 و MQL5 برای طراحی و توسعه ابزارهای خودکار در متاتریدر به کار میروند. این زبانها امکان ساخت اکسپرتها (Expert Advisors)، اندیکاتورها، اسکریپتها و کتابخانههایی را فراهم میکنند که در تحلیل بازار و اجرای معاملات نقش مهمی دارند. هر دو زبان بر پایه ساختار C++ طراحی شدهاند و از نظر منطق برنامهنویسی شباهتهای زیادی دارند، اما قابلیتها و تفاوتهایی میان آنها وجود دارد که در ادامه به آنها پرداخته میشود.
MQL4
زبان برنامهنویسی MQL4 برای پلتفرم متاتریدر 4 طراحی شده و به دلیل سادگی و کاربردی بودن، انتخاب بسیاری از افراد تازهکار و حتی معاملهگران حرفهای است. از ویژگیهای مهم MQL4 میتوان به موارد زیر اشاره کرد:
- سهولت یادگیری: ساختار ساده و قابل فهم MQL4 باعث میشود یادگیری آن برای افراد مبتدی سریعتر و آسانتر باشد.
- پشتیبانی از توابع آماده: این زبان مجموعهای از توابع از پیشتعریفشده را ارائه میدهد که اجرای دستورات معاملاتی و تحلیل دادههای بازار را سادهتر میکند.
- سازگاری با تحلیل تکنیکال: با MQL4 میتوان انواع اندیکاتورها و استراتژیهای مبتنی بر تحلیل تکنیکال را طراحی و اجرا کرد.
- امکان استفاده از کتابخانهها: وجود کتابخانههای مختلف به توسعهدهندگان این امکان را میدهد تا از کدهای قابل استفاده مجدد بهره ببرند و فرآیند توسعه را سرعت بدهند.
MQL5
MQL5 زبان اختصاصی متاتریدر 5 است و نسبت به MQL4 قابلیتهای گستردهتر و پیشرفتهتری دارد. این زبان بیشتر برای توسعهدهندگان حرفهای و کسانی مناسب است که نیازمند ابزارهای پیچیدهتر هستند. مهمترین ویژگیهای آن عبارتاند از:
- پشتیبانی از برنامهنویسی شیءگرا (OOP): MQL5 امکان استفاده از ساختارهای شیءگرا را فراهم میکند که باعث میشود کدها سازمانیافتهتر، قابل نگهداریتر و انعطافپذیرتر باشند.
- پشتیبانی از Multi-threading: زبان MQL5 توانایی اجرای چند رشته به صورت همزمان را دارد و این مسئله باعث افزایش سرعت و عملکرد برنامهها میشود.
- دسترسی به عمق بازار (Depth of Market): تنها در MQL5 امکان مشاهده و تحلیل عمق بازار وجود دارد که برای استراتژیهای پیشرفتهتر اهمیت زیادی دارد.
- توابع و ابزارهای تحلیلی پیشرفته: این زبان مجموعهای کاملتر از توابع تخصصی برای تحلیل بازار و اجرای استراتژیها ارائه میدهد.
- ابزار تست استراتژی قدرتمند: تست و بهینهسازی استراتژیها در MQL5 با دقت بالاتر و امکانات کاملتری انجام میشود.
تفاوتهای اصلی MQL4 و MQL5
-
ساختار زبان: MQL5 ساختاری پیچیدهتر مبتنی بر OOP دارد، در حالی که MQL4 سادهتر و خطیتر است.
-
امکانات تحلیلی: ابزارهای تحلیلی در MQL5 پیشرفتهتر و کاملتر هستند.
-
سرعت و کارایی: به دلیل پشتیبانی از Multi-threading، اجرای برنامهها در MQL5 سریعتر و بهینهتر است.
-
عمق بازار: فقط در MQL5 امکان دسترسی به Depth of Market وجود دارد.
-
تست استراتژی: تستکننده MQL5 بسیار قدرتمندتر و دقیقتر از MQL4 عمل میکند.
انتخاب بین MQL4 و MQL5 به هدف و سطح تجربه بستگی دارد.
اگر فرد تازهکار هستید یا قصد دارید ابزارهای سادهتری توسعه دهید، MQL4 گزینه مناسبتری محسوب میشود. اما اگر به دنبال امکانات پیشرفته، سرعت بیشتر و توسعه ابزارهای پیچیده هستید، MQL5 انتخاب حرفهایتری است.
نحوه دانلود اسکریپت متاتریدر
برای استفاده از اسکریپتهای آماده در متاتریدر 4 و 5، ابتدا باید اسکریپت موردنظر خود را از منبع امن دریافت و سپس در پلتفرم نصب کنید. یکی از بهترین منابع برای دانلود اسکریپتها، سایت رسمی MQL5 است.
پس از ورود به سایت، از بخش بالای صفحه گزینه CodeBase را انتخاب کنید.
با ورود به این بخش، میتوانید صدها اسکریپت آماده را مشاهده کرده و بر اساس نسخه پلتفرم خود آنها را فیلتر کنید. همانطور که در پنل سمت چپ مشاهده میشود، کافی است متناسب با نسخهای که استفاده میکنید (MetaTrader 4 یا MetaTrader 5) گزینه Scripts را انتخاب کنید تا فهرست کامل اسکریپتها برایتان نمایش داده شود.
برای مثال، اگر قصد دارید اسکریپت “buysell+sl=tp” را دانلود کنید، ابتدا روی نام آن کلیک کنید تا وارد صفحه توضیحات و بخش دانلود اسکریپت شوید. سپس با انتخاب گزینه Download فایل به صورت فشرده (ZIP) دانلود میشود. فایل ZIP را از حالت فشرده خارج کنید و نسخه استخراجشده را کپی کنید.
اکنون وارد متاتریدر شوید و از منوی File گزینه Open Data Folder را انتخاب کنید. در صفحهای که باز میشود:
-
در متاتریدر 5 وارد پوشه MQL5 شوید
-
در متاتریدر 4 وارد پوشه MQL4 شوید
پس از آن وارد پوشه Scripts شوید و فایل کپیشده را در این پوشه Paste کنید.
برای ظاهر شدن اسکریپت در محیط متاتریدر، باید یکبار پنجره Navigator را رفرش کنید؛ کافی است در فضای خالی Navigator راستکلیک کرده و گزینه Refresh را انتخاب کنید. همچنین میتوانید یکبار متاتریدر را بسته و دوباره اجرا کنید.
اکنون اسکریپت نصبشده در بخش Navigator > Scripts قابل مشاهده است و میتوانید آن را اجرا کنید. اسکریپتهایی مانند sell-sl-tp، buy-sl-tp یا Close All پس از نصب در همین بخش نمایش داده خواهند شد.
چگونه یک اسکریپت را در متاتریدر اجرا کنیم؟
برای استفاده از اسکریپتها در پلتفرم متاتریدر، ابتدا لازم است چند تنظیم مهم را فعال کنید. از منوی اصلی روی Tools و سپس Options کلیک کنید. اگر بخواهید سریعتر عمل کنید، کلیدهای میانبر Ctrl+O هم همین پنجره را برای شما باز میکنند.
پس از باز شدن پنجره Options، وارد تب Expert Advisors شوید و دو گزینه زیر را فعال کنید:
-
Allow automated trading
-
Allow DLL imports
فعال بودن این گزینهها باعث میشود هنگام اجرای اسکریپت با پیغامهای تأیید متعدد روبهرو نشوید، بهخصوص اگر اسکریپت کمی پیچیده باشد.
تنظیمات یک اسکریپت در متاتریدر
بسته به نوع اسکریپتی که استفاده میکنید، بخش تنظیمات میتواند ساده یا بسیار گسترده باشد. برای نمونه، اسکریپت Close ALL که برای بستن همزمان چند معامله بهکار میرود، تنظیمات متنوعی دارد؛ مثل بستن معاملات برنده، بازنده، سفارشات در حال انتظار و چند گزینهی دیگر.
بهتر است پس از تنظیم گزینههای دلخواه، روی Save کلیک کنید تا بتوانید بعدها با استفاده از Load همان تنظیمات را دوباره بارگذاری کنید. پس از اتمام کار، دکمه OK را بزنید تا اسکریپت اجرا شود.
چگونه یک اسکریپت سفارشی را به متاتریدر اضافه کنیم؟
متاتریدر بهصورت پیشفرض تعداد محدودی اسکریپت دارد، به همین دلیل بسیاری از معاملهگران از اسکریپتهای سفارشی استفاده میکنند. این اسکریپتها معمولاً با فرمت MQL یا EXE ارائه میشوند.
برای اضافهکردن یک اسکریپت سفارشی مراحل زیر را انجام دهید:
-
پلتفرم متاتریدر را باز کنید.
-
از منوی اصلی وارد File شوید و روی Open Data Folder کلیک کنید.
-
در پنجره جدید، وارد پوشه MQL4 یا MQL5 شوید.
-
سپس وارد پوشه Scripts شده و فایل اسکریپت خود را در آنجا کپی کنید.
-
به متاتریدر برگردید، در پنل Navigator روی بخش Scripts راستکلیک کرده و گزینه Refresh را بزنید.
پس از انجام این کار، اسکریپت شما در لیست اسکریپتها قابل مشاهده خواهد بود و میتوانید آن را اجرا کنید.
اگر به دنبال اسکریپتهای آماده هستید، میتوانید از طریق بخش اختصاصی سایت رسمی متاتریدر، اسکریپتهای نسخه 4 و 5 را دانلود کنید.
چگونه یک اسکریپت در MetaEditor ایجاد کنیم؟
پلتفرم MetaTrader 4 را باز کنید و از مسیر Tools > MetaQuotes Language Editor وارد محیط MetaEditor شوید. اینجا محیط توسعه برای کدنویسی MQL4 است.
در MetaEditor روی File > New کلیک کنید یا از میانبر Ctrl+N استفاده کنید. یک فایل اسکریپت خالی ایجاد میشود و میتوانید کدنویسی را شروع کنید.
در ابتدای اسکریپت باید ویژگیهای پایه را مشخص کنید. این شامل نام اسکریپت، توضیحات و پارامترهای ورودی لازم است.
زیر بخش خصوصیات، باید کد اصلی اسکریپت نوشته شود. این کد بستگی به کاری دارد که میخواهید اسکریپت انجام دهد.
پس از نوشتن کد، فایل را با یک نام مناسب و پسوند .mq4 یا .mq5 ذخیره کنید. سپس روی دکمه Compile در نوار ابزار MetaEditor کلیک کنید.
اسکریپت کامپایل میشود و اگر خطایی وجود داشته باشد، در بخش Errors و Warnings نمایش داده خواهد شد.
پیامهای خطا یا هشدار را مرور کنید و خطاهای نحوی یا منطقی را برطرف کنید.
بعد از اینکه اسکریپت بدون خطا کامپایل شد، میتوانید آن را در پلتفرم MetaTrader 4 استفاده کنید. کافی است مراحل اضافه کردن اسکریپت که بالاتر گفته شد را انجام دهید.
یک چارت در MT4 باز کنید، اسکریپت را روی آن بکشید یا روی نام اسکریپت در Navigator دوبار کلیک کنید. اسکریپت اجرا میشود و میتوانید خروجی یا عملکردش را بررسی کنید تا مطمئن شوید همانطور که باید کار میکند.
برخی از اسکریپتهای کاربردی در متاتریدر
برای اینکه بتوانید اسکریپت مناسب نیازهای معاملاتی خود را انتخاب کنید، در ادامه چند نمونه از اسکریپتهای پرکاربرد و مفید متاتریدر معرفی شده است.
ماشینحساب اندازه پوزیشن
این اسکریپت به معاملهگر کمک میکند همزمان با حفظ میزان ریسک، حجم مناسب معامله را محاسبه کند. کافی است تعداد پیپهای حد ضرر و درصد ریسکی که قصد پذیرش آن را دارید وارد کنید. اسکریپت با توجه به این اطلاعات، حجم تقریبی معامله را محاسبه کرده و در نهایت یک پوزیشن متناسب با شرایط تعیینشده باز میکند.
تعیین خودکار حد ضرر و حد سود
این اسکریپت امکان اضافه کردن استاپلاس و حد سود را به صورت خودکار و بر اساس تعداد مشخصی پیپ فراهم میکند. بنابراین میتوانید بدون اتلاف وقت، تنظیمات مدیریت ریسک را روی معاملات خود اعمال کنید.
اسکریپت Close On Chart
اگر چند معامله باز روی یک نماد دارید و میخواهید همه را به شکل سریع و یکجا ببندید، این اسکریپت دقیقا برای همین کار طراحی شده است. فرض کنید ۷ معامله باز روی جفتارز EURUSD دارید؛ با اجرای این اسکریپت میتوانید تنها با یک دستور، تمام معاملات را همزمان ببندید.
انتقال سابقه حساب
با فعالسازی این اسکریپت میتوانید تاریخچه معاملات حساب خود را به یک فایل خروجی منتقل کنید. فایل ایجادشده در پوشه MQL4/Files یا Common/Files ذخیره میشود. نام فایل میتواند به صورت خودکار تولید شود یا از طریق پارامترهای اسکریپت به شکل دستی تنظیم شود.
جمع بندی
اسکریپتها در متاتریدر ابزارهای کوچک اما کارآمدی هستند که اجرای وظایف تکراری، دستورات معاملاتی و بخشهایی از تحلیل تکنیکال را خودکار میکنند و به همین دلیل سرعت و دقت فرایند ترید را بالا میبرند. اسکریپتها فقط یکبار اجرا میشوند و برای کارهای سریع مثل بستن گروهی معاملات، ارسال هشدار، اعمال حد سود و ضرر یا تحلیل دادهها استفاده میشوند.

















