Fan sayfamıza katılın
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
MQL5 Sihirbazı - Üç Hareketli Ortalama Göstergesine Dayalı Ticaret Sinyalleri - MetaTrader 5 için Uzman Danışman
- Görüntülemeler:
- 176
- Derecelendirme:
- 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
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
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)); }
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
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ı
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
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 şablonuBu kod, Valery Mazurenko (notused) tarafından ATC-2010 için yazılmış bir Uzman Danışman şablonudur.
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 SinyalleriBu 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.