MetaTrader 5 Robotu (Expert Advisor) Nasıl Yazılır ve Çalıştırılır?
Son güncelleme: Ekim 2026
MetaTrader 5 robotu — resmi adıyla Expert Advisor (EA) — piyasayı izleyip senin belirlediğin kurallara göre işlem açan küçük bir programdır. Bu başlangıç rehberinde MQL5 ile ilk robotunu yazmayı, güvenle test etmeyi, yapay zeka ile taslak çıkarmayı ve 7/24 çalıştırmayı adım adım anlatıyoruz.
Expert Advisor nedir?
EA, masaüstü MetaTrader 5 terminalinde bir grafiğe eklenen koddur. Fiyat her değiştiğinde (tick) MT5 robotu çağırır; robot göstergeleri okuyabilir, pozisyon açıp kapatabilir, stopları yönetebilir. EA'lar C++'a benzeyen MQL5 diliyle, MT5 ile birlikte gelen MetaEditor'da yazılır.
Önemli: EA'lar yalnızca masaüstü terminalde çalışır. MT5 mobil uygulamasıyla elle işlem yapabilirsin ama robot çalıştıramazsın.
Neye ihtiyacın var?
- MetaTrader 5 masaüstü (broker'ından ya da metatrader5.com'dan) — MetaEditor içinde gelir.
- Broker'ında bir demo hesap. Asla gerçek hesapla başlama.
- Net bir kural seti: ne zaman girilecek, ne zaman çıkılacak, ne kadar risk alınacak.
Bir EA'nın yapısı
OnInit()robot başlarken bir kez çalışır — gösterge tanımlarını oluşturur, girdileri kontrol eder.OnTick()her fiyat değişiminde çalışır — işlem mantığın burada.OnDeinit()robot kaldırılırken çalışır — kaynakları bırakır.inputdeğişkenleri, kodu açmadan değiştirebileceğin ayarlara dönüşür.
İlk robotun: hareketli ortalama kesişimi
MetaEditor'da Dosya → Yeni → Expert Advisor (şablon) seç, bir ad ver ve kodu şununla değiştir:
#include <Trade\Trade.mqh>
input int FastMA = 10; // fast average
input int SlowMA = 30; // slow average
input double Lots = 0.01; // lot size
input ulong Magic = 260101; // tags this robot's orders
CTrade trade;
int hFast, hSlow;
int OnInit() {
hFast = iMA(_Symbol, _Period, FastMA, 0, MODE_SMA, PRICE_CLOSE);
hSlow = iMA(_Symbol, _Period, SlowMA, 0, MODE_SMA, PRICE_CLOSE);
if (hFast == INVALID_HANDLE || hSlow == INVALID_HANDLE) return INIT_FAILED;
trade.SetExpertMagicNumber(Magic);
return INIT_SUCCEEDED;
}
void OnDeinit(const int reason) {
IndicatorRelease(hFast);
IndicatorRelease(hSlow);
}
void OnTick() {
static datetime lastBar = 0;
datetime bar = iTime(_Symbol, _Period, 0);
if (bar == lastBar) return; // decide once per new candle, not every tick
lastBar = bar;
double f[2], s[2]; // [0] = two bars ago, [1] = last closed bar
if (CopyBuffer(hFast, 0, 1, 2, f) < 2 || CopyBuffer(hSlow, 0, 1, 2, s) < 2) return;
bool crossUp = f[0] <= s[0] && f[1] > s[1];
bool crossDown = f[0] >= s[0] && f[1] < s[1];
bool hasPos = PositionSelect(_Symbol);
if (crossUp && !hasPos) trade.Buy(Lots, _Symbol);
if (crossDown && hasPos) trade.PositionClose(_Symbol);
}Hızlı ortalama yavaşı yukarı kestiğinde alır, aşağı kestiğinde kapatır. Yalnızca yeni mumda karar verdiği için çift emir açmaz; işlemlerini bir magic number ile işaretler, böylece elle açtığın ya da başka robotların işlemlerinden ayrılır.
Derle: .mq5 → .ex5
MetaEditor'da F7'ye (Derle) bas. Hata yoksa bir .ex5 dosyası oluşur — MT5'in çalıştırdığı budur. Hatalar sekmesindeki her uyarıyı oku; başlangıç sorunlarının çoğu burada görünür.
Strategy Tester ile backtest
- MT5'te Görünüm → Strateji Test Cihazı'nı aç (Ctrl+R).
- Robotunu, sembolü, zaman dilimini ve en az bir yıllık tarih aralığını seç.
- En gerçekçi sonuç için "Gerçek tick'lere dayalı her tick" modunu kullan.
- Sadece kâra değil; net kâra, maksimum düşüşe (drawdown) ve işlem sayısına bak.
İyi bir backtest garanti değildir. Piyasa değişir; geçmiş veride harika görünen bir robot canlıda zarar edebilir.
Grafikte çalıştır
- Robotu Gezgin (Navigator) penceresinden bir grafiğe sürükle.
- Ayarlarda Algo Trading'e izin ver kutusunu işaretle ve girdileri ayarla.
- Araç çubuğundaki Algo Trading düğmesini aç. Grafikteki aktif simge robotun çalıştığını gösterir.
- Mesajlar ve hatalar için Uzmanlar (Experts) ve Günlük (Journal) sekmelerini izle.
Yapay zeka ile robot yazmak
Yapay zeka asistanları (ChatGPT, Claude vb.) MQL5 kodunu hızla taslak haline getirebilir. Kuralları net ver:
MQL5 ile bir MetaTrader 5 Expert Advisor yaz.
Strateji: mevcut grafikte 10 periyotluk SMA, 30 periyotluk SMA'yı yukarı kestiğinde al,
aşağı kestiğinde pozisyonu kapat. Aynı anda tek pozisyon.
Şartlar: CTrade kullan, magic number ve lot girdisi olsun, yalnız yeni mumda karar ver,
her işlem sonucunu kontrol edip hata kodunu Print ile yaz, Sleep() ve DLL kullanma.
Kısa açıklama satırları ekle.Sonra çıkan koda yabancı birinin yazdığı kod gibi davran:
- Derle ve her hatayı düzelt — yapay zeka sık sık MQL4 ile MQL5 fonksiyonlarını karıştırır.
- Lot ve risk mantığını satır satır kontrol et.
- Her emrin stopu ya da net bir çıkışı ve benzersiz bir magic number'ı olsun.
- Önce backtest, sonra haftalarca demo; ancak ondan sonra canlı.
7/24 çalıştırmak
Robot yalnızca terminal açık ve bağlıyken çalışır. Bilgisayarın uyursa ya da internet giderse robot durur. Seçenekler: bilgisayarı hep açık tutmak, Windows VPS kiralamak ya da yönetilen bir bulut kullanmak. etrink'te .mq5 ya da .ex5 dosyanı Bot ekleme sayfasına yüklersin — derler, hata varsa gösterir ve 7/24 açık MT5 terminaline yerleştiririz; canlı ekranı telefonundan izleyebilirsin.
Canlıya geçiş kontrol listesi
- Uzun bir dönemde ve farklı piyasa koşullarında backtest edildi.
- Haftalarca demo hesapta çalıştı, sonuçlarını anlıyorsun.
- İşlem başı risk belli; kabul edebileceğin maksimum düşüş belli.
- Her pozisyonda stop/çıkış var; magic number benzersiz.
- Canlıya en küçük lotla başla.
Sık sorulan sorular
MT5 botu çalıştırmak için kod bilmem gerekir mi?
Hayır. Hazır bir Expert Advisor'ı (.ex5) kod bilmeden çalıştırabilirsin. Kendi botunu yazmak için temel MQL5 işe yarar — ya da yapay zeka ile taslak çıkarıp dikkatle test edebilirsin.
.mq5 ile .ex5 arasındaki fark nedir?
.mq5, MetaEditor'da düzenlediğin kaynak koddur. .ex5 ise MetaTrader 5'in çalıştırdığı derlenmiş dosyadır.
MT5 botunu telefonda çalıştırabilir miyim?
Hayır. MetaTrader 5 mobil uygulaması Expert Advisor çalıştıramaz. Botlar 7/24 açık masaüstü terminal ister — bilgisayarında, bir VPS'te ya da etrink gibi yönetilen bir bulutta.
Botu canlıya almadan önce ne kadar test etmeliyim?
Önce Strategy Tester ile geçmiş veride dene, ardından gerçek para riske atmadan önce en az birkaç hafta, farklı piyasa koşullarında demo hesapta çalıştır.
Ücretsiz başla — test ettiğin robotunu bulutta 7/24 açık MT5 terminalinde çalıştır. İlgili: MT5 robotunu VPS olmadan 7/24 çalıştır.