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ı - Fiyatın Moving Average Göstergesini Çaprazlamasına Dayalı Ticaret Sinyalleri - MetaTrader 5 için Uzman Danışman

Görüntülemeler:
230
Derecelendirme:
(33)
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 fiyatın Moving Average göstergesini çaprazlamasını temel alan strateji ele alınacak. Strateji "Signals based on price crossover with MA" olarak adlandırılır (MQL5 Sihirbazında bu stratejiye dayalı olan Uzman Danışman otomatik olarak oluşturulurken).

Ticaret sinyalleri:

  • Alış: fiyatın Moving Average'ı yukarı yönlü çaprazlaması.
  • Satış: fiyatın Moving Average'ı aşağı yönlü çaprazlaması.
  • Ek olarak, MA'nın artmasının/azalmasının kontrolü de yanlış sinyalleri filtrelemek için kullanılır.

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

Şekil 1. Fiyatın Moving Average göstergesini çaprazlamasına dayalı ticaret sinyalleri

Şekil 1. Fiyatın Moving Average göstergesini çaprazlamasına dayalı ticaret sinyalleri

Ticaret Sinyalleri

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

double  MA(int ind)          // çubuğun hareketli ortalamasının değerini geri döndürür
double  Open(int ind)        // çubuğun açılış fiyatını geri döndürür
double  Close(int ind)       // çubuğun kapanış fiyatını geri döndürür
double  StateMA(int ind)     // hareketli ortalama artıyorsa pozitif, azalıyorsa negatif değer geri döndürür
double  StateOpen(int ind)   // açılış fiyatı ile hareketli ortalama arasındaki farkı geri döndürür
double  StateClose(int ind)  // kapanış fiyatı ile hareketli ortalama arasındaki farkı geri döndürür
0. (tamamlanmamış) çubuğun fiyat ve 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

Alış pozisyonu açma koşulları (fiyatın MA'yı çaprazlaması ve MA artışının kontrolü):

  • Open(1)<MA(1): açılış fiyatı hareketli ortalamadan daha düşük;
  • Close(1)>MA(1): kapanış fiyatı hareketli ortalamadan daha yüksek;
  • MA(1)>MA(2): hareketli ortalamanın artışını kontrol et (yanlış sinyalleri filtrelemek için).
//+------------------------------------------------------------------+
//| Alış pozisyonu açma koşullarını kontrol et                       |
//+------------------------------------------------------------------+
bool CSignalMA::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//--- fiyat MA'yı yukarı doğru çaprazladı ve MA artıyor
   return(StateOpen(1)<0 && StateClose(1)>0 && StateMA(1)>0);
  }

2. Alış pozisyonunu kapatma

Alış pozisyonunu kapatma koşulları (fiyatın MA'yı çaprazlaması ve MA düşüşünün kontrolü):

  • Open(1)>MA(1): açılış fiyatı hareketli ortalamadan daha yüksek;
  • Close(1)<MA(1): kapanış fiyatı hareketli ortalamadan daha düşük;
  • MA(1)<MA(2): hareketli ortalamanın düşüşünü kontrol et (yanlış sinyalleri filtrelemek için).
//+------------------------------------------------------------------+
//| Alış pozisyonunu kapatma koşullarını kontrol et                  |
//+------------------------------------------------------------------+
bool CSignalMA::CheckCloseLong(double& price)
  {
   price=0.0;
//--- fiyat MA'yı aşağı doğru çaprazladı ve MA düşüyor
  return(StateOpen(1)>0 && StateClose(1)<0 && StateMA(1)<0);
  }


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 CSignalMA::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//--- fiyat MA'yı aşağı doğru çaprazladı ve MA düşüyor 
   return(StateOpen(1)>0 && StateClose(1)<0 && StateMA(1)<0);
  }


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 CSignalMA::CheckCloseShort(double& price)
  {
   price=0.0;
//--- fiyat MA'yı yukarı doğru çaprazladı ve MA artıyor
   return(StateOpen(1)<0 && StateClose(1)>0 && StateMA(1)>0);
  }
//+------------------------------------------------------------------+

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 price crossover with MA" sinyal türünü seçin:

Şekil 2. MQL5 Sihirbazından "Signals based on price crossover with MA" sinyal türünü seçin

Şekil 2. MQL5 Sihirbazından "Signals based on price crossover with MA" 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, özel aralık: 1.1.2010-05.01.2011, MA_period=12, MA_Shift=0).

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).

Fiyatın Moving Average göstergesini çaprazlaması

Şekil 3. Fiyatın MA'yı çaprazlamasına dayalı Uzman Danışmanın geçmişe dönük test sonuçları

Ekler: CsignalMA sınıfına (MQL5 Standart Kütüphanesinde bulunur) sahip SignalMA.mqh dosyası, MQL5\Include\Expert\Signal klasöründe bulunur. crossoverma.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/248

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.

Ticks Ticks

Bir tik grafiği oluşturma örneği.

MQL5 Sihirbazı - Üç Hareketli Ortalama Göstergesine Dayalı Ticaret Sinyalleri MQL5 Sihirbazı - Üç Hareketli Ortalama Göstergesine Dayalı Ticaret Sinyalleri

Bu bölümde üç hareketli ortalamaya 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.