MetaTrade 5'te işlem robotu nasıl yazılır?
MetaTrader 5'te MQL5 dilini kullanarak alım satım robotları yazma, test etme ve dağıtma konusunda kapsamlı ve pratik bir rehber.

MetaTrade 5'te işlem robotu nasıl yazılır?

Bu makalede, MQL5 dilini kullanarak MetaTrader 5'te Uzman Danışmanlar (EA'lar) yazmayı, test etmeyi ve dağıtmayı öğreteceğiz. Ayrıca güvenlik ve performansla ilgili pratik ipuçlarına da değineceğiz.
0 Hisse senetleri
0
0
0
0

 

MetaTrader 5'te bir işlem robotu yazmayı ve yüksek istikrarla çalıştırmayı biliyor musunuz?

Bu adım adım kılavuz, ortamı tanımanıza yardımcı olacaktır. MetaTrader 5 ve programlama dili MQL5 Bu kitap, bir Uzman Danışman (EA) yazmayı, test etmeyi ve dağıtmayı kapsar. Ayrıca, robotunuzun gerçek dünya ortamında istikrarlı ve düşük gecikmeyle çalışmasını sağlamak için VPS/bulut sunucusunda 7/24 çalıştırma, en düşük ping değerine sahip bir konum seçme, güvenlik ve izleme konularında pratik ipuçları içerir.

 

MetaTrader 5 ve MQL5'e Teknik Giriş

