Kategori
Platform
Seviye
Başlangıç
Kullanıldığı yer
MT5 kullanımıEA değerlendirmesiStrateji tasarımı

Expert Advisor

MQL5 ile yazılmış, MetaTrader 5 içinde çalışan ve programlanmış kurallara göre manuel müdahale olmadan emir açan, değiştiren ve kapatan otomatik bir alım satım programı.

ayrıca: EA, alım satım robotu, alım satım botu, algoritmik işlemci

Güncellendi

Sade bir dille

MetaTrader içinde sizin adınıza işlem yapan bir program. Muhakemesi yoktur ve kendisine verdiğinizin ötesinde belleği yoktur: platform çağırdığında uyanır, bakmak üzere yazıldığı birkaç şeye bakar ve harekete geçer.

Neden önemli

Backtestler, düşüş rakamları, magic number'lar, VPS çalışma süresi — bunların hepsi, emirleri bir insanın değil bir programın vermesinden doğar. Platformun bir EA'ya neyi verdiğini ve neyi vermediğini bilmek, bir sonucu doğru okumakla ondan sürpriz yemek arasındaki farktır.

  • Tereddüt etmeden uygular; bütün değeri de bütün riski de buradadır. Geçerli hiçbir sinyali atlamayan kurallar bütünü, bugünün farklı olduğunu da hiçbir zaman fark etmez.
  • Dar bir kesit görür: kendi sembolünün fiyatları, talep ettiği gösterge değerleri, hesabın kendi pozisyonları ve bakiyesi. Haberler, başka aracı kurumların kotasyonları ve diğer hesaplarınız, kod onları çekmedikçe bu pencerenin dışında kalır.
  • Derlenmiş olarak dağıtılır. Bir .ex5 dosyası çalışır ama okunamaz; bu yüzden alıcının güveni kaynak koddan değil, yayımlanmış test kanıtlarından gelmek zorundadır.
  • Yalnızca terminal çalıştığı sürece çalışır. Uyuyan bir dizüstü bilgisayardaki EA, işlem yapmayan bir EA'dır — VPS'in bütün gerekçesi budur.

MetaTrader 5'te

MT5'te nerede görünür

  • Gezgin → Expert Advisors — terminalin görebildiği derlenmiş EA'lar
  • Dosya → Veri Klasörünü Aç → MQL5/Experts — .ex5 dosyasının görünmesi için bulunması gereken yer
  • Araç çubuğu → Algo Trading — ana anahtar; grafikte suratı asık bir EA, bu düğmenin engellediği EA'dır
  • Grafik → EA özellikleri (F7) → Inputs / Common — parametreler ve EA bazında izinler
  • Görünüm → Strateji Test Cihazı (Ctrl+R) — aynı EA'nın geçmiş veri üzerinde çalıştırılması

EA'lar nasıl kullanır

  • Terminal, eklendiğinde bir kez OnInit()'i, grafiğin sembolüne gelen her kotasyonda OnTick()'i ve kaldırıldığında OnDeinit()'i çağırır.
  • İş genellikle her tikte değil kapanmış barlarda yapılır: EA, güncel barın açılış zamanını sakladığı zamanla karşılaştırır ve yeni bir şey oluşmadıysa hemen geri döner.
  • Emirler doldurulmuş bir MqlTradeRequest olarak ya da çoğunu sizin için dolduran CTrade sarmalayıcısı üzerinden gider.
  • Her örnek, yalnızca kendi pozisyonlarını yönetsin diye emirlerini bir magic number ile etiketler — bu olmadan iki EA aynı biletler için çekişir.

Tipik ayarlar

Ayar Tipik değer Not
Algo Trading (terminal) etkin Kurulumdan sonra kapalıdır. Açılmadan hiçbir şey işlem yapmaz.
Algo Trading'e izin ver (EA bazında, F7 → Common) etkin Terminal genelindeki anahtardan ayrı bir izindir.
Listelenen URL için WebRequest'e izin ver EA'nın ihtiyacı yoksa kapalı Yalnızca dış veri çeken EA'lar buna ihtiyaç duyar; URL bazında verin, asla topluca değil.
Grafik zaman dilimi EA'nın tasarlandığı zaman dilimi H1 grafiğindeki bir M15 stratejisi başka bir stratejidir — OnTick her tikte tetiklenir ama bar mantığı grafiğin periyodunu okur.
MagicNumber çalışan her örnek için benzersiz Ürün başına değil: aynı EA'yı çalıştıran iki grafik iki değer ister.

