Ticaret robotlarını ücretsiz olarak nasıl indirebileceğinizi izleyin
Bizi Telegram ü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ı - Üç Hareketli Ortalama Göstergesine Dayalı Ticaret Sinyalleri - MetaTrader 5 için Uzman Danışman

Görüntülemeler:
176
Derecelendirme:
(26)
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 kodunun otomatik olarak oluşturulmasına olanak sağlar. Ayrıntılar için MQL5 Sihirbazında Hazır Uzman Danışmanlar Oluşturma makalesine bakın.

Bu bölümde üç hareketli ortalamaya dayalı ticaret sinyalleri ele alınacak. Strateji "Signals based on three EMA" olarak adlandırılır. Trendi belirlemek adına üç EMA kullanılır: FastEMA, MediumEMA ve SlowEMA.

Ticaret sinyalleri:

  • Alış sinyali: FastEMA>MediumEMA>SlowEMA (yükseliş trendi).
  • Satış sinyali: FastEMA<MediumEMA<SlowEMA (düşüş trendi).

Bu strateji CSignal3EMA sınıfında yer alır (signal3ema.mqh dosyası, terminal_veri_klasörü\MQL5\Include\Expert\Signal klasörüne yerleştirilmelidir).

Şekil 1. Üç hareketli ortalamaya dayalı ticaret sinyalleri

Şekil 1. Üç hareketli ortalamaya dayalı ticaret sinyalleri

Ticaret Sinyalleri

Ticaret stratejisi CSignal3EMA sınıfında yer alır; üç hareketli ortalamanın (hızlı, orta, yavaş) değerlerine erişimi basitleştirmek için birkaç korumalı metoda sahiptir:

double  FastEMA(int ind)      // çubuğun FastEMA değerini geri döndürür
double  MediumEMA(int ind)    // çubuğun MediumEMA değerini geri döndürür
double  SlowEMA(int ind)      // çubuğun SlowEMA değerini geri döndürür
0. (tamamlanmamış) çubuğun gösterge değerleri değişebilir, bu nedenle ticaret koşullarının kontrolünün tamamlanmış çubuk verileri kullanılarak yapılması gerekir.

1. Alış pozisyonu açma

Yükseliş trendi şu koşulla belirlenir: FastEMA>MediumEMA>SlowEMA:

  • FastEMA(1)>MediumEMA(1): FastEMA, MediumEMA'dan daha yüksektir (son tamamlanmış çubukta);
  • MediumEMA(2)>SlowEMA(1): MediumEMA, SlowEMA'dan daha yüksektir (son tamamlanmış çubukta);
//+------------------------------------------------------------------+
//| Alış pozisyonu açma koşullarını kontrol et                       |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   double medium=MediumEMA(1);
//---
   price=0.0;
   sl   =m_symbol.Ask()-m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Ask()+m_take_profit*m_adjusted_point;
//--- yükseliş trendini kontrol et (son tamamlanmış çubukta): FastEMA(1)>MediumEMA(1)>SlowEMA(1)
    return(FastEMA(1)>medium && medium>SlowEMA(1));
  }


2. Alış pozisyonunu kapatma

Düşüş trendi şu koşulla belirlenir: FastEMA<MediumEMA<SlowEMA:

  • FastEMA(1)<MediumEMA(1): FastEMA, MediumEMA'dan daha düşüktür (son tamamlanmış çubukta);
  • MediumEMA(2)<SlowEMA(1): MediumEMA, SlowEMA'dan daha düşüktür (son tamamlanmış çubukta);
//+------------------------------------------------------------------+
//| Alış pozisyonunu kapatma koşullarını kontrol et                  |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckCloseLong(double& price)
  {
   double medium=MediumEMA(1);
//---
   price=0.0;
//--- düşüş trendini kontrol et (son tamamlanmış çubukta): FastEMA(1)<MediumEMA(1)<SlowEMA(1)
   return(FastEMA(1)<medium && medium<SlowEMA(1));
  }
Alış pozisyonunun kapanışını iyileştirebilirsiniz: düşüş trendini beklemek yerine, yatay hareket geliştiğinde alış pozisyonlarını kapatabilirsiniz, bu, şu koşulla belirlenir: FastEMA<MediumEMA>SlowEMA.


3. Satış pozisyonu açma

//+------------------------------------------------------------------+
//| Satış pozisyonu açma koşullarını kontrol et                      |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   double medium=MediumEMA(1);
//---
   price=0.0;
   sl   =m_symbol.Bid()+m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Bid()-m_take_profit*m_adjusted_point;
//--- düşüş trendini kontrol et (son tamamlanmış çubukta): FastEMA(1)<MediumEMA(1)<SlowEMA(1)
   return(FastEMA(1)<medium && medium<SlowEMA(1));

  }

4. Satış pozisyonunu kapatma

//+------------------------------------------------------------------+
//| Satış pozisyonunu kapatma koşullarını kontrol et                 |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckCloseShort(double& price)
  {
   double medium=MediumEMA(1);
//---
   price=0.0;
//--- yükseliş trendini kontrol et (son tamamlanmış çubukta): FastEMA(1)>MediumEMA(1)>SlowEMA(1)
   return(FastEMA(1)>medium && medium>SlowEMA(1));
  }

Satış pozisyonunun kapanışını iyileştirebilirsiniz: yükseliş trendini beklemek yerine, yatay hareket geliştiğinde satış pozisyonlarını kapatabilirsiniz, bu, şu koşulla belirlenir: FastEMA>MediumEMA<SlowEMA.


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 three EMA" sinyal türünü seçin:

Şekil 2. MQL5 Sihirbazından "Signals based on three EMA" sinyal türünü seçin

Şekil 2. MQL5 Sihirbazından "Signals based on three EMA" 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,  FastPeriod=5, MediumPeriod=12, SlowPeriod=24, StopLoss=400, TakeProfit=900).

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. Üç EMA'ya dayalı Uzman Danışmanın geçmişe dönük test sonuçları

Şekil 3. Üç EMA'ya dayalı Uzman Danışmanın geçmişe dönük test sonuçları

Ekler: Csignal3EMA sınıfına sahip Signal3EMA.mqh dosyası, terminal_veri_klasörü\MQL5\Include\Expert\Signal klasörüne yerleştirilmelidir.

threeema.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/250

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

Bu bölümde fiyatın Moving Average göstergesini çaprazlamasına dayalı ticaret sinyalleri (MQL5 Standart Kütüphanesinden CsignalMA) açıklanmaktadır. Bu stratejiye dayalı olan Uzman Danışman kodu, MQL5 Sihirbazı kullanılarak otomatik olarak oluşturulabilir.

Bir Uzman Danışman şablonu Bir Uzman Danışman şablonu

Bu kod, Valery Mazurenko (notused) tarafından ATC-2010 için yazılmış bir Uzman Danışman şablonudur.

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ı - İ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.