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ı - Alligator Göstergesinin Çizgilerinin Çaprazlamasına Dayalı Ticaret Sinyalleri - MetaTrader 5 için Uzman Danışman

Görüntülemeler:
191
Derecelendirme:
(33)
Yayınlandı:
2022.03.09 15:26
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 B.Williams tarafından "Trading Chaos" adlı kitabında sunulmuş olan Alligator teknik göstergesini temel alan strateji ele alınacak. Strateji "Signals based on the Alligator" olarak adlandırılır (MQL5 Sihirbazında bu stratejiye dayalı olan Uzman Danışman otomatik olarak oluşturulurken).

Alligator göstergesi, üç hareketli ortalamanın (Lips, Teeth ve Jaw çizgileri) ve bunlara dayalı osilatörlerin birleşimidir. Ticaret sinyalleri, çizgilerin sırasına göre belirlenen trende bağlı olarak, çizgilerin birbirini çaprazlamasıyla oluşur. Yükseliş trendi varlığında, sırasıyla en yüksekte Lips çizgisi (en düşük periyotlu), sonrasında Teeth çizgisi ve en düşük olarak Jaw çizgisi bulunur. Düşüş trendi varlığında da benzer ancak tam tersi durum söz konusudur: sırasıyla en düşükte Lips çizgisi (en düşük periyotlu), sonrasında Teeth çizgisi ve en yüksek olarak Jaw çizgisi bulunur.

Ticaret sinyalleri:

  • Alış pozisyonu açma: yükseliş trendi varlığında Alligator çizgileri çaprazladığında ve çizgilerin aralarındaki mesafe arttığında;
  • Alış pozisyonunu kapatma: Lips çizgisinin Jaw çizgisini yukarı doğru çaprazlaması;
  • Satış pozisyonu açma: düşüş trendi varlığında Alligator çizgileri çaprazladığında ve çizgilerin aralarındaki mesafe arttığında;
  • Satış pozisyonunu kapatma: Lips çizgisinin Jaw çizgisini aşağı doğru çaprazlaması;

Bu strateji CSignalAlligator sınıfında yer alır.

Şekil 1. Alligator teknik göstergesine dayalı ticaret sinyalleri

Şekil 1. Alligator teknik göstergesine dayalı ticaret sinyalleri


Ticaret Sinyalleri

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

double   Jaw(int ind)              // çubuğun Jaw çizgisinin değerini geri döndürür
double   Teeth(int ind)            // çubuğun Teeth çizgisinin değerini geri döndürür
double   Lips(int ind)             // çubuğun Lips çizgisinin değerini geri döndürür
double   LipsTeethDiff(int ind)    // Lips ve Teeth çizgileri arasındaki farkı geri döndürür
double   TeethJawDiff(int ind)     // Teeth ve Jaw çizgileri arasındaki farkı geri döndürür
double   LipsJawDiff(int ind)      // Lips ve Jaw çizgileri arasındaki farkı geri döndürür
bool     CheckCross();             // Alligator çizgilerinin çaprazlamasını kontrol eder


1. Alış pozisyonu açma

Ticaret koşullarının kontrolü, Lips, Teeth ve Jaw çizgilerinin kaymaya sahip olmasından bazı özelliklere sahiptir.

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

  • Çizgilerin çaprazlamasını ve çizgiler arasındaki farkın artışını belirlemek için CheckCross kullanılır;
  • LipsTeethDiff(-2)>=LipsTeethDiff(-1) ve LipsTeethDiff(-1)>=LipsTeethDiff(0); Lips ve Teeth çizgileri arasındaki farkın artışının kontrol edilmesi;
  • LipsTeethDiff(0)>=0.0;  Lips çizgisi Teeth çizgisinden daha yüksektedir;
  • TeethJawDiff(-2)>=TeethJawDiff(-1)  ve TeethJawDiff(-1)>=TeethJawDiff(0) ; Teeth ve Jaw çizgileri arasındaki farkın artışının kontrol edilmesi;
  • TeethJawDiff(0)>=0.0; Teeth çizgisi Jaw çizgisinden daha yüksektedir.
//+------------------------------------------------------------------+
//| Alış pozisyonu açma koşullarını kontrol et                       |
//+------------------------------------------------------------------+
bool CSignalAlligator::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   if(CheckCross()) return(false);
//---
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//---
   if(LipsTeethDiff(-2)>=LipsTeethDiff(-1) && LipsTeethDiff(-1)>=LipsTeethDiff(0) && LipsTeethDiff(0)>=0.0 &&
      TeethJawDiff(-2) >=TeethJawDiff(-1)  && TeethJawDiff(-1) >=TeethJawDiff(0)  && TeethJawDiff(0) >=0.0)
      m_crossed=true;
//---
   return(m_crossed);
  }


2. Alış pozisyonunu kapatma

Alış pozisyonunu kapatma koşulları:

  • LipsTeethDiff(-1)<0; bir sonraki çubuğun Lips çizgisi (kayma nedeniyle) Teeth çizgisinden daha düşüktedir;
  • LipsTeethDiff(0)>=0; mevcut çubuğun Lips çizgisi Teeth çizgisinden daha yüksektedir/eşit seviyededir;
  • LipsTeethDiff(1)>0; bir önceki (tamamlanmış) çubuğun Lips çizgisi Teeth çizgisinden daha yüksektedir.
//+------------------------------------------------------------------+
//| Alış pozisyonunu kapatma koşullarını kontrol et                  |
//+------------------------------------------------------------------+
bool CSignalAlligator::CheckCloseLong(double& price)
  {
   price=0.0;
//---
   return(LipsTeethDiff(-1)<0 && LipsTeethDiff(0)>=0 && LipsTeethDiff(1)>0);
  }


