لیست محتوایی که در این صفحه می خوانید
ساخت اندیکاتور در متاتریدر یک راه قدرتمند برای تقویت استراتژی معاملاتی شما است. متاتریدر که در نسخه های 4 (MT4) و 5 (MT5) موجود است، از یک زبان برنامه نویسی به نام MQL (زبان MetaQuotes) برای ساخت انواع اندیکاتور فارکس سفارشی، اسکریپت ها و اکسپرت فارکس استفاده می کند. پیش تر با نحوه نصب اندیکاتور در متاتریدر و یا انواع اندیکاتور پولی در تریدینگ ویو آشنا شدیم، این مقاله از آی پراپ فرم شما را در فرآیند ساخت اندیکاتور در متاتریدر از ابتدا راهنمایی می کند و همه چیز را از تنظیم محیط گرفته تا کدنویسی و آزمایش اندیکاتور را پوشش می دهد.
ساخت اندیکاتور در متاتریدر به چه معناست؟
ساخت اندیکاتور در متاتریدر شامل توسعه یک ابزار سفارشی است که داده های بازار را بر اساس معیارهای خاص تعیین شده توسط کاربر تجزیه و تحلیل و ارائه می کند. این اندیکاتورها به معاملهگران کمک میکنند تا با برجسته کردن روندها، الگوها و سیگنال معاملاتی بالقوه که ممکن است فوراً از دادههای قیمت خام بهتنهایی آشکار نباشند، تصمیمات آگاهانه بگیرند. متاتریدر۴ و متاتریدر ۵، یک پلتفرم معاملاتی محبوب، از زبان برنامه نویسی MQL (MQL4 برای متاتریدر 4 و MQL5 برای متاتریدر 5) برای ایجاد این اندیکاتورها استفاده می کند.
فرآیند ساخت اندیکاتور در متاتریدر با تعیین هدف و نوع تحلیلی که انجام خواهد داد آغاز می شود. این می تواند از مووینگ اوریج ساده تا الگوریتم های پیچیده ای که چندین نقطه داده را ترکیب می کنند، متغیر باشد. سپس معاملهگر یا توسعهدهنده کد را در MetaEditor، محیط توسعه یکپارچه ارائه شده با MetaTrader، برای پیادهسازی این منطق مینویسد. این کد مشخص می کند که اندیکاتور چگونه مقادیر خود را محاسبه می کند و چگونه در نمودار نمایش داده می شود.
پس از کدگذاری اندیکاتور، در متاتریدر کامپایل و آزمایش می شود. معامله گران می توانند پارامترهای ورودی را برای تطبیق اندیکاتور با استراتژی های معاملاتی مختلف یا شرایط بازار سفارشی کنند. محصول نهایی پس از ساخت اندیکاتور در متاتریدر یک ابزار بصری است که بر روی نمودارهای معاملاتی قرار می گیرد و تجزیه و تحلیل و سیگنال هایی را در زمان واقعی برای هدایت تصمیمات معاملاتی ارائه می دهد.
آموزش ساخت اندیکاتور در متاتریدر به صورت گام به گام
ساخت اندیکاتور در متاتریدر به معامله گران قدرت می دهد تا ابزارهای تجزیه و تحلیل خود را با نیازهای خاص خود تطبیق دهند و توانایی آنها را برای تفسیر حرکات بازار و انجام معاملات استراتژیک تر افزایش دهد. این قابلیت به ویژه در دنیای بسیار پویا و رقابتی ترید در فارکس ارزشمند است، جایی که داشتن یک مزیت منحصر به فرد می تواند تفاوت قابل توجهی در نتایج معاملات ایجاد کند.
گام اول: محیط خود را تنظیم کنید
قبل از شروع کدنویسی و ساخت اندیکاتور در متاتریدر، مطمئن شوید که موارد زیر را دارید:
- MetaTrader 4 یا MetaTrader 5: پلتفرم را از وب سایت رسمی MetaQuotes یا وب سایت بروکر فارکس خود دانلود و نصب کنید.
- MetaEditor: این محیط توسعه یکپارچه (IDE) برای نوشتن کد MQL است که همراه با MetaTrader است.
گام دوم: درک مبانی MQL برای ساخت اندیکاتور در متاتریدر
MQL4 و MQL5 زبان هایی هستند که برای کدنویسی و ساخت اندیکاتور در متاتریدر استفاده می شوند. آنها شباهت هایی با C++ دارند و به طور خاص برای برنامه های معاملاتی طراحی شده اند. تفاوت های اولیه عبارتند از:
- MQL4: برای MT4 استفاده می شود، بر روی عملیات تک رشته ای تمرکز می کند.
- MQL5: برای MT5 استفاده می شود، از قابلیت های چند رشته ای و پیشرفته تر پشتیبانی می کند.
گام سوم: ایجاد یک اندیکاتور ساده
در این مرحله گام هایی که باید برای ساخت اندیکاتور در متاتریدر دنبال کنید را در زیر می بینید:
مرحله اول: MetaEditor را باز کنید
- متاتریدر را باز کنید.
- به «File» > «Open Data Folder» بروید.
- به «MQL4» (یا «MQL5» برای MT5) > «Indicators» بروید.
- کلیک راست کرده و «Create New File» را انتخاب کنید، سپس «Custom Indicator» را انتخاب کنید.
مرحله 2: اندیکاتور را تعریف کنید
MetaEditor شما را از طریق یک wizard راهنمایی می کند تا ویژگی های اصلی اندیکاتور خود را تعریف کنید.
- نام اندیکاتور: نامی را برای ساخت اندیکاتور در متاتریدر انتخاب کنید (به عنوان مثال، «SimpleMA»).
- Author: نام شما.
- Link: وب سایت یا اطلاعات تماس شما.
همچنین از شما خواسته می شود که نوع اندیکاتور (مثلاً اسیلاتور، اندیکاتور حجم) و تعداد پارامترهای ورودی و بافرها را انتخاب کنید.
مرحله 3: کدگذاری برای ساخت اندیکاتور در متاتریدر
wizard یک الگو با ساختار اصلی اندیکاتور MQL تولید می کند. در اینجا یک مثال از ساخت اندیکاتور در متاتریدر که یک اندیکاتور میانگین متحرک ساده است، آورده شده است:
//+——————————————————————+
//| SimpleMA.mq4 |
//| Copyright 2023, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+——————————————————————+
#property strict
//— input parameters
input int MA_Period=14; // Moving Average Period
//— indicator buffers
double MA_Buffer[];
//+——————————————————————+
//| Custom indicator initialization function |
//+——————————————————————+
int OnInit()
{
// Indicator buffers mapping
SetIndexBuffer(0,MA_Buffer);
// Name for DataWindow and indicator subwindow label
IndicatorShortName(“SimpleMA(“+IntegerToString(MA_Period)+”)”);
return(INIT_SUCCEEDED);
}
//+——————————————————————+
//| Custom indicator iteration function |
//+——————————————————————+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//— calculate the Moving Average
for(int i=0; i<rates_total; i++)
{
if(i>=MA_Period)
MA_Buffer[i]=iMA(NULL,0,MA_Period,0,MODE_SMA,PRICE_CLOSE,i);
}
return(rates_total);
}
//+——————————————————————+
مرحله ۴: درک کد برای ساخت اندیکاتور در متاتریدر
- #property strict: قوانین کامپایل سختگیرانه را برای کیفیت بهتر کد در ساخت اندیکاتور در متاتریدر اعمال می کند.
- Input Parameters: `input int MA_Period=14;` یک دوره قابل تنظیم برای میانگین متحرک تعریف می کند.
- Buffers: `double MA_Buffer[];` آرایه ای برای ذخیره مقادیر MA محاسبه شده است.
- OnInit(): اندیکاتور را مقداردهی می کند، بافرها را نقشه برداری می کند و نام اندیکاتور را تنظیم می کند.
- OnCalculate(): تابع اصلی که در آن محاسبات برای هر نوار در نمودار را برای ساخت اندیکاتور در متاتریدر انجام می شود.
مرحله ۵: تدوین و تست
- کامپایل کد: روی دکمه “Compile” در MetaEditor کلیک کنید. اطمینان حاصل کنید که هیچ خطایی وجود ندارد.
- اندیکاتور را ضمیمه کنید: به متاتریدر برگردید، نموداری را باز کنید و اندیکاتور خود را در زیر «Custom Indicators» پیدا کنید. آن را به نمودار اضافه کرده و پارامترهای ورودی را پیکربندی کنید.
مرحله ۶: ارتقا دادن پس از ساخت اندیکاتور در متاتریدر
پس از ساخت اندیکاتور در متاتریدر میتوانید با افزودن ویژگیهای بیشتر، اندیکاتور خود را افزایش دهید، مانند:
- بافرهای اضافی: برای اندیکاتورهای پیچیده تر با چندین خط.
- اشیاء گرافیکی: خطوط، اشکال یا متن را روی نمودار بکشید.
- هشدارها: اعلان ها را بر اساس شرایط خاص فعال کنید.
در اینجا مثالی از افزودن یک هشدار زمانی پس از ساخت اندیکاتور در متاتریدر که MA از قیمت بسته عبور می کند آورده شده است:
if(close[rates_total-1] > MA_Buffer[rates_total-1] && close[rates_total-2] <= MA_Buffer[rates_total-2])
{
Alert(“Price crossed above the Moving Average!”);
}
else if(close[rates_total-1] < MA_Buffer[rates_total-1] && close[rates_total-2] >= MA_Buffer[rates_total-2])
{
Alert(“Price crossed below the Moving Average!”);
}
موضوعات پیشرفته در ساخت اندیکاتور در متاتریدر
اندیکاتورهای سفارشی با ورودی های متعدد: برای انعطاف بیشتر می توانید پارامترهای ورودی متعددی را اضافه کنید. به عنوان مثال، ایجاد یک اندیکاتور RSI با دوره و نوع قیمت قابل تنظیم:
input int RSI_Period=14;
input ENUM_APPLIED_PRICE Applied_Price=PRICE_CLOSE;
double RSI_Buffer[];
int OnInit()
{
SetIndexBuffer(0, RSI_Buffer);
IndicatorShortName(“CustomRSI(“+IntegerToString(RSI_Period)+”)”);
return(INIT_SUCCEEDED);
}
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
for(int i=0; i<rates_total; i++)
{
RSI_Buffer[i] = iRSI(NULL, 0, RSI_Period, Applied_Price, i);
}
return(rates_total);
}
اشکال زدایی و بهینه سازی: از ابزارهای اشکال زدایی در MetaEditor برای گذر از کد خود و یافتن مشکلات استفاده کنید. برای نصب اندیکاتور در متاتریدر کدی کارآمد بنویسید تا تأثیرات عملکرد را به حداقل برسانید، به ویژه برای اندیکاتور با محاسبات پیچیده.
اشتراک گذاری: می توانید اندیکاتور خود را با توزیع فایل های «.ex4» (برای MT4) یا «.ex5» (برای MT5) به اشتراک بگذارید.
فروش: پس از ساخت اندیکاتور در متاتریدر فروش اندیکاتورهای سفارشی خود را در بازار متاتریدر در نظر بگیرید.
جمع بندی
ساخت اندیکاتور در متاتریدر می تواند استراتژی معاملاتی شما را به میزان قابل توجهی افزایش دهد. با درک MQL و دنبال کردن مراحل ذکر شده در این راهنمای آموزش فارکس از سایت پراپ تریدینگ PropTradeFund، میتوانید اندیکاتورهای سفارشی متناسب با نیازهای معاملاتی خود را توسعه، آزمایش و اجرا کنید. برای تسلط بر هنر توسعه اندیکاتور، به طور منظم تمرین کنید MQL.