مثالهایی از رباتهای معاملهگر در MQL
آموزش رباتهای معاملهگر در MQL استفاده از MQL برای معاملات
مثالهایی از رباتهای معاملهگر در MQL
چطور با استفاده از الگوریتمها سود بیشتری کسب کنیم؟
اگر به دنیای معاملات فارکس و بازارهای مالی علاقه دارید، احتمالاً نام رباتهای معاملهگر (Trading Robots) را شنیدهاید. این رباتها که بهطور خودکار معاملات را با استفاده از الگوریتمها و استراتژیهای از پیش تعیینشده انجام میدهند، به معاملهگران کمک میکنند تا بدون نیاز به دخالت دستی، معاملات خود را بهینه کنند. یکی از محبوبترین زبانها برای ساخت رباتهای معاملهگر، زبان MQL است که در پلتفرمهای متاتریدر 4 و 5 استفاده میشود.
در این پست، به بررسی چند مثال از رباتهای معاملهگر در MQL خواهیم پرداخت تا نشان دهیم چطور میتوان با استفاده از این ابزار قدرتمند، معاملات موفقتری انجام داد. اگر شما هم به دنبال افزایش بهرهوری و دقت در معاملات خود هستید، این مقاله میتواند به شما کمک کند تا بهترین رباتها را بشناسید و از آنها در استراتژیهای خود استفاده کنید.
1. ربات خرید و فروش بر اساس تقاطع دو میانگین متحرک
این ربات بر اساس تقاطع دو میانگین متحرک (MA) عمل میکند. زمانی که میانگین متحرک کوتاهمدت از میانگین متحرک بلندمدت عبور کند، خرید انجام میدهد و برعکس برای فروش.
//+------------------------------------------------------------------+
//| MovingAverageCross.mq4 |
//| Example Expert Advisor |
//+------------------------------------------------------------------+
int shortMA = 50; // دوره میانگین متحرک کوتاه
int longMA = 200; // دوره میانگین متحرک بلند
double shortPrev, longPrev, shortCurr, longCurr;
void OnTick()
{
shortPrev = iMA(Symbol(), 0, shortMA, 0, MODE_SMA, PRICE_CLOSE, 1);
longPrev = iMA(Symbol(), 0, longMA, 0, MODE_SMA, PRICE_CLOSE, 1);
shortCurr = iMA(Symbol(), 0, shortMA, 0, MODE_SMA, PRICE_CLOSE, 0);
longCurr = iMA(Symbol(), 0, longMA, 0, MODE_SMA, PRICE_CLOSE, 0);
if (shortPrev < longPrev && shortCurr > longCurr)
{
if (OrderSend(Symbol(), OP_BUY, 0.1, Ask, 2, 0, 0, "Buy Order", 0, 0, Green) < 0)
Print("Error opening buy order: ", GetLastError());
}
if (shortPrev > longPrev && shortCurr < longCurr)
{
if (OrderSend(Symbol(), OP_SELL, 0.1, Bid, 2, 0, 0, "Sell Order", 0, 0, Red) < 0)
Print("Error opening sell order: ", GetLastError());
}
}
2. ربات خرید با استفاده از اندیکاتور RSI
این ربات بر اساس اندیکاتور RSI (Relative Strength Index) عمل میکند. وقتی RSI به زیر 30 میرسد، خرید انجام میدهد و وقتی بالای 70 میرود، فروش میکند.
//+------------------------------------------------------------------+
//| RSI_Trader.mq4 |
//| Example Expert Advisor |
//+------------------------------------------------------------------+
int RSI_Period = 14;
double RSI_Value;
void OnTick()
{
RSI_Value = iRSI(Symbol(), 0, RSI_Period, PRICE_CLOSE, 0);
if (RSI_Value < 30)
{
if (OrderSend(Symbol(), OP_BUY, 0.1, Ask, 2, 0, 0, "Buy Order", 0, 0, Blue) < 0)
Print("Error opening buy order: ", GetLastError());
}
if (RSI_Value > 70)
{
if (OrderSend(Symbol(), OP_SELL, 0.1, Bid, 2, 0, 0, "Sell Order", 0, 0, Red) < 0)
Print("Error opening sell order: ", GetLastError());
}
}
3. ربات معامله بر اساس تقاطع MACD
این ربات با استفاده از تقاطع MACD برای خرید و فروش عمل میکند. زمانی که خط MACD از خط سیگنال عبور کند، خرید و برعکس برای فروش انجام میدهد.
//+------------------------------------------------------------------+
//| MACD_Cross.mq4 |
//| Example Expert Advisor |
//+------------------------------------------------------------------+
int FastEMA = 12, SlowEMA = 26, SignalSMA = 9;
double MACD_Main, MACD_Signal;
void OnTick()
{
iMACD(Symbol(), 0, FastEMA, SlowEMA, SignalSMA, PRICE_CLOSE, MACD_Main, MACD_Signal, 0);
if (MACD_Main > MACD_Signal)
{
if (OrderSend(Symbol(), OP_BUY, 0.1, Ask, 2, 0, 0, "Buy Order", 0, 0, Blue) < 0)
Print("Error opening buy order: ", GetLastError());
}
if (MACD_Main < MACD_Signal)
{
if (OrderSend(Symbol(), OP_SELL, 0.1, Bid, 2, 0, 0, "Sell Order", 0, 0, Red) < 0)
Print("Error opening sell order: ", GetLastError());
}
}
4. ربات خرید و فروش بر اساس حرکت قیمت
این ربات فقط زمانی خرید یا فروش انجام میدهد که قیمت در یک جهت حرکت کند. اگر قیمت بالا برود، خرید میکند و اگر پایین بیاید، فروش میکند.
//+------------------------------------------------------------------+
//| PriceMovement.mq4 |
//| Example Expert Advisor |
//+------------------------------------------------------------------+
double LastClose, CurrentClose;
void OnTick()
{
LastClose = Close[1];
CurrentClose = Close[0];
if (CurrentClose > LastClose)
{
if (OrderSend(Symbol(), OP_BUY, 0.1, Ask, 2, 0, 0, "Buy Order", 0, 0, Blue) < 0)
Print("Error opening buy order: ", GetLastError());
}
if (CurrentClose < LastClose)
{
if (OrderSend(Symbol(), OP_SELL, 0.1, Bid, 2, 0, 0, "Sell Order", 0, 0, Red) < 0)
Print("Error opening sell order: ", GetLastError());
}
}
5. ربات با استفاده از تحلیل روند با اندیکاتور EMA
این ربات از اندیکاتور Exponential Moving Average (EMA) برای تشخیص روند استفاده میکند. اگر قیمت بالاتر از EMA باشد، خرید میکند و اگر پایینتر باشد، فروش میکند.
//+------------------------------------------------------------------+
//| EMA_Trend.mq4 |
//| Example Expert Advisor |
//+------------------------------------------------------------------+
int EMA_Period = 50;
double EMA_Value;
void OnTick()
{
EMA_Value = iEMA(Symbol(), 0, EMA_Period, 0, MODE_EMA, PRICE_CLOSE, 0);
if (Close[0] > EMA_Value)
{
if (OrderSend(Symbol(), OP_BUY, 0.1, Ask, 2, 0, 0, "Buy Order", 0, 0, Blue) < 0)
Print("Error opening buy order: ", GetLastError());
}
if (Close[0] < EMA_Value)
{
if (OrderSend(Symbol(), OP_SELL, 0.1, Bid, 2, 0, 0, "Sell Order", 0, 0, Red) < 0)
Print("Error opening sell order: ", GetLastError());
}
}
نکات مهم:
- این کدها برای استفاده در MetaTrader 4 (MQL4) نوشته شدهاند.
- قبل از استفاده از این رباتها، حتماً در حساب دمو آنها را آزمایش کنید.
- در این مثالها برای سادگی، مدیریت ریسک و تنظیمات سفارشات (Stop Loss، Take Profit و غیره) در نظر گرفته نشده است. برای استفاده در معاملات واقعی، این ویژگیها باید اضافه شوند.
امیدوارم این کدها به شما کمک کند تا با نحوه برنامهنویسی رباتهای معاملهگر در MQL آشنا شوید!
چنانچه علاقه مند هستید تا MQL را بصورت حرفه ای یاد بگیرید حتما در دوره های آموزشی “آموزش ربات معامله گر MQL در آموزشگاه راهکار تبریز شرکت کنید”
آموزش رباتهای معاملهگر در MQL آموزش رباتهای معاملهگر در MQL استفاده از MQL برای معاملات استفاده از MQL برای معاملات