Fan sayfamıza katılın
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
MQL5 Sihirbazı - Terse Dönüş Mum Modellerine Dayalı Ticaret Sinyalleri - MetaTrader 5 için Uzman Danışman
- Görüntülemeler:
- 281
- Derecelendirme:
- 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).
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:
- Limit>0. Fiyatın düzeltmesiyle piyasaya giriş yapılır (Buy Limit veya Sell Limit emirleri ticaret sinyaline bağlı olarak verilir).
- Limit<0. Fiyat hareketinin devam etmesi ile piyasaya giriş yapılır (Buy Stop veya Sell Stop emirleri ticaret sinyaline bağlı olarak verilir).
- 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
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
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ı
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
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 SinyalleriBu 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.
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 SinyalleriBu 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.