3. Satış pozisyonu açma

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

  • Çizgilerin çaprazlamasını ve çizgiler arasındaki farkın artışını belirlemek için CheckCross kullanılır;
  • LipsTeethDiff(-2)<=LipsTeethDiff(-1) and LipsTeethDiff(-1)<=LipsTeethDiff(0); Lips ve Teeth çizgileri arasındaki farkın artışının kontrol edilmesi;
  • LipsTeethDiff(0)<=0.0; mevcut çubuğun Lips çizgisi Teeth çizgisinden daha düşüktedir;
  • TeethJawDiff(-2)<=TeethJawDiff(-1) and TeethJawDiff(-1)<=TeethJawDiff(0); Teeth ve Jaw çizgileri arasındaki farkın artışının kontrol edilmesi;
  • TeethJawDiff(0) <=0.0; mevcut çubuğun Teeth çizgisi Jaw çizgisinden daha düşüktedir;
//+------------------------------------------------------------------+
//| Satış pozisyonu açma koşullarını kontrol et                      |
//+------------------------------------------------------------------+
bool CSignalAlligator::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   if(CheckCross()) return(false);
//---
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//---
   if(LipsTeethDiff(-2)<=LipsTeethDiff(-1) && LipsTeethDiff(-1)<=LipsTeethDiff(0) && LipsTeethDiff(0)<=0.0 &&
      TeethJawDiff(-2) <=TeethJawDiff(-1)  && TeethJawDiff(-1) <=TeethJawDiff(0)  && TeethJawDiff(0) <=0.0)
      m_crossed=true;
//---
   return(m_crossed);
  }


4. Satış pozisyonunu kapatma

Satış pozisyonunu kapatma koşulları:

  • LipsTeethDiff(-1)>0; bir sonraki çubuğun Lips çizgisi (kayma nedeniyle) Teeth çizgisinden daha yüksektedir;
  • LipsTeethDiff(0)<=0; mevcut çubuğun Lips çizgisi Teeth çizgisinden daha düşüktedir/eşit seviyededir;
  • LipsTeethDiff(1)<0; bir önceki (tamamlanmış) çubuğun Lips çizgisi Teeth çizgisinden daha düşüktedir.
//+------------------------------------------------------------------+
//| Satış pozisyonunu kapatma koşullarını kontrol et                 |
//+------------------------------------------------------------------+
bool CSignalAlligator::CheckCloseShort(double& price)
  {
   price=0.0;
//---
   return(LipsTeethDiff(-1)>0 && LipsTeethDiff(0)<=0 && LipsTeethDiff(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 the Alligator" sinyal türünü seçin:

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

Şekil 2. MQL5 Sihirbazından "Signals based on the Alligator" 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, JawPeriod=13, JawShift=8, TeethPeriod=8, TeethShift=5, LipsPeriod=5, LipsShift=3, MaMethod=2, Applied=5, CrossMeasure=5).

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. Alligator teknik göstergesine dayalı Uzman Danışmanın geçmişe dönük test sonuçları

Şekil 3. Alligator teknik göstergesine dayalı Uzman Danışmanın geçmişe dönük test sonuçları


Bir Uzman Danışmanın işlem sonuçları, ticaret sisteminin piyasanın zamansal özelliklerini dikkate almasıyla ​​önemli ölçüde iyileştirilebilir. CsignalITF sınıfı, ticaret sistemine zaman filtresi eklemeye olanak sağlar. Ticaret için en başarılı zamanlar, MetaTrader 5 terminalinin Strateji Sınayıcısı kullanılarak bulunabilir. "MQL5 Sihirbazı - Zaman Filtresiyle İki EMA Göstergesinin Çaprazlamasına Dayalı Ticaret Sinyalleri" bölümündeki örneğe bakın.


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

expert_alligator.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/267

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ı - MACD Göstergesinin Ana ve Sinyal Çizgilerinin Çaprazlamasına Dayalı Ticaret Sinyalleri MQL5 Sihirbazı - MACD Göstergesinin Ana ve Sinyal Çizgilerinin Çaprazlamasına Dayalı Ticaret Sinyalleri

Bu bölümde MACD göstergesinin ana ve sinyal çizgilerinin çaprazlamasına dayalı ticaret sinyalleri (MQL5 Standart Kütüphanesinden CSignalMACD) açıklanmaktadır. Bu stratejiye dayalı olan Uzman Danışman kodu, MQL5 Sihirbazı kullanılarak otomatik olarak oluşturulabilir.

MQL5 Sihirbazı - Terse Dönüş Mum Modellerine Dayalı Ticaret Sinyalleri MQL5 Sihirbazı - Terse Dönüş Mum Modellerine Dayalı Ticaret Sinyalleri

Bu bölümde terse dönüş mum modellerine dayalı ticaret sinyalleri açıklanmaktadır. Bu stratejiye dayalı olan Uzman Danışman kodu, MQL5 Sihirbazı kullanılarak otomatik olarak oluşturulabilir.

MQL5 Sihirbazı - CCI Göstergesiyle Onaylı Olarak 3 Kara Karga / 3 Beyaz Asker Mum Modellerine Dayalı Ticaret Sinyalleri MQL5 Sihirbazı - CCI Göstergesiyle Onaylı Olarak 3 Kara Karga / 3 Beyaz Asker Mum Modellerine Dayalı Ticaret Sinyalleri

Bu bölümde Commodity Channel Index (CCI) göstergesiyle onaylı olarak 3 kara karga / 3 beyaz asker mum modellerine dayalı ticaret sinyalleri açıklanmaktadır. Bu stratejiye dayalı olan Uzman Danışman kodu, MQL5 Sihirbazı kullanılarak otomatik olarak oluşturulabilir.