MetaTrader 5 (MT5) Bu, gelişmiş bir platformdur. MQL5 Uzman Danışmanlar (EA'lar), göstergeler ve komut dosyaları yazmak için kullanılan bir programlama dilidir. Yapı MQL5 C++'a ve sınıfa benzer. CTrade Bu, emir göndermek ve işlemleri yönetmek için sağlanmıştır.

Önkoşullar: Kurulum MetaTrader 5/MetaEditorAracı kurumun veri akışına veya demo/gerçek hesaba erişim ve sunucu ortamında düşük ping ve yüksek çalışma süresine sahip bir VPS kullanılması önerilir.

 

MQL5'te EA'nın temel yapısı

Basit bir Evrimsel Algoritma (EA) aşağıdaki temel işlevleri içerir:

  • OnInit(): başlatma için
  • OnDeinit()Temizlik için
  • OnTick()Her fiyat artışında yürütülen bir fonksiyon.
#include <Trade\Trade.mqh>
CTrade trade;

int OnInit() {
  // initialization
  return INIT_SUCCEEDED;
}

void OnDeinit(const int reason) {
  // cleanup resources
}

void OnTick() {
  // trading logic
}

 

Siparişleri göndermek ve pozisyonları yönetmek

İçinde MQL5 Dersten CTrade Sipariş göndermek için kullanılır. Aşağıdaki örnek, basit bir piyasa alım işlemini ve olası bir hatayı göstermektedir.

double lot = 0.1;
if(trade.Buy(lot, _Symbol)) {
  Print("BUY executed");
} else {
  Print("Error Buy: ", GetLastError());
}

Pozisyonu kapatmak için, bileti alıp ilgili yöntemi kullanabilirsiniz. Pozisyon Kapat Kullanmak:

ulong ticket = PositionGetTicket(0);
if(trade.PositionClose(ticket)) {
  Print("Position closed");
}

 

Pratik örnek — Çapraz Hareketli Ortalama Robotu

Mantık: Hızlı hareketli ortalama, yavaş hareketli ortalamayı aşağıdan yukarıya doğru kestiğinde alım; tersi durumda ise satım işlemi yapılır. Bu temel örnek, risk yönetimi, stop loss/kar alma, takip eden stop loss ve piyasa zaman filtresi ile desteklenebilir.

input int FastPeriod = 10;
input int SlowPeriod = 50;
double FastMA, SlowMA;

int OnInit() {
  return INIT_SUCCEEDED;
}

void OnTick() {
  FastMA = iMA(_Symbol, PERIOD_M1, FastPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
  SlowMA = iMA(_Symbol, PERIOD_M1, SlowPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);

  double prevFast = iMA(_Symbol, PERIOD_M1, FastPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
  double prevSlow = iMA(_Symbol, PERIOD_M1, SlowPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);

  if(prevFast < prevSlow && FastMA > SlowMA) {
    trade.Buy(0.1, _Symbol);
  } else if(prevFast > prevSlow && FastMA < SlowMA) {
    trade.Sell(0.1, _Symbol);
  }
}

 

Bir sunucuya (VPS / Bulut) MetaTrader 5'i kurma ve çalıştırma

Botları 7/24 çalıştırmak için VPS veya bulut sunucusu kullanılması önerilir. İki yaygın yöntem:

  • Windows Sunucusu (MT5 için yaygın öneri)
  • Linux + Wine (Maliyetleri düşürmek için, ancak bazı sürümler uyumsuz olabilir)

 

Windows VPS — Önerilen Ayarlar

Windows Server için önerilen ipuçları:

  • Kurulum Windows Server 2019/2022
  • RDP'yi etkinleştirme ile Ağ Düzeyinde Kimlik Doğrulama
  • Kurulum MetaTrader 5 Ve MetaEditör
  • İstenmeyen yeniden başlatmaları önlemek için otomatik güncellemeleri manuel olarak yönetin.

 

Linux + Wine — Örnek Komutlar (Ubuntu)

MT5'i Linux üzerinde çalıştırmak istiyorsanız, aşağıdaki örnek komutlar size yardımcı olabilir. Bazı broker'lar veya eklentiler Wine altında sorun çıkarabilir; kapsamlı test yapılması önerilir.

sudo apt update && sudo apt install -y wine winetricks xvfb xrdp
# create a dedicated mt5 user
sudo useradd -m mt5user
sudo passwd mt5user
# run mt5 installer under the user with a virtual framebuffer
sudo -u mt5user xvfb-run wine mt5setup.exe

 

RDP güvenliği ve güvenli erişim

Sunucuya erişimi korumak için aşağıdakiler önerilir:

  • Varsayılan RDP bağlantı noktasını değiştirinNLA'yı etkinleştirin ve RDP bağlantısı için VPN veya SSH tüneli kullanın.
  • Güvenlik duvarı ve beyaz liste kullanarak erişimi kısıtlayın ve geçerli IP adreslerini belirtin.
  • Kurulum başarısız2ban Şiddete karşı korunmak için
sudo ufw allow from 203.0.113.0/24 to any port 3389 proto tcp
sudo ufw enable

 

Robotların test edilmesi, optimize edilmesi ve devreye alınması

Strateji Test Cihazı MT5, Geriye Dönük Test, Optimizasyon ve İleriye Dönük Test yeteneklerine sahiptir. Parametreleri optimize etmek ve yüksek kaliteli verilerden (tick verileri) yararlanmak için Genetik Algoritma kullanabilirsiniz.

  • Gerçek verilere dayalı anlık verileri kullanarak gerçeğe yakın sonuçlar elde edin.
  • Canlı hesaba geçirmeden önce en az birkaç hafta boyunca bir VPS ve demo hesap üzerinde test edin.

 

Risk değerlendirme yöntemleri

Risk ve sürdürülebilirliği ölçmek için kullanmanız gereken yöntemler:

  • İleriye dönük analizAşırı uyumun önüne geçmek için farklı aralıklarla test yapılıyor.
  • Monte Carloİşlem yürütmesindeki değişiklikleri simüle ederek istikrarı ölçmek.
  • Değerlendirilecek ölçütler: Bileşik Yıllık Büyüme Oranı (CAGR), Sharpe Oranı, Maksimum Düşüş, Karlılık Faktörü.

 

CI/CD ve otomatik dağıtım

Kurumsal mimari kod yönetimi ve otomatik dağıtım için GitLab veya GitHub'ı kullanabilir ve EX5 dosyasının derlenmesi ve aktarılması sürecini otomatikleştirmek üzere VPS'nizde bir Runner kurabilirsiniz.

EX5 dosyasını terminal klasörüne kopyalamak için örnek komut dosyası:

# copy the compiled EA to MetaTrader 5 Experts folder
cp MyEA.ex5 "/home/mt5user/.wine/drive_c/Program Files/MetaTrader 5/MQL5/Experts/"
# restart terminal or signal reload

Python servisi ile MT5 arasında iletişim kurmak ve yapay zeka/makine öğrenimi verilerini EA'ya iletmek için API'leri veya ZeroMQ'yu da kullanabilirsiniz.

 

Yatırımcılar için konum seçimi ve VPS yapılandırması

Yatırımcılar için ping/gecikme süresi ve ağ istikrarı kritik öneme sahiptir. Konum seçimi, aracı kurumun sunucularına veya hedef pazara yakınlığa göre yapılmalıdır.

 

Önemli konumların karşılaştırılması

  • Londra/Manchester/Frankfurt/AmsterdamAvrupa brokerleri ve Avrupa ECN pazarları için harika.
  • New York/WashingtonAmerikan brokerları için uygundur ve New York piyasasında hızlı işlem gerçekleştirme imkanı sunar.
  • Singapur/Tokyo/Hong KongAracı kurumlar ve Asya piyasaları için düşük ping süresi sağlar.
  • En iyi uygulamaBroker IP adresini veya AS'yi bulun ve en kısa BGP yoluna sahip veri merkezini seçin.

Şirketimizin birden fazla... 85 küresel lokasyon Broker sunucusuna en yakın veri merkezini seçme olanağı sunar.

 

Alım satım için önerilen VPS yapılandırması

  • İşlemci: Sabit bacaklı ve yüksek saat hızına sahip 2-4 çekirdek.
  • Veri deposu: 4-8 GB temel uygulamalar için; 8-16 GB yoğun uygulamalar için.
  • DepolamakHızlı G/Ç için NVMe SSD.
  • : 1 Gbps veya üzeri; sabit gecikme süresi ve BGP ile DDoS korumasına sahip portlar.
  • Özellikler: Anlık görüntüler, otomatik yedeklemeler, 7/24 izleme, DDoS saldırılarına karşı koruma sağlayan sunucu ve güvenilir SLA.

Yapay zekâ tabanlı stratejiler veya yoğun analizler için, makine öğrenimi modellerini çalıştırmak ve ardından MT5'e sinyaller göndermek üzere GPU'lu bir sunucuya ihtiyacınız olabilir.

 

Güvenlik, izleme ve pratik ipuçları

 

Sistem ve ağ koruması

  • Yerel güvenlik duvarını etkinleştirin (Windows Güvenlik Duvarı veya ufw/iptables).
  • RDP erişimi için VPN veya IP beyaz listesi kullanın.
  • Klasör için virüs koruma programı ve dosya bütünlüğü izleme yazılımı yükleyin. MQL5.

 

İzleme ve Uyarı

Bir izleme hizmeti kurmak (örneğin, Prometheus + GrafanaBu komut, MT5 terminalinin CPU, bellek, ağ ve genel sağlık durumunu kontrol etmek için önemlidir.

Bağlantı kaybı veya kritik bir hata durumunda e-posta/Slack/Telegram üzerinden uyarı gönderilmesi önerilir.

 

Kaymayı ve sekmeyi önleme

  • Ping süresi daha düşük ve broker'a yakın bir konumda bulunan bir VPS seçin.
  • Piyasa emirleri ve limit emirlerinin kullanımı ve ayarlanması Maksimum Kayma EA veya MetaTrader ayarlarında.
  • Bağlantı kesilmesi durumunda işlem kayıplarını önlemek için EA'da otomatik yeniden bağlantıyı etkinleştirin.

 

Özet ve teknik teklif

Bu kılavuz temel bilgileri kapsamaktadır. MQL5 VPS üzerinde test etme, optimizasyon ve dağıtım konuları ele alındı ve güvenlik ile doğru konum seçimine ilişkin pratik ipuçları paylaşıldı.

Eğer bir sunucuya ihtiyacınız varsa 85'ten fazla küresel lokasyonİster DDoS saldırılarına karşı koruma sağlayan sunucularınız, NVMe ve BGP ağlarınız olsun, ister yapay zeka stratejileriniz için GPU'lara ihtiyacınız olsun, destek ekibimiz broker'ınıza ve stratejinize göre en uygun yapılandırmayı önermek için 7/24 hizmetinizdedir.

 

Sıkça Sorulan Sorular

Ayrıca Şunları da Beğenebilirsiniz