Sık görülen işletim sorunları

  • Terminal kapalı, uykuda ya da güncelleme için yeniden başlıyor — EA basitçe çalışmıyordur ve hiçbir hata kaydedilmez.
  • Aracı kurum ile ayarlar arasındaki sembol adı uyuşmazlığı (EURUSD'ye karşı EURUSD.m) EA'yı ekli ve sessiz bırakır.
  • Yetersiz serbest teminat: OrderSend her denemede başarısız olur ve EA denemeye devam eder; böylece hesap hiçbir şey yapmazken günlük dolar.
  • Birden fazla EA aynı anda emir gönderdiğinde işlem bağlamı meşgul olur — aralıklı ve yeniden üretilmesi zor hatalar.
  • EA, farklı bir uygulama modeline veya kontrat büyüklüğüne sahip bir aracı kurumda test edilmiştir ve canlıda hiçbir kod değişikliği olmadan farklı davranır.

İlgili MT5 fonksiyonları

OnInit() / OnDeinit()
Eklemede bir kez, kaldırmada bir kez çağrılır — girdilerin doğrulandığı ve handle'ların oluşturulduğu yer.
OnTick()
Grafik sembolüne gelen her kotasyonda çağrılır; ana giriş noktasıdır.
OnTimer()
EventSetTimer() ile belirlenen sabit aralıkta çağrılır; tiklerin gelmesine bağlı olmaması gereken işler için.
OrderSend(request, result)
Her alım satım işlemini gönderen tek çağrı; türünü request yapısı belirler.
CTrade (Trade/Trade.mqh)
Çoğu EA'nın MqlTradeRequest'i elle doldurmak yerine kullandığı standart kütüphane sarmalayıcısı.

Örnek

Neredeyse her EA, platformun onu çağırdığı sıraya indirgenmiş hâliyle. Bunların hiçbiri strateji değildir — strateji bu çerçevenin içine oturur.

1. OnInit()
bir kez, eklemede
Girdileri doğrula, gösterge handle'larını oluştur, magic number'ı ayarla.
2. OnTick()
her kotasyonda
Yeni bir bar oluşmadıysa hemen geri dön, oluştuysa kuralları değerlendir.
3. OrderSend()
bir kural tetiklendiğinde
İşlem başına doldurulmuş tek bir MqlTradeRequest — açma, değiştirme veya kapatma.
4. OnDeinit()
bir kez, kaldırmada
Handle'ları serbest bırak. Açık pozisyonlar bununla kapanmaz — oldukları yerde kalır.

Bir EA'yı grafikten kaldırmak, onun açtığını kapatmaz. Pozisyonlar yerinde kalır ve artık onları yöneten hiçbir şey yoktur.

Hesaplama if (iTime(_Symbol, PERIOD_CURRENT, 0) == lastBarTime) return;

Sonuç İki karar arasındaki binlerce tiki yok sayan, bar kapanışıyla çalışan bir EA

Nasıl kullanılır

Kendi yazmadığınız bir EA'yı değerlendirmek bir kanıt meselesidir: derlenmiş dosya size hiçbir şey söylemez. Aşağıda neyin isteneceği var.

  • Backtestin hangi veriyi kullandığını ve nasıl modellendiğini sorun. Gerçek tikler ve bir modelleme kalitesi rakamı bir anlam taşır; etiketsiz bir özsermaye eğrisi taşımaz.
  • İşlem sayısını ve dönemi sorun. Burada yayımlanan medyan EA, birkaç yıl boyunca 362 işlem kapattı; dört ayda kırk işlem bir anekdottur.
  • Stratejinin zararda olan pozisyonları açık tutup tutmadığını kontrol edin. Zarara ekleme ve grid toparlaması, toparlanmayan sepete kadar çok güzel eğriler üretir ve kapanmış işlemlerden hesaplanan hiçbir oran sizi uyarmaz.
  • Para yatırmadan önce kendi aracı kurumunuzda demo'da çalıştırın. Uygulama modeli, spread, kontrat büyüklüğü ve sembol adlandırması birbirinden farklıdır ve hepsi sonuçları değiştirir.
  • Her örneğe kendi magic number'ını verin ve ikiden fazlası çalışmadan önce hangisinin hangisi olduğunu kaydedin.

Burada listelenen her EA test dönemini, veri kaynağını, modelleme kalitesini ve tam işlem defterini yayımlar; böylece bu kanıtlar istenmek yerine denetlenebilir.

Sık yapılan hatalar

Bir EA'ya muhakemesi olan bir yatırımcı muamelesi yapmak

O, platformun her tikte çağırdığı bir kurallar bütünüdür. Piyasanın değiştiğini, on dakika sonra bir merkez bankasının konuşacağını ya da kendi sonuçlarının bozulduğunu fark edemez — biri tam olarak bunun için bir kural yazmadıkça.

Bir backtest sonucunun kendi hesabınıza taşınacağını varsaymak

Spread, komisyon, uygulama modeli, kontrat büyüklüğü ve sembol kümesi sonucun parçasıdır. Bir aracı kurumdaki test, o aracı kurum hakkında bir kanıttır; kendi hesabınızda bir demo çalıştırması ise bunun ne kadarının taşındığını görmenin en ucuz yoludur.

Durdurmak için EA'yı kaldırmak ve işlemlerin de durduğunu sanmak

Bir EA'yı ayırmak, açık pozisyonlarını oldukları yerde bırakır. Sonrasında onları takip eden ya da kapatan hiçbir şey yoktur; bir stop'a, hedefe veya stop out'a değene kadar öylece kalırlar.

Birden fazla EA'yı tek hesapta ayırmadan çalıştırmak

Farklı magic number'lar olmadan her EA, her pozisyonu yönetmesi gereken kendi pozisyonu sayar ve birbirlerinin işlemlerini kapatırlar. Arıza sessizdir — hata yok, yalnızca tek bir stratejiye uymayan sonuçlar.

Ayrıntılı olarak

Gerçek bir EA kaydı nasıl görünür

Tanım mekanizmayı anlatır; kayıt ise deneyimi anlatır. Burada yayımlanan on dört EA, kapanmış işlemlerinin tam listesini yayımlar — 2019’dan bu yana 9.702 işlem.

Yayımlanan 14 EA genelindeDeğer
Kapanmış işlem9.702
EA başına işlem (medyan)362, 108 ile 4.725 arasında
Kâr faktörü (medyan)1,39, 1,27 ile 1,52 arasında
En kötü kayıp serisi (medyan)6 işlem, en kötüsü 14
Yeni özsermaye zirvesi olmadan geçen en uzun dönem (medyan)423 gün, en kötüsü 775
Doğrulanmış canlı çalıştırma0

Expert advisor’lar kârlı mı bu kaydı EA EA inceler, EA ile manuel işlem ise aynı işlemleri bir insanın gerçekten uygulayacağı durdurma kurallarıyla yeniden oynatır.

Sıkça sorulan sorular

MetaTrader 5'te Expert Advisor nedir?
MQL5 ile yazılmış ve .ex5 dosyasına derlenmiş, terminalin içinde çalışan ve kendi kurallarına göre işlem yapan bir programdır. Platform, ekli olduğu grafiğe gelen her kotasyonda onu çağırır ve klavye başında kimse olmadan emir açar, değiştirir ve kapatır.
Bir EA'nın çalışması için bilgisayarımı açık bırakmalı mıyım?
Evet — EA terminalin içinde çalışır, dolayısıyla yalnızca terminal çalışırken ve bağlıyken işlem yapar. Gözetimsiz EA'ların uykuya geçen ya da yeniden başlayan bir bilgisayar yerine genellikle bir VPS'te yaşamasının nedeni budur.
Satın aldığım bir EA'nın içindeki stratejiyi okuyabilir miyim?
.ex5 dosyasından okuyamazsınız. Derlenmiş EA'lar mantıklarını açığa çıkarmadan çalışır; satıcıların onları böyle göndermesinin nedeni tam olarak budur. Stratejinin ilanda dürüstçe anlatılması ve yayımlanmış test kanıtlarıyla desteklenmesi gerekir.
Aynı hesapta birden fazla EA çalıştırabilir miyim?
Evet ve bu yaygındır. Her örneğin, yalnızca kendi açtığı pozisyonları yönetmesi için kendi magic number'ına ihtiyacı vardır; hesabın da hepsi için aynı anda serbest teminata ihtiyacı vardır — stratejiler birbirlerinden habersizdir.