Ticaret robotlarını ücretsiz olarak nasıl indirebileceğinizi izleyin
Bizi Facebook ü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ı - Terse Dönüş Mum Modellerine Dayalı Ticaret Sinyalleri - MetaTrader 5 için Uzman Danışman

Görüntülemeler:
281
Derecelendirme:
(45)
Yayınlandı:
2022.03.09 15:26
\MQL5\Include\Expert\Signal\
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).

CsignalCandles sınıfı, terse dönüş mum modellerine dayalı ticaret sinyallerini sağlar. Strateji "Signals based on reversal candlestick patterns" olarak adlandırılır (MQL5 Sihirbazında bu stratejiye dayalı olan Uzman Danışman otomatik olarak oluşturulurken).

Bu ticaret sisteminin fikri, belirtilen özelliklere (puan cinsinden mum boyutu, gölge yapısı) sahip terse dönüş mum modellerinin oluşum anını belirlemektir. Terse dönüş modelleri, Japon mum analizindeki çekiç ve asılı adam modellerine benzerdir. Ancak bu sistemde tek mum yerine birkaç mumun birleşmesiyle ortaya çıkan bileşik mum değerlendirilir, dolayısıyla değerlendirilen mumun gövdesinin küçük olması gerekmez.

Girdi parametreleri:

  • Range - bileşik mumun oluşumunda kullanılacak maksimum mum sayısı.
  • Minimum - bileşik mumun minimum boyutu (puan olarak)
  • ShadowBig ve ShadowSmall - gölgeler (bileşik mum boyutunun kesirleri olarak).
  • Limit, StopLoss ve TakeProfit - açılış fiyatı, SL ve TP seviyeleri; bu değerler bileşik mumun kapanış fiyatına göre belirlenir (bileşik mum boyutunun kesirleri olarak).
  • Expiration - bekleyen emirlerin ömrü (çubuk cinsinden) (Limit!=0.0).

Terse dönüş mum modelleri aşağıdaki gibi tanımlanır.

Sırayla en son tamamlanmış mumdan (indeksi 1) başlayarak, Range girdi parametresi tarafından belirtilen mum sayısına kadar, mumlar birleştirilerek bileşik mum oluşturulur ve boyutu kontrol edilir. Bileşik mumun boyutu Minimum girdi parametresinde belirtilen değerden daha büyükse, gölgeleri analiz edilerek bileşik mumun terse dönüş koşulları kontrol edilir.

Ayıların gücü, mumun üst gölgesinin boyutuyla, boğaların gücü ise mumun alt gölgesinin boyutuyla karakterize edilir.

  • Düşüş trendinin tersine döndüğünü (ve yükselişin başladığını) doğrulamak için şunlar gereklidir: alt gölgenin boyutu (boğaların gücü) ShadowBig girdi parametresinde belirtilen değerden daha büyük olmalıdır. Üst gölgenin boyutu (ayıların gücü), ShadowSmall girdi parametresinde belirtilen değerden daha küçük olmalıdır.
  • Yükseliş trendinin tersine döndüğünü (ve düşüşün başladığını) doğrulamak için şunlar gereklidir: üst gölgenin boyutu (ayıların gücü) ShadowBig girdi parametresinde belirtilen değerden daha büyük olmalıdır. Alt gölgenin boyutu (boğaların gücü), ShadowSmall girdi parametresinde belirtilen değerden daha küçük olmalıdır.

Terse dönüş mum modelleri stratejisine ek olarak, Limit girdi parametresini kullanarak piyasaya giriş yapmak da mümkündür (bkz. MQL5 Sihirbazı - Zaman Filtresiyle İki EMA Göstergesinin Çaprazlamasına Dayalı Ticaret Sinyalleri).

Limit parametresinin değerine bağlı olarak piyasaya giriş için üç farklı seçenek bulunur:

  1. Limit>0. Fiyatın düzeltmesiyle piyasaya giriş yapılır (Buy Limit veya Sell Limit emirleri ticaret sinyaline bağlı olarak verilir).
  2. Limit<0. Fiyat hareketinin devam etmesi ile piyasaya giriş yapılır (Buy Stop veya Sell Stop emirleri ticaret sinyaline bağlı olarak verilir).
  3. Limit=0. Piyasa fiyatları kullanılarak piyasaya giriş yapılır.

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

Şekil 1. Terse dönüş mum modellerine dayalı ticaret sinyalleri

Şekil 1. Terse dönüş mum modellerine dayalı ticaret sinyalleri


Ticaret Sinyalleri

Ticaret sinyalleri CsignalCandles sınıfında yer alır, analiz kolaylığı için Candle() fonksiyonu vardır:

int  Candle(int ind); // bileşik mumun tipine bağlı olarak pozitif/negatif sayı geri döndürür
                        // geri döndürülen değer, bileşik mumdaki (ind'den başlayarak oluşturulan) mum sayısıdır

Bileşik mum oluşumunda kullanılabilecek maksimum mum sayısı Range parametresiyle belirlenir. Bazı durumlarda, bileşik mum, Range değerinden daha küçük mum sayısıyla oluşabilir (boyut/gölge koşulları sağlandığında). Candle fonksiyonu, bileşik mum oluşturulamıyorsa 0 geri döndürür.


1. Alış pozisyonu açma

