Ticaret robotlarını ücretsiz olarak nasıl indirebileceğinizi izleyin
Bizi Twitter üzerinde bulun!
Fan sayfamıza katılın
Komut dosyasını ilginç mi buldunuz?
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
Komut dosyasını beğendiniz mi? MetaTrader 5 terminalinde deneyin
Uzman Danışmanlar

MQL5 Sihirbazı - MACD Göstergesinin Ana ve Sinyal Çizgilerinin Çaprazlamasına Dayalı Ticaret Sinyalleri - MetaTrader 5 için Uzman Danışman

Görüntülemeler:
211
Derecelendirme:
(34)
Yayınlandı:
2022.03.09 15:25
Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git

MQL5 Sihirbazı, Uzman Danışmanların otomatik olarak oluşturulmasına olanak sağlar (bkz. MQL5 Sihirbazı: Programlama Olmadan Uzman Danışmanlar Oluşturma).

Bu bölümde MACD göstergesinin ana ve sinyal çizgilerinin çaprazlamasını temel alan strateji ele alınacak. Strateji "Signals based on crossover of main and signal MACD lines" olarak adlandırılır (MQL5 Sihirbazında bu stratejiye dayalı olan Uzman Danışman otomatik olarak oluşturulurken).

MACD göstergesinin ana çizgisi, FastEMA ve SlowEMA'nın farkı şeklinde hesaplanır. MACD'nin sinyal çizgisi de, ana çizginin PeriodSignal periyoduyla yumuşatılmasıyla elde edilir.

Ticaret sinyalleri:

  • Alış: MACD göstergesinin ana çizgisi, sinyal çizgisini yukarıya doğru çaprazladığında.
  • Satış: MACD göstergesinin ana çizgisi, sinyal çizgisini aşağı doğru çaprazladığında.

Bu strateji, MQL5 Standart Kütüphanesinin Ticaret Stratejisi sınıflarının CSignalMACD sınıfında yer alır (MQL5\Include\Expert\Signal\SignalMACD.mqh yolunda bulunur).

Şekil 1. MACD göstergesinin ana ve sinyal çizgilerinin çaprazlamasına dayalı ticaret sinyalleri

Şekil 1. MACD göstergesinin ana ve sinyal çizgilerinin çaprazlamasına dayalı ticaret sinyalleri


Ticaret Sinyalleri

Ticaret stratejisi CSignalMACD sınıfında yer alır; fiyat ve gösterge değerlerine erişimi basitleştirmek için birkaç korumalı metoda sahiptir:

double  MainMACD(int ind)      // çubuğun MACD ana çizgisinin değerini geri döndürür
double  SignalMACD(int ind)    // çubuğun MACD sinyal çizgisinin değerini geri döndürür
double  StateMACD(int ind)     // MACD ana ve sinyal çizgileri arasındaki farkı geri döndürür
int     ExtStateMACD(int ind); // MACD ana ve sinyal çizgileri arasındaki işaret değişimi sayısını geri döndürür


1. Alış pozisyonu açma

Alış pozisyonu açma koşulları:

  • ExtStateMACD(1)==1; MACD'nin ana çizgisinin sinyal çizgisini yukarı doğru çaprazladığı anlamına gelir
//+------------------------------------------------------------------+
//| Alış pozisyonu açma koşullarını kontrol et                       |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =m_symbol.Ask()-m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Ask()+m_take_profit*m_adjusted_point;
//---
   return(ExtStateMACD(1)==1);
  }


2. Alış pozisyonunu kapatma

Alış pozisyonunu kapatma koşulları:

  • ExtStateMACD(1)==1; MACD'nin ana çizgisinin sinyal çizgisini aşağı doğru çaprazladığı anlamına gelir
//+------------------------------------------------------------------+
//| Alış pozisyonunu kapatma koşullarını kontrol et                  |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckCloseLong(double& price)
  {
   price=0.0;
//---
   return(ExtStateMACD(1)==-1);
  }


3. Satış pozisyonu açma

Satış pozisyonu açma koşulları, alış pozisyonunu kapatma koşulları ile aynıdır.

//+------------------------------------------------------------------+
//| Satış pozisyonu açma koşullarını kontrol et                      |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =m_symbol.Bid()+m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Bid()-m_take_profit*m_adjusted_point;
//---
   return(ExtStateMACD(1)==-1);
  }


4. Satış pozisyonunu kapatma

Satış pozisyonunu kapatma koşulları, alış pozisyonu açma koşulları ile aynıdır.

//+------------------------------------------------------------------+
//| Satış pozisyonunu kapatma koşullarını kontrol et                 |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckCloseShort(double& price)
  {
   price=0.0;
//---
   return(ExtStateMACD(1)==1);
  }

