




اندیکاتور فرمول ایکس مستر (Xmaster Formula) تلفیقی از اندیکاتورهای میانگین متحرک و MACD است که امکان شناسایی قدرت روند و جهت روند را با دقت بیشتری فراهم میکند. اندیکاتور متاتریدر 4 ایکس مستر با استفاده از دو پیکان سبز و قرمز، سیگنال ورود (Entry) را در اختیار معاملهگران قرار میدهد.
یکی از متخصصان تیم برنامهنویسی TradingFinder گفت:
"برخی کاربران هنگام جستجوی اندیکاتور Xmaster به اشتباه آن را XHmaster تایپ میکنند. این اشتباه باعث شده برخی افراد در یافتن اطلاعات صحیح دچار مشکل شوند. برای جلوگیری از این سردرگمی، لازم است کاربران هنگام جستجو از نام درست، ایکس مستر (Xmaster)، استفاده کنند."
جدول مشخصات Xmaster Formula
جدول مشخصات شامل اطلاعات کلی درباره عملکرد اندیکاتور فرمول ایکس مستر است:
دستهبندی | پرنوسان - باندها و کانالها – اسیلاتور |
پلتفرم | متاتریدر 4 |
سطح مهارتی | مبتدی |
نوع اندیکاتور | ادامهدهنده - بازگشتی |
بازه زمانی | مولتی تایم فریم |
سبک معاملاتی | ترید در طول روز |
بازار معاملاتی | تمام بازارها |
کد فرمول ایکس مستر [Xmaster Formula]
در اینجا بخشی از کد فرمول Xmaster برای پلتفرم متاتریدر ۵ را مشاهده میکنید:
//+------------------------------------------------------------------+
//| XMaster Formula |
//| Copyright © tradingfinder.com 2023 -2025 |
//+------------------------------------------------------------------+
#property copyright "tradingfinder.com"
#property link "https://tradingfinder.com/products/indicators/mt4/"
#property version "1.05"
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_color3 Red
#property indicator_color4 Yellow
#property indicator_color5 Yellow
extern bool alert_on = true;
extern bool alert_sound = false;
extern bool alert_email = false;
int fast_period = 40;
int arrow_gap = 200;
int ma_method = MODE_SMMA;
int applied_price = PRICE_LOW;
double red_line[], green_line[], line_buffer[], up_arrow[], down_arrow[];
datetime last_alert;
// Alerts on trend change
void manage_alert(string dir, double tp, double sl, double price) {
if (Time[0] == last_alert) return;
last_alert = Time[0];
string msg = "XMASTER FORMULA " + dir + " Price " + DoubleToStr(price, 4);
if (tp != 0) msg += ", TakeProfit " + DoubleToStr(tp, 4);
if (sl != 0) msg += ", StopLoss " + DoubleToStr(sl, 4);
if (alert_on) Alert(msg + " " + Symbol() + ", " + Period() + " min");
if (alert_sound) PlaySound("alert.wav");
if (alert_email) SendMail("Xmaster Formula", msg);
}
int init() {
IndicatorBuffers(5);
SetIndexBuffer(0, red_line); SetIndexStyle(0, DRAW_ARROW); SetIndexArrow(0, 159);
SetIndexBuffer(1, green_line); SetIndexStyle(1, DRAW_ARROW); SetIndexArrow(1, 108);
SetIndexBuffer(2, line_buffer); SetIndexStyle(2, DRAW_NONE);
SetIndexBuffer(3, up_arrow); SetIndexStyle(3, DRAW_ARROW); SetIndexArrow(3, 226);
SetIndexBuffer(4, down_arrow); SetIndexStyle(4, DRAW_ARROW); SetIndexArrow(4, 225);
IndicatorShortName("XMASTER FORMULA");
return(0);
}
int deinit() { return(0); }
// MA wrapper
double ma_value(int shift, int period) {
return iMA(NULL, 0, period, 0, ma_method, applied_price, shift);
}
int start() {
int i, counted = IndicatorCounted();
if (counted < 0) return (-1);
int sqrt_period = MathFloor(MathSqrt(fast_period));
int short_period = MathFloor(fast_period / 1.9);
int total = Bars - counted + fast_period + 1;
if (total > Bars) total = Bars;
double trend_dir[], tmp_ma[];
ArraySetAsSeries(trend_dir, true); ArrayResize(trend_dir, total);
ArraySetAsSeries(tmp_ma, true); ArrayResize(tmp_ma, total);
// Compute double smoothed MA
for (i = 0; i < total; i++)
trend_dir[i] = 2.0 * ma_value(i, short_period) - ma_value(i, fast_period);
for (i = 0; i < total - fast_period; i++)
line_buffer[i] = iMAOnArray(trend_dir, 0, sqrt_period, 0, ma_method, i);
// Detect trend direction and signal
for (i = total - fast_period; i > 0; i--) {
tmp_ma[i] = tmp_ma[i + 1];
if (line_buffer[i] > line_buffer[i + 1]) tmp_ma[i] = 1;
else if (line_buffer[i] < line_buffer[i + 1]) tmp_ma[i] = -1;
if (tmp_ma[i] > 0) {
red_line[i] = line_buffer[i];
green_line[i] = EMPTY_VALUE;
if (tmp_ma[i + 1] < 0 i == 1)
manage_alert("UP Buy", 0, Close[1] - arrow_gap * Point, Close[1]);
} else if (tmp_ma[i] < 0) {
green_line[i] = line_buffer[i];
red_line[i] = EMPTY_VALUE;
if (tmp_ma[i + 1] > 0 i == 1)
manage_alert("DOWN Sell", 0, Close[1] + arrow_gap * Point, Close[1]);
}
}
// Show yellow arrow at signal transition
for (i = 0; i < total - 1; i++) {
if (green_line[i + 1] == EMPTY_VALUE green_line[i] != EMPTY_VALUE)
up_arrow[i] = green_line[i];
if (red_line[i + 1] == EMPTY_VALUE red_line[i] != EMPTY_VALUE)
down_arrow[i] = red_line[i];
}
return(0);
}
شرایط روند صعودی
نمودار قیمتی انس جهانی طلا در برابر دلار آمریکا با نماد (XAUUSD) در بازه زمانی 4 ساعت نشان داده شده است.
پیکان سبز، سیگنال صعود و تغییر روند را نشان میدهد؛ در چنین شرایطی معاملهگران میتوانند پیکان سبز را سیگنال ورود (Entry) در نظر بگیرند و وارد موقعیت معاملاتی خرید (Buy) شوند.