Alış pozisyonu açılması için boğa tipinde bileşik mum gereklidir. Fonksiyon bunu kontrol eder ve bileşik mum henüz oluşmamışsa veya bileşik mum ayı tipindeyse false geri döndürür ve çıkar. Bileşik mum boğa tipindeyse boyutu belirlenir (fiyat, SL ve TP seviyelerinin hesaplanması için gereklidir), ardından bekleyen alış emrinin parametreleri hesaplanır.

Bekleyen emir tipinin (Buy Limit veya Buy Stop) Limit girdi parametresinin işaretine bağlı olduğunu unutmayın (Limit=0 veya |price-ask|<stops level ise piyasa fiyatından alış emri verilir, Limit>0 ise Buy Limit tipinde bekleyen emir verilir, Limit<0 ise Buy Stop tipinde bekleyen emir verilir).

//+------------------------------------------------------------------+
//| Alış pozisyonu açma koşullarını kontrol et                       |
//+------------------------------------------------------------------+
bool CSignalCandles::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
//--- bileşik mum tipini kontrol et, oluşmamışsa veya boğa tipinde değilse, false geri döndür ve çık 
   if(Candle(1)<=0) return(false);
//--- bileşik mumun boyutunu al
   double size=m_high_composite-m_low_composite;
//--- bekleyen emrin fiyatını hesapla
   price=m_symbol.NormalizePrice(m_symbol.Ask()-m_limit*size);
//--- SL seviyesini hesapla
   sl   =m_symbol.NormalizePrice(price-m_stop_loss*size);
//--- TP seviyesini hesapla
   tp   =m_symbol.NormalizePrice(price+m_take_profit*size);
//--- bekleyen emrin ömrünü hesapla
   expiration+=m_expiration*PeriodSeconds(m_period);
//--- alış pozisyonu açma koşulları karşılandı, true geri döndür
   return(true);
  }

2. Alış pozisyonunu kapatma

Ayı tipinde bileşik mum oluşmuşsa, alış pozisyonu kapatılır.

//+------------------------------------------------------------------+
//| Alış pozisyonunu kapatma koşullarını kontrol et                  |
//+------------------------------------------------------------------+
bool CSignalCandles::CheckCloseLong(double& price)
  {
//--- bileşik mum tipini kontrol et, oluşmamışsa veya ayı tipinde değilse, false geri döndür ve çık 
   if(Candle(1)>=0) return(false);
//---
   price=0.0;
//--- alış pozisyonunu kapatma koşulları karşılandı, true geri döndür
   return(true);
  }


3. Satış pozisyonu açma

Satış pozisyonu açılması için ayı tipinde bileşik mum oluşmalıdır. Bileşik mum oluşmadıysa veya ayı tipinde değilse, fonksiyon false geri döndürür ve çıkar. Bileşik mum ayı tipindeyse boyutu belirlenir, ardından bekleyen satış emrinin parametreleri hesaplanır.

(bekleyen emrin tipi Limit girdi parametresinin işaretine bağlıdır, bkz. "Alış pozisyonu açma").

//+------------------------------------------------------------------+
//| Satış pozisyonu açma koşullarını kontrol et                      |
//+------------------------------------------------------------------+
bool CSignalCandles::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
//--- bileşik mum tipini kontrol et, oluşmamışsa veya ayı tipinde değilse, false geri döndür ve çık 
   if(Candle(1)>=0) return(false);
//--- bileşik mumun boyutunu al
   double size=m_high_composite-m_low_composite;
//--- bekleyen emrin fiyatını hesapla
   price=m_symbol.NormalizePrice(m_symbol.Bid()+m_limit*size);
//--- SL seviyesini hesapla
   sl   =m_symbol.NormalizePrice(price+m_stop_loss*size);
//--- TP seviyesini hesapla
   tp   =m_symbol.NormalizePrice(price-m_take_profit*size);
//--- bekleyen emrin ömrünü hesapla
   expiration+=m_expiration*PeriodSeconds(m_period);

//--- satış pozisyonu açma koşulları karşılandı, true geri döndür   return(true);
  }


4. Satış pozisyonunu kapatma

Boğa tipinde bileşik mum oluşmuşsa, satış pozisyonu kapatılır.

//+------------------------------------------------------------------+
//| Satış pozisyonunu kapatma koşullarını kontrol et                 |
//+------------------------------------------------------------------+
bool CSignalCandles::CheckCloseShort(double& price)
  {
//--- bileşik mum tipini kontrol et, oluşmamışsa veya boğa tipinde değilse, false geri döndür ve çık 
  if(Candle(1)<=0) return(false);
//---
   price=0.0;
//--- satış pozisyonunu kapatma koşulları karşılandı, true geri döndür
   return(true);
  }

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 reversal candlestick patterns" sinyal türünü seçin:

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

Şekil 2. MQL5 Sihirbazından "Signals based on reversal candlestick patterns" 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 M15, test aralığı: 1.1.2010-05.01.2011, Range=3, Minimum=50, ShadowBig=0.5, ShadowSmall=0.2, Limit=0, StopLoss=2.0, TakeProfit=1.0, Expiration=4).

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. Terse dönüş mum modellerine dayalı Uzman Danışmanın geçmişe dönük test sonuçları

Şekil 3. Terse dönüş mum modellerine dayalı Uzman Danışmanın geçmişe dönük test sonuçları


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

expert_candles.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/268

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.

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

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

Bu bölümde Market Facilitation Index (MFI) 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.