MQL5 Sihirbazını kullanarak Uzman Danışman oluşturma

MQL5 Sihirbazını kullanarak bu stratejiye dayalı bir ticaret robotu oluşturmak için ikinci adımda "Signals based on crossover of main and signal MACD lines" sinyal türünü seçin:

Şekil 2. MQL5 Sihirbazından "Signals based on crossover of main and signal MACD lines" sinyal türünü seçin

Şekil 2. MQL5 Sihirbazından "Signals based on crossover of main and signal MACD lines" sinyal türünü seçin

Ardından, gerekli takip eden durdurucu algoritmasını ve para ve risk yönetimi sistemini belirlemelisiniz. Uzman Danışman kodu otomatik olarak oluşturulacaktır, oluşturulan kodu derleyebilir ve MetaTrader 5 müşteri terminalinin Strateji Sınayıcısında test edebilirsiniz.


Test Sonuçları

Uzman Danışmanın geçmiş verileri üzerinde geriye dönük testini ele alalım (EURUSD H1, test aralığı: 1.1.2010-05.01.2011, PeriodFast=12, PeriodSlow=24, PeriodSignal=9, StopLoss=20, TakeProfit=80).

Uzman Danışman oluşturulurken 0.1 lotluk sabit işlem hacmi kullanıldı (Trading Fixed Lot), Takip Eden Durdurucu algoritması kullanılmadı (Trailing not used).

Şekil 3. MACD göstergesinin ana ve sinyal çizgilerinin çaprazlamasına dayalı Uzman Danışmanın geçmişe dönük test sonuçları

Şekil 3. MACD göstergesinin ana ve sinyal çizgilerinin çaprazlamasına dayalı Uzman Danışmanın geçmişe dönük test sonuçları


Ekler: CSignalMACD sınıfına (MQL5 Standart Kütüphanesinde bulunur) sahip SignalMACD.mqh dosyası, MQL5\Include\Expert\Signal klasöründe bulunur. testmacd.mq5 dosyası, MQL5 Sihirbazı kullanılarak oluşturulan Uzman Danışman kodunu içerir.

MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal kod: https://www.mql5.com/ru/code/262

MQL5 Sihirbazı - İki EMA Göstergesinin Çaprazlamasına Dayalı Ticaret Sinyalleri MQL5 Sihirbazı - İki EMA Göstergesinin Çaprazlamasına Dayalı Ticaret Sinyalleri

Bu bölümde iki EMA göstergesinin çaprazlamasına dayalı ticaret sinyalleri açıklanmaktadır. Bu stratejiye dayalı olan Uzman Danışman kodu, MQL5 Sihirbazı kullanılarak otomatik olarak oluşturulabilir.

MQL5 Sihirbazı - ADX Göstergesiyle Onaylı Olarak Fiyatın Moving Average Göstergesini Çaprazlamasına Dayalı Ticaret Sinyalleri MQL5 Sihirbazı - ADX Göstergesiyle Onaylı Olarak Fiyatın Moving Average Göstergesini Çaprazlamasına Dayalı Ticaret Sinyalleri

Bu bölümde ADX göstergesiyle onaylı olarak fiyatın Moving Average göstergesini çaprazlamasına dayalı ticaret sinyalleri açıklanmaktadır. Bu stratejiye dayalı olan Uzman Danışman kodu, MQL5 Sihirbazı kullanılarak otomatik olarak oluşturulabilir.

MQL5 Sihirbazı - Zaman Filtresiyle İki EMA Göstergesinin Çaprazlamasına Dayalı Ticaret Sinyalleri MQL5 Sihirbazı - Zaman Filtresiyle İki EMA Göstergesinin Çaprazlamasına Dayalı Ticaret Sinyalleri

Bu bölümde zaman filtresiyle iki EMA göstergesinin çaprazlamasına dayalı ticaret sinyalleri açıklanmaktadır. Bu stratejiye dayalı olan Uzman Danışman kodu, MQL5 Sihirbazı kullanılarak otomatik olarak oluşturulabilir.

MQL5 Sihirbazı - Alligator Göstergesinin Çizgilerinin Çaprazlamasına Dayalı Ticaret Sinyalleri MQL5 Sihirbazı - Alligator Göstergesinin Çizgilerinin Çaprazlamasına Dayalı Ticaret Sinyalleri

Bu bölümde Alligator teknik göstergesinin çizgilerinin çaprazlamasına dayalı ticaret sinyalleri açıklanmaktadır. Bu stratejiye dayalı olan Uzman Danışman kodu, MQL5 Sihirbazı kullanılarak otomatik olarak oluşturulabilir.