شرایط روند نزولی
نمودار قیمتی زیر، جفت ارز دلار آمریکا به ین ژاپن با نماد (USD/JPY) را در بازه زمانی 5 دقیقه نشان میدهد؛ پیکان قرمز نشاندهنده تغییر روند و سیگنال نزولی است؛ در نتیجه موقعیت معاملاتی فروش (Sell) را در اختیار معاملهگران قرار میدهد.

تنظیمات اندیکاتور
تصویر زیر تنظیمات پیشفرض اندیکاتور فرمول ایکس مستر را نمایش میدهد:

- Chart-theme: تم نمودار؛
- Alert-on: روشن شدن هشدار؛
- Alert-sound: صدای هشدار؛
- Alert-email: هشدار ایمیل.
جمع بندی
اندیکاتور فرمول ایکس مستر (Xmaster Formula) از تلاقی دو اندیکاتور پرکاربرد بدست میآید تا معاملهگران نقاط ورود (Entry) و خروج (Exit) را محاسبه کرده و روند را از طریق پیکان سبز و قرمز تشخیص دهند؛ این ابزار برای معاملهگران روزانه و نوسانی کاربرد دارد.
آیا این اندیکاتور سیگنال ورود به معاملات صادر میکند؟
این اندیکاتور با ارائه پیکان سبز و قرمز، محدودهای برای ورود به معامله در اختیار معاملهگران قرار میدهد.
آیا این اندیکاتور صرفا نقاط ورود را نشان میدهد؟
خیر، یکی از ویژگیهای این اندیکاتور، تشخیص روند است.