English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Italiano
preview
Bull’s Power göstergesine dayalı bir ticaret sistemi nasıl geliştirilir?

Bull’s Power göstergesine dayalı bir ticaret sistemi nasıl geliştirilir?

MetaTrader 5Ticaret | 1 Ağustos 2023, 16:26
278 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Giriş

Serimizin bu yeni makalesinde, ticaretimizi geliştirmek için lehimize kullanabileceğimiz yeni bir teknik araç hakkında bilgi edineceğiz: Bull’s Power göstergesi. Bu teknik göstergeyi aşağıdaki konular aracılığıyla ayrıntılı bir şekilde ele alacağız:

  1. Bull’s Power göstergesinin tanımı
  2. Bull’s Power göstergesi stratejileri
  3. Bull’s Power göstergesine dayalı ticaret sisteminin planı
  4. Bull’s Power göstergesine dayalı ticaret sistemi
  5. Sonuç

“Bull’s Power göstergesinin tanımı” başlıklı ilk bölümde, Bull’s Power göstergesinin ne olduğunu, neyi ölçtüğünü, manuel olarak nasıl hesaplandığını, MetaTrader 5 işlem platformuna nasıl eklendiğini ve parametrelerinin neler olduğunu öğreneceğiz. Göstergenin temel konseptini anladıktan sonra, “Bull’s Power göstergesi stratejileri” bölümünde, göstergenin bu konseptine dayanan bazı basit stratejileri ele alarak onu ticaretimizde bize fayda sağlayacak şekilde nasıl kullanabileceğimizden bahsedeceğiz. Devamında, “Bull’s Power göstergesine dayalı ticaret sisteminin planı” bölümünde, bu stratejiler için ticaret sistemini oluştururken bize yardımcı olması adına ilgili her strateji için olmak üzere adım adım ifadeler içeren bir plan hazırlayacağız. Ardından da makalenin “Bull’s Power göstergesine dayalı ticaret sistemi” başlıklı son bölümünde, hazırladığımız plan çerçevesinde, ele aldığımız stratejilere dayalı olarak MetaTrader 5’te otomatik şekilde sinyaller üretecek bir ticaret sistemi oluşturacağız.

Makale boyunca, kodlarımızı yazmak için MetaQuotes Language 5 (MQL5) programlama dilini ve MetaTrader 5 işlem platformunda yerleşik MetaEditor kod düzenleyicisini kullanacağız. MetaTrader 5’in nasıl kurulacağı ve MetaEditor’ın nasıl kullanılacağı hakkında daha fazla bilgi edinmek istiyorsanız, önceki makalelerimden birinde yer alan "MetaEditor’da MQL5 kodu yazma" bölümünü okuyabilirsiniz. Bu makalede okuduğunuz her şeyi kendi başınıza pratik yapmanızı tavsiye ederim. Bu şekilde konuyu daha iyi anlayabilecek ve kodlama becerilerinizi daha hızlı geliştirebileceksiniz.

Programlamanın önemi her geçen gün artmakta, bu da programlamayı öğrenmeyi daha da değerli kılmaktadır. Programlamanın bu önemi beraberinde getirdiği pek çok faydadan kaynaklanmaktadır. Programlamanın ticaretteki en önemli faydaları arasında şunlar yer alır: sürekli yaptığımız rutin işleri otomatikleştirerek zamandan tasarruf etmemizi sağlar, ticaretimizde kullanmak istediğimiz stratejiye uygun olarak hassas ticaret işlemleri gerçekleştirmemize olanak tanır ve ticaret sonuçlarımıza zarar verebilecek duygulardan kaçınmamıza yardımcı olur.

Sorumluluk reddi: Sağlanan tüm bilgiler ’olduğu gibi’ yalnızca bilgilendirme amaçlıdır, ticaret tavsiyesi değildir. Bu bilgiler herhangi bir sonucu garanti etmemektedir. Bu materyalleri herhangi bir işlem hesabında kullanırsanız, ortaya çıkabilecek tüm riskler size ait olacaktır.

Şimdi, konularımıza başlayalım.

Bull’s Power göstergesinin tanımı

Bu bölümde, arkasındaki konsepti anlamak adına Bull’s Power göstergesine daha yakından bakacağız. Bull’s Power göstergesi, bir önceki “Bear’s Power göstergesine dayalı bir ticaret sistemi nasıl geliştirilir?” başlıklı makalede bahsettiğimiz Bear’s Power’ın tam tersidir. Bull’s Power, Alexander Elder tarafından geliştirilmiştir. Piyasadaki boğa gücünü (yükseliş eğilimini) ölçer. Boğaların zayıfladığı ve dolayısıyla ayıların devreye girdiği bilgisini de verebilir. Sıfır seviyesi etrafında salınan bir osilatör göstergesidir. Dolayısıyla, bu gösterge bize piyasayı hareket ettiren en önemli faktör hakkında da önemli fikirler verir; bu faktör arz ve taleptir.

Bull’s Power göstergesi aşağıdaki adımlarda manuel olarak hesaplanabilir:

  • Periyodun en yüksek değerini al.
  • Exponential Moving Average (EMA) al.
  • EMA’yı en yüksek değerden çıkararak Bull’s Power değerini al.

Bull’s Power = en yüksek - EMA

Boğalar piyasayı kontrol ettiğinde, çoğu zaman piyasayı yukarı iterler. Bu nedenle, göstergenin hesaplama formülünde en yüksek değeri kullanırız. Sonrasında, en yüksek değer ve EMA arasındaki farkı buluruz ve böylece sıfır seviyesi etrafında salınan bir osilatör elde ederiz. Gösterge değeri sıfır seviyesine yaklaştığında ve onu yukarıdan aşağıya doğru çaprazladığında, bu, boğaların zayıfladığının bir işareti olabilir.

Bu göstergeyi, daha etkili bilgiler sağlayacağı için başka bir trend göstergesiyle kullanmak iyidir. Bir sonraki bölümde ele alacağımız stratejilerden birinde de bunu yapacağız. Birden çok göstergenin bir arada kullanılması teknik analizin önemli özelliklerindendir. Finansal enstrümana birçok perspektiften bakmaya olanak sağlayarak, hakkında daha fazla bilgi edinmeyi ve büyük resmi daha net görmeyi mümkün kılar.

Günümüzde, MetaTrader 5 platformuyla standart olarak gelen hazır bir gösterge bulunduğundan, Bull’s Power göstergesini manuel olarak hesaplamamıza gerek yoktur. Tek yapmamız gereken mevcut göstergeler arasından onu seçmektir:

Bull’s Power göstergesini ekleme

Gösterge seçildiğinde, aşağıdaki gösterge parametreleri penceresi açılacaktır:

Bull’s Power göstergesi parametreleri

1 - Hesaplamada kullanılacak periyodu ayarlamak için.

2 - Bull’s Power göstergesinin sütunlarının rengini ayarlamak için.

3 - Bull’s Power göstergesinin sütunlarının kalınlığını ayarlamak için.

Gösterge için uygun parametreleri ayarladıktan sonra gösterge aşağıdaki gibi grafiğe eklenecektir:

Grafikte Bull’s Power göstergesi

Yukarıdaki görüntüde, Bull’s Power göstergesinin grafiğe eklendiğini ve sıfır seviyesinin etrafında salınan sütunlar halinde alt pencerede görüntülendiğini görüyoruz. Gösterge sıfırın üzerinde olduğunda boğaların piyasayı kontrol ettiği, sıfıra yaklaştığında ve sıfırın altında olduğunda ise boğaların gücünün zayıfladığı anlamına gelir.

Bull’s Power göstergesi stratejileri

Bu bölümde, Bull’s Power göstergesini ana konseptine uygun olarak bazı basit stratejilerle nasıl kullanabileceğimizi göreceğiz. Bu stratejilerin burada sunulmasının ana amacı, Bull’s Power göstergesinin ticarette nasıl kullanılabileceğini ve ona dayalı olarak bir ticaret sisteminin nasıl tasarlanacağını anlamaktır. Dolayısıyla, bu stratejilerden herhangi birini gerçek hesabınızda kullanmadan önce, onu tam anlamıyla test ettiğinizden emin olmalısınız.

    • Birinci strateji: Bull’s Power hareketi:

      Bu stratejiye göre, göstergenin son iki değerine dayalı olarak Bull’s Power yükseliyor veya Bull’s Power düşüyor şeklinde sinyaller alacağız. Mevcut Bull’s Power değeri önceki Bull’s Power değerinden daha yüksekse, bu, Bull’s Power yükseliyor sinyali olacaktır. Tersi şekilde, mevcut Bull’s Power değeri önceki Bull’s Power değerinden daha düşükse, bu da Bull’s Power düşüyor sinyali olacaktır.

      Daha basit ifadeyle,

      Mevcut Bull’s Power > Önceki Bull’s Power --> Bull’s Power yükseliyor

      Mevcut Bull’s Power < Önceki Bull’s Power --> Bull’s Power düşüyor

        • İkinci strateji: Bull’s Power - Güçlü hareket veya ayı türü diverjans:

          Bu stratejiye göre, mevcut yüksek değerini önceki yüksek değeriyle ve ayrıca mevcut Bull’s Power değerini de önceki Bull’s Power değeriyle karşılaştırarak güçlü hareket veya ayı türü diverjans sinyallerini alacağız. Mevcut yüksek değeri önceki yüksek değerinden daha yüksekse ve bununla birlikte mevcut Bull’s Power değeri de önceki Bull’s Power değerinden daha yüksekse, bu, güçlü hareket olacaktır. Diğer durumda, mevcut yüksek değeri önceki yüksek değerinden daha yüksekken mevcut Bull’s Power değeri önceki Bull’s Power değerinden daha düşükse, bu da ayı türü diverjans olacaktır.

          Daha basit ifadeyle,

          Mevcut yüksek > Önceki yüksek ve Mevcut Bull’s Power > Önceki Bull’s Power --> Güçlü hareket

          Mevcut yüksek > Önceki yüksek ve Mevcut Bull’s Power < Önceki Bull’s Power --> Ayı türü diverjans

            • Üçüncü strateji: Bull’s Power sinyalleri:

              Bu stratejiye göre, belirli koşullara bağlı olarak alış veya satış sinyalleri alacağız. Mevcut kapanış fiyatı, mevcut EMA değerinden daha düşükse ve aynı zamanda önceki Bull’s Power değeri sıfır seviyesinin üzerindeyken, mevcut Bull’s Power değeri sıfır seviyesinin altına indiyse, bu, satış sinyali olacaktır. Tersi şekilde, mevcut kapanış fiyatı, mevcut EMA değerinden daha yüksekse ve bununla beraber önceki Bull’s Power değeri sıfır seviyesinin altındayken, mevcut Bull’s Power değeri sıfır seviyesinin üzerine çıktıysa, bu da alış sinyali olacaktır.

              Daha basit ifadeyle,

              Mevcut kapanış < Mevcut EMA, Önceki Bull’s Power > Sıfır seviyesi ve Mevcut Bull’s Power < Sıfır seviyesi --> Satış sinyali

              Mevcut kapanış > Mevcut EMA, Önceki Bull’s Power < Sıfır seviyesi ve Mevcut Bull’s Power > Sıfır seviyesi --> Alış sinyali

              Bull’s Power göstergesine dayalı ticaret sisteminin planı

              Bu bölümde, ele aldığımız stratejiler için ticaret sistemini oluştururken bize yardımcı olması adına ilgili her strateji için olmak üzere adım adım ifadeler içeren bir plan hazırlayacağız.

              • Birinci strateji: Bull’s Power hareketi:

              Bu stratejiye göre, ticaret sistemi her tikte mevcut Bull’s Power değerini ve önceki Bull’s Power değerini kontrol etmeli ve bu iki değeri birbiriyle karşılaştırmalıdır. Daha sonra bu karşılaştırmanın sonucuna göre ilgili sinyali grafik üzerinde yorum olarak görüntülemelidir. Mevcut Bull’s Power değeri önceki Bull’s Power değerinden daha yüksekse, şu ifadeleri ayrı satırlar halinde grafik üzerinde yorum olarak görüntülemelidir:

              • Bull’s Power yükseliyor
              • Mevcut Bull’s Power değeri
              • Önceki Bull’s Power değeri

              Tersi şekilde, mevcut Bull’s Power değeri önceki Bull’s Power değerinden daha düşükse, bu kez de şu ifadeleri ayrı satırlar halinde grafik üzerinde yorum olarak görüntülemelidir:

              • Bull’s Power düşüyor
              • Mevcut Bull’s Power değeri
              • Önceki Bull’s Power değeri

              Aşağıda, bu strateji için bir program geliştirmemize yardımcı olacak adım adım plan yer almaktadır:

              Bull’s Power hareketi planı

              • İkinci strateji: Bull’s Power - Güçlü hareket veya ayı türü diverjans:

              Bu stratejiye göre, ticaret sistemi her tikte dört değeri (mevcut yüksek, önceki yüksek, mevcut Bull’s Power ve önceki Bull’s Power) kontrol etmeli ve bu değerleri stratejinin koşullarına uygun şekilde karşılaştırarak ilgili sinyali grafik üzerinde yorum olarak görüntülemelidir. Mevcut yüksek değeri önceki yüksek değerinden daha yüksekse ve bununla birlikte mevcut Bull’s Power değeri de önceki Bull’s Power değerinden daha yüksekse, şu ifadeleri ayrı satırlar halinde grafik üzerinde yorum olarak görüntülemelidir:

              • Güçlü hareket
              • Mevcut yüksek değeri
              • Önceki yüksek değeri
              • Mevcut Bull’s Power değeri
              • Önceki Bull’s Power değeri

              Diğer durumda, eğer mevcut yüksek değeri önceki yüksek değerinden daha yüksekken mevcut Bull’s Power değeri önceki Bull’s Power değerinden daha düşükse, bu kez de şu ifadeleri ayrı satırlar halinde grafik üzerinde yorum olarak görüntülemelidir:

              • Ayı türü diverjans
              • Mevcut yüksek değeri
              • Önceki yüksek değeri
              • Mevcut Bull’s Power değeri
              • Önceki Bull’s Power değeri

              Aşağıda, bu strateji için bir program geliştirmemize yardımcı olacak adım adım plan yer almaktadır:

                 Bull’s Power - Güçlü hareket veya ayı türü diverjans planı

              • Üçüncü strateji: Bull’s Power sinyalleri:

              Bu stratejiye göre, ticaret sistemi her tikte dört değeri (mevcut kapanış, mevcut EMA, mevcut Bull’s Power ve önceki Bull’s Power) kontrol etmeli ve bu değerleri stratejinin koşullarına uygun şekilde karşılaştırarak ilgili sinyali grafik üzerinde yorum olarak görüntülemelidir. Mevcut kapanış fiyatı, mevcut EMA değerinden daha düşükse ve aynı zamanda önceki Bull’s Power değeri sıfır seviyesinin üzerindeyken, mevcut Bull’s Power değeri sıfır seviyesinin altına indiyse, şu ifadeleri ayrı satırlar halinde grafik üzerinde yorum olarak görüntülemelidir:

              • Satış sinyali
              • Mevcut kapanış fiyatı
              • Mevcut EMA değeri
              • Mevcut Bull’s Power değeri

              Tersi şekilde, mevcut kapanış fiyatı, mevcut EMA değerinden daha yüksekse ve bununla beraber önceki Bull’s Power değeri sıfır seviyesinin altındayken, mevcut Bull’s Power değeri sıfır seviyesinin üzerine çıktıysa, bu kez de şu ifadeleri ayrı satırlar halinde grafik üzerinde yorum olarak görüntülemelidir:

              • Alış sinyali
              • Mevcut kapanış fiyatı
              • Mevcut EMA değeri
              • Mevcut Bull’s Power değeri

              Aşağıda, bu strateji için bir program geliştirmemize yardımcı olacak adım adım plan yer almaktadır:

              Bull’s Power sinyalleri planı

              Bull’s Power göstergesine dayalı ticaret sistemi

              Bu bölümde, hazırladığımız plan çerçevesinde ele aldığımız stratejilere dayalı olarak bir ticaret sistemi oluşturacağız. İlk olarak, stratejilerimizin programlarına temel olması adına mevcut Bull’s Power değerini grafik üzerinde yorum olarak görüntüleyecek basit bir program yazalım.

              Adım adım nasıl yapılacağını görelim:

              Birinci adım: double fonksiyonunu kullanarak Bull’s Power için bir dizi oluşturalım:

              double bullpowerArray[];

              İkinci adım: ArraySetAsSeries fonksiyonunu kullanarak Bull’s Power dizisini mevcut veriden başlayarak sıralayalım - başarılı olması durumunda true, aksi takdirde false geri döner (bool türü):

              ArraySetAsSeries(bullpowerArray,true);

              Üçüncü adım: bullpowerDef için int türü değişken oluşturduktan sonra iBullsPower fonksiyonunu kullanarak Bull’s Power’ı tanımlayalım. iBullsPower fonksiyonu Bull’s Power göstergesinin tanıtıcısını geri döndürür. Fonksiyonunun parametreleri şunlardır:

              Sembol adı - Mevcut sembole uygulanmak üzere _Symbol kullanacağız.

              Zaman dilimi - Mevcut zaman dilimine uygulanmak üzere _Period kullanacağız.

              Moving Average periyodu - Varsayılan olarak 13 ayarlayacağız.

              int bullpowerDef = iBullsPower(_Symbol,_Period,13);

              Dördüncü adım: CopyBuffer fonksiyonunu kullanarak bullpowerArray dizisini bullpowerDef değerleriyle dolduralım. Fonksiyonunun parametreleri şunlardır:

              Gösterge tanıtıcısı - bullpowerDef gösterge tanımını kullanacağız.     

              Gösterge arabellek numarası - 0 ayarlayacağız.

              Başlangıç konumu - 0 ayarlayacağız.         

              Kopyalanacak veri miktarı - 3 ayarlayacağız.                

              Hedef dizi - bullpowerArray ayarlayacağız.

              CopyBuffer(bullpowerDef,0,0,3,bullpowerArray);

              Beşinci adım: bullpowerVal için double türü değişken oluşturduktan sonra, double türünde değer geri döndüren NormalizeDouble fonksiyonunu kullanarak mevcut Bull’s Power değerini hesaplayalım. Fonksiyonunun parametreleri şunlardır:

              Normalleştirilmiş sayı - bullpowerArray[0] kullanacağız.

              Ondalık basamak sayısı - 6 ayarlayacağız.

              double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);

              Altıncı adım: Comment fonksiyonunu kullanarak mevcut Bull’s Power değerini grafikte yorum olarak görüntüleyelim:

              Comment("Bull's Power Value is ",bullpowerVal);

              Bu stratejiye dayalı Uzman Danışmanın tam kodu aşağıda gösterilmektedir:

              //+------------------------------------------------------------------+
              //|                                          Simple Bull's Power.mq5 |
              //|                                  Copyright 2022, MetaQuotes Ltd. |
              //|                                             https://www.mql5.com |
              //+------------------------------------------------------------------+
              #property copyright "Copyright 2022, MetaQuotes Ltd."
              #property link      "https://www.mql5.com"
              #property version   "1.00"
              //+------------------------------------------------------------------+
              void OnTick()
                {
                 double bullpowerArray[];
              
                 ArraySetAsSeries(bullpowerArray,true);
              
                 int bullpowerDef = iBullsPower(_Symbol,_Period,13);
              
                 CopyBuffer(bullpowerDef,0,0,3,bullpowerArray);
              
                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
              
                 Comment("Bull's Power Value is ",bullpowerVal);
              
                }
              //+------------------------------------------------------------------+

              Uzman Danışmanın kodunu derliyoruz, böylece onu MetaTrader 5 terminalinde Kılavuz penceresinde bulabiliriz:

              Kılavuz - Simple Bull’s Power

              Programa çift tıklayarak veya onu grafiğe sürükleyerek başlatıyoruz. Devamında, aşağıdaki pencere açılacaktır:

              Simple Bull’s Power penceresi

              Tamama tıkladıktan sonra, program aşağıdaki gibi grafiğe eklenecektir:

              Grafiğe eklenmiş Simple Bull’s Power

              Gördüğümüz üzere, grafiğin sağ üst köşesinde Uzman Danışmanın grafik üzerinde çalıştığına dair bir ifade ortaya çıktı. Böylece, program mevcut Bull’s Power değerini grafik üzerinde yorum olarak gösterecektir: 

              Grafikte mevcut Bull’s Power değeri

              Yukarıdaki görüntüden görebileceğimiz gibi, Uzman Danışman mevcut Bull’s Power değerini grafiğin sol üst köşesinde yorum olarak görüntülemektedir.

              • Birinci strateji: Bull’s Power hareketi:

              Bu stratejiye dayalı Uzman Danışmanın tam kodu aşağıda gösterilmektedir:

              //+------------------------------------------------------------------+
              //|                                         Bulls Power Movement.mq5 |
              //|                                  Copyright 2022, MetaQuotes Ltd. |
              //|                                             https://www.mql5.com |
              //+------------------------------------------------------------------+
              #property copyright "Copyright 2022, MetaQuotes Ltd."
              #property link      "https://www.mql5.com"
              #property version   "1.00"
              //+------------------------------------------------------------------+
              void OnTick()
                {
                 double bullpowerArray[];
              
                 ArraySetAsSeries(bullpowerArray,true);
              
                 int bullpowerDef = iBullsPower(_Symbol,_Period,13);
              
                 CopyBuffer(bullpowerDef,0,0,3,bullpowerArray);
              
                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
                 double bullpowerPrevVal = NormalizeDouble(bullpowerArray[1],6);
              
                 if(bullpowerVal>bullpowerPrevVal)
                   {
                    Comment("Bull's Power is rising","\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }
              
                 if(bullpowerVal<bullpowerPrevVal)
                   {
                    Comment("Bull's Power is declining","\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }
                }
              //+------------------------------------------------------------------+

              Bu koddaki farklılıklar şunlardır:

              Mevcut Bull’s Power değerini (bullpowerVal) ve önceki Bull’s Power değerini (bullpowerPrevVal) tanımlıyoruz:

                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
                 double bullpowerPrevVal = NormalizeDouble(bullpowerArray[1],6);

              Stratejinin koşulları:

              Bull’s Power yükseliyor:

                 if(bullpowerVal>bullpowerPrevVal)
                   {
                    Comment("Bull's Power is rising","\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }

              Bull’s Power düşüyor:

                 if(bullpowerVal<bullpowerPrevVal)
                   {
                    Comment("Bull's Power is declining","\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }

              Uzman Danışmanın kodunu derliyoruz, böylece onu MetaTrader 5 terminalinde Kılavuz penceresinde bulabiliriz:

              Kılavuz - Bulls Power Movement

              Programa çift tıklayarak veya onu grafiğe sürükleyerek başlatıyoruz. Devamında, aşağıdaki pencere açılacaktır:

              Bulls Power Movement penceresi

              Tamama tıkladıktan sonra, program aşağıdaki gibi grafiğe eklenecektir:

              Grafiğe eklenmiş Bulls Power Movement

              Gördüğümüz üzere, grafiğin sağ üst köşesinde Uzman Danışmanın grafik üzerinde çalıştığına dair bir ifade ortaya çıktı. Devamında program onun için belirlediğimiz koşullara uygun olarak yorumları gösterecektir:

              Mevcut verilerle Veri Penceresi ve Bull’s Power yükseliyor sinyali:

              Mevcut verilerle Veri Penceresi ve Bull’s Power yükseliyor sinyali

              Yukarıdaki görüntüden görebileceğimiz gibi, Uzman Danışman grafiğin sol üst köşesinde Bull’s Power yükseliyor sinyalini, mevcut Bull’s Power değerini ve önceki Bull’s Power değerini yorum olarak görüntülemektedir. Veri Penceresinde de yerleşik Bull’s Power göstergesinin mevcut değeri görülmektedir. Bu değer, programda görüntülenen mevcut Bull’s Power değeriyle aynıdır.

              Önceki verilerle Veri Penceresi ve Bull’s Power yükseliyor sinyali:

              Önceki verilerle Veri Penceresi ve Bull’s Power yükseliyor sinyali

              Yukarıdaki görüntüde ise Veri Penceresinde yerleşik Bull’s Power göstergesinin önceki değeri görülmektedir. Bu değer, programda görüntülenen önceki Bull’s Power değeriyle aynıdır.

              Mevcut verilerle Veri Penceresi ve Bull’s Power düşüyor sinyali:

              Mevcut verilerle Veri Penceresi ve Bull’s Power düşüyor sinyali

              Yukarıdaki görüntüden görebileceğimiz gibi, Uzman Danışman grafiğin sol üst köşesinde Bull’s Power düşüyor sinyalini, mevcut Bull’s Power değerini ve önceki Bull’s Power değerini yorum olarak görüntülemektedir. Veri Penceresinde de yerleşik Bull’s Power göstergesinin mevcut değeri görülmektedir. Bu değer, programda görüntülenen mevcut Bull’s Power değeriyle aynıdır.

              Önceki verilerle Veri Penceresi ve Bull’s Power düşüyor sinyali:

              Önceki verilerle Veri Penceresi ve Bull’s Power düşüyor sinyali

              Yukarıdaki görüntüde ise Veri Penceresinde yerleşik Bull’s Power göstergesinin önceki değeri görülmektedir. Bu değer, programda görüntülenen önceki Bull’s Power değeriyle aynıdır.

              • İkinci strateji: Bull’s Power - Güçlü hareket veya ayı türü diverjans:

              Bu stratejiye dayalı Uzman Danışmanın tam kodu aşağıda gösterilmektedir:

              //+------------------------------------------------------------------+
              //|                          Bull's Power - Strong or Divergence.mq5 |
              //|                                  Copyright 2022, MetaQuotes Ltd. |
              //|                                             https://www.mql5.com |
              //+------------------------------------------------------------------+
              #property copyright "Copyright 2022, MetaQuotes Ltd."
              #property link      "https://www.mql5.com"
              #property version   "1.00"
              //+------------------------------------------------------------------+
              void OnTick()
                {
                 double bullpowerArray[];
                 MqlRates priceArray[];
              
                 ArraySetAsSeries(bullpowerArray,true);
                 int Data=CopyRates(_Symbol,_Period,0,3,priceArray);
              
                 int bullpowerDef = iBullsPower(_Symbol,_Period,13);
              
                 CopyBuffer(bullpowerDef,0,0,3,bullpowerArray);
              
                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
                 double bullpowerPrevVal = NormalizeDouble(bullpowerArray[1],6);
              
                 double currentHighVal=NormalizeDouble(priceArray[2].high,6);
                 double prevHighVal=NormalizeDouble(priceArray[1].high,6);
              
                 if(currentHighVal>prevHighVal && bullpowerVal>bullpowerPrevVal)
                   {
                    Comment("Strong Move","\n",
                            "Current High Value is ",currentHighVal,"\n",
                            "Previous High Value is ",prevHighVal,"\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }
              
                 if(currentHighVal>prevHighVal && bullpowerVal<bullpowerPrevVal)
                   {
                    Comment("Bearish divergence","\n",
                            "Current High Value is ",currentHighVal,"\n",
                            "Previous High Value is ",prevHighVal,"\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }
                }
              //+------------------------------------------------------------------+

              Bu koddaki farklılıklar şunlardır:

              bullpowerArray ve priceArray olmak üzere iki dizi oluşturuyoruz:

                 double bullpowerArray[];
                 MqlRates priceArray[];

              Oluşturulan bu dizileri sıralıyoruz. bullpowerArray için daha önce yaptığımız gibi ArraySetAsSeries fonksiyonunu kullanacağız. priceArray için de MqlRates geçmiş verilerini almak için CopyRates fonksiyonunu kullanacağız. CopyRates fonksiyonunun parametreleri şunlardır:

              • Sembol adı - Mevcut sembole uygulanmak üzere _Symbol kullanacağız.
              • Zaman dilimi - Mevcut zaman dilimine uygulanmak üzere _Period kullanacağız.
              • Başlangıç zamanı - 0 ayarlayacağız.
              • Bitiş zamanı - 3 ayarlayacağız.
              • Hedef dizi - priceArray ayarlayacağız.
                 ArraySetAsSeries(bullpowerArray,true);
                 int Data=CopyRates(_Symbol,_Period,0,3,priceArray);

              NormalizeDouble fonksiyonunu kullanarak mevcut ve önceki Bull’s Power değerlerini tanımlıyoruz:

                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
                 double bullpowerPrevVal = NormalizeDouble(bullpowerArray[1],6);
              
                 double currentHighVal=NormalizeDouble(priceArray[2].high,6);
                 double prevHighVal=NormalizeDouble(priceArray[1].high,6);

              Stratejinin koşulları:

              Güçlü hareket:

                 if(currentHighVal>prevHighVal && bullpowerVal>bullpowerPrevVal)
                   {
                    Comment("Strong Move","\n",
                            "Current High Value is ",currentHighVal,"\n",
                            "Previous High Value is ",prevHighVal,"\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }

              Ayı türü diverjans:

                 if(currentHighVal>prevHighVal && bullpowerVal<bullpowerPrevVal)
                   {
                    Comment("Bearish divergence","\n",
                            "Current High Value is ",currentHighVal,"\n",
                            "Previous High Value is ",prevHighVal,"\n",
                            "Bull's Power Value is ",bullpowerVal,"\n",
                            "Bull's Power Previous Value is ",bullpowerPrevVal);
                   }

              Uzman Danışmanın kodunu derliyoruz, böylece onu MetaTrader 5 terminalinde Kılavuz penceresinde bulabiliriz:

              Kılavuz - Bull’s Power - Strong or Divergence

              Programa çift tıklayarak veya onu grafiğe sürükleyerek başlatıyoruz. Devamında, aşağıdaki pencere açılacaktır:

              Bull’s Power - Strong or Divergence penceresi

              Tamama tıkladıktan sonra, program aşağıdaki gibi grafiğe eklenecektir:

              Grafiğe eklenmiş Bull’s Power - Strong or Divergence

              Gördüğümüz üzere, grafiğin sağ üst köşesinde Uzman Danışmanın grafik üzerinde çalıştığına dair bir ifade ortaya çıktı. Devamında program onun için belirlediğimiz koşullara uygun olarak yorumları gösterecektir:

              Mevcut verilerle Veri Penceresi ve güçlü hareket sinyali:

              Mevcut verilerle Veri Penceresi ve güçlü hareket sinyali

              Yukarıdaki görüntüden görebileceğimiz gibi, program güçlü hareket koşulunda aşağıdaki değerleri grafikte yorum olarak görüntülemektedir:

              • Güçlü hareket
              • Mevcut yüksek değeri
              • Önceki yüksek değeri
              • Mevcut Bull’s Power değeri
              • Önceki Bull’s Power değeri 

              Önceki verilerle Veri Penceresi ve güçlü hareket sinyali:

              Önceki verilerle Veri Penceresi ve güçlü hareket sinyali

              Yukarıdaki görüntüde, bu sefer Veri Penceresinde yerleşik Bull’s Power göstergesinin önceki değeri görülmektedir. Bu değer, programda görüntülenen önceki Bull’s Power değeriyle aynıdır.

              Mevcut verilerle Veri Penceresi ve ayı türü diverjans sinyali:

              Mevcut verilerle Veri Penceresi ve ayı türü diverjans sinyali

              Yukarıdaki görüntüden görebileceğimiz gibi, program ayı türü diverjans koşulunda aşağıdaki değerleri grafikte yorum olarak görüntülemektedir:

              • Ayı türü diverjans
              • Mevcut yüksek değeri
              • Önceki yüksek değeri
              • Mevcut Bull’s Power değeri
              • Önceki Bull’s Power değeri  

              Önceki verilerle Veri Penceresi ve ayı türü diverjans sinyali:

              Önceki verilerle Veri Penceresi ve ayı türü diverjans sinyali

              Yukarıdaki görüntüde, bu sefer Veri Penceresinde yerleşik Bull’s Power göstergesinin önceki değeri görülmektedir. Bu değer, programda görüntülenen önceki Bull’s Power değeriyle aynıdır.

              • Üçüncü strateji: Bull’s Power sinyalleri:

              Bu stratejiye dayalı Uzman Danışmanın tam kodu aşağıda gösterilmektedir:

              //+------------------------------------------------------------------+
              //|                                         Bulls' Power signals.mq5 |
              //|                                  Copyright 2022, MetaQuotes Ltd. |
              //|                                             https://www.mql5.com |
              //+------------------------------------------------------------------+
              #property copyright "Copyright 2022, MetaQuotes Ltd."
              #property link      "https://www.mql5.com"
              #property version   "1.00"
              //+------------------------------------------------------------------+
              void OnTick()
                {
                 double bullpowerArray[];
                 double maArray[];
                 MqlRates priceArray[];
              
                 ArraySetAsSeries(bullpowerArray,true);
                 ArraySetAsSeries(maArray,true);
                 int Data=CopyRates(_Symbol,_Period,0,3,priceArray);
              
                 int bullpowerDef = iBullsPower(_Symbol,_Period,13);
                 int maDef = iMA(_Symbol,_Period,13,0,MODE_EMA,PRICE_CLOSE);
              
                 CopyBuffer(bullpowerDef,0,0,3,bullpowerArray);
                 CopyBuffer(maDef,0,0,3,maArray);
              
                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
              
                 double emaVal = NormalizeDouble(maArray[0],6);
              
                 double currentClose=NormalizeDouble(priceArray[2].close,6);
              
                 if(bullpowerVal<0 && currentClose<emaVal)
                   {
                    Comment("Sell Signal","\n",
                            "Current Close Value is ",currentClose,"\n",
                            "Current EMA Value is ",emaVal,"\n",
                            "Bull's Power Value is ",bullpowerVal);
                   }
              
                 if(bullpowerVal>0 && currentClose>emaVal)
                   {
                    Comment("Buy Signal","\n",
                            "Current Close Value is ",currentClose,"\n",
                            "Current EMA Value is ",emaVal,"\n",
                            "Bull's Power Value is ",bullpowerVal);
                   }
                }
              //+------------------------------------------------------------------+

              Bu koddaki farklılıklar şunlardır:

              bullpowerArray, maArray ve priceArray olmak üzere üç dizi oluşturuyoruz:

                 double bullpowerArray[];
                 double maArray[];
                 MqlRates priceArray[];

              Oluşturulan bu dizileri sıralıyoruz:

                 ArraySetAsSeries(bullpowerArray,true);
                 ArraySetAsSeries(maArray,true);
                 int Data=CopyRates(_Symbol,_Period,0,3,priceArray);

              iBullsPower fonksiyonunu kullanarak Bull’s Power için bullpowerDef’i ve iMA fonksiyonunu (Moving Average göstergesinin tanıtıcısını geri döndürür) kullanarak da Moving Average için maDef’i tanımlıyoruz:

                 int bullpowerDef = iBullsPower(_Symbol,_Period,13);
                 int maDef = iMA(_Symbol,_Period,13,0,MODE_EMA,PRICE_CLOSE);

              CopyBuffer fonksiyonunu kullanarak, bullpowerArray ve maArray dizilerini sırasıyla bullpowerDef ve maDef değerleriyle dolduruyoruz:

                 CopyBuffer(bullpowerDef,0,0,3,bullpowerArray);
                 CopyBuffer(maDef,0,0,3,maArray);

              Mevcut Bull’s Power, mevcut Exponential Moving Average ve mevcut kapanış fiyatı olmak üzere üç değeri tanımlıyoruz:

                 double bullpowerVal = NormalizeDouble(bullpowerArray[0],6);
                 double emaVal = NormalizeDouble(maArray[0],6);
                 double currentClose=NormalizeDouble(priceArray[2].close,6);

              Stratejinin koşulları:

              Satış sinyali:

                 if(bullpowerVal<0 && currentClose<emaVal)
                   {
                    Comment("Sell Signal","\n",
                            "Current Close Value is ",currentClose,"\n",
                            "Current EMA Value is ",emaVal,"\n",
                            "Bull's Power Value is ",bullpowerVal);
                   }

              Alış sinyali:

                 if(bullpowerVal>0 && currentClose>emaVal)
                   {
                    Comment("Buy Signal","\n",
                            "Current Close Value is ",currentClose,"\n",
                            "Current EMA Value is ",emaVal,"\n",
                            "Bull's Power Value is ",bullpowerVal);
                   }

              Uzman Danışmanın kodunu derliyoruz, böylece onu MetaTrader 5 terminalinde Kılavuz penceresinde bulabiliriz:

              Kılavuz - Bulls’ Power signals

              Programa çift tıklayarak veya onu grafiğe sürükleyerek başlatıyoruz. Devamında, aşağıdaki pencere açılacaktır:

              Bulls’ Power signals penceresi

              Tamama tıkladıktan sonra, program aşağıdaki gibi grafiğe eklenecektir:

              Grafiğe eklenmiş Bulls’ Power signals

              Gördüğümüz üzere, grafiğin sağ üst köşesinde Uzman Danışmanın grafik üzerinde çalıştığına dair bir ifade ortaya çıktı. Devamında program onun için belirlediğimiz koşullara uygun olarak yorumları gösterecektir:

              Satış sinyali:

              Bulls’ Power signals - Satış sinyali

              Yukarıdaki görüntüden görebileceğimiz gibi, program satış sinyali koşulunda aşağıdaki değerleri grafikte yorum olarak görüntülemektedir:

              • Satış sinyali
              • Mevcut kapanış fiyatı
              • Mevcut EMA değeri
              • Mevcut Bull’s Power değeri

              Alış sinyali:

              Bulls’ Power signals - Alış sinyali

              Yukarıdaki görüntüden görebileceğimiz gibi, program alış sinyali koşulunda aşağıdaki değerleri grafikte yorum olarak görüntülemektedir:

              • Alış sinyali
              • Mevcut kapanış fiyatı
              • Mevcut EMA değeri
              • Mevcut Bull’s Power değeri

              Sonuç

              Bu makalede Bull’s Power göstergesine değindik. İlk olarak, ne olduğunu, neyi ölçtüğünü, manuel olarak nasıl hesaplandığını ve MetaTrader 5’te bulunan yerleşik Bull’s Power göstergesinin nasıl kullanılacağını öğrendik. Sonrasında, göstergenin arkasındaki ana fikre dayanan birkaç basit strateji aracılığıyla göstergenin ticarette nasıl kullanılabileceğinden bahsettik. Bu stratejilerin temel amacı, bu göstergenin ticarette ne şekilde kullanılabileceğini öğrenmektir, dolayısıyla, gerçek hesabınızda kullanmadan önce, sizin için uygun olduklarından ve onlardan kâr edebileceğinizden emin olana kadar onları iyi bir şekilde test ettiğinizden emin olmalısınız. Ele aldığımız stratejileri hatırlayalım:

              • Bull’s Power hareketi: Bull’s Power yükseliyor veya Bull’s Power düşüyor şeklinde sinyaller almak için.
              • Bull’s Power - Güçlü hareket veya ayı türü diverjans: güçlü hareket veya ayı türü diverjans şeklinde sinyaller almak için.
              • Bull’s Power sinyalleri: Alış veya satış sinyalleri almak için.

              Devamında, ele aldığımız stratejiler için ticaret sistemini oluştururken bize yardımcı olması adına ilgili her strateji için olmak üzere adım adım ifadeler içeren bir plan hazırladık. Son olarak da hazırladığımız plan çerçevesinde, MetaTrader 5 işlem platformunda kullanılmak üzere, ele aldığımız stratejilere dayalı olarak MQL5 dili aracılığıyla bir ticaret sistemi oluşturduk. Umarım makale boyunca gösterilen kodları kendi başınıza yazmaya çalışmışsınızdır, çünkü bu, kod yazma becerilerinizi daha da geliştirerek programlamanın inceliklerini öğrenmenizi sağlayacaktır.

              Umarım bu makaleyi ticaret sonucunuzu geliştirmeniz ve bu konu veya ilgili herhangi bir konu hakkında yeni fikirler edinmeniz için yararlı bulursunuz. Bu makaleyi beğendiyseniz ve buna benzer makaleler okumak istiyorsanız, en popüler teknik göstergelere dayalı ticaret sistemlerinin nasıl geliştirileceğini öğrenme konulu bu serideki diğer makaleleri de okuyabilirsiniz.

              MetaQuotes Ltd tarafından İngilizceden çevrilmiştir.
              Orijinal makale: https://www.mql5.com/en/articles/11327

              VIDYA göstergesine dayalı bir ticaret sistemi nasıl geliştirilir? VIDYA göstergesine dayalı bir ticaret sistemi nasıl geliştirilir?
              En popüler teknik göstergelere dayalı ticaret sistemlerinin nasıl geliştirileceğine ilişkin serimizin yeni makalesine hoş geldiniz. Bu makalede, Variable Index Dynamic Average (VIDYA) teknik göstergesini konuk edeceğiz.
              Sıfırdan bir ticaret Uzman Danışmanı geliştirme (Bölüm 21): Yeni emir sistemi (IV) Sıfırdan bir ticaret Uzman Danışmanı geliştirme (Bölüm 21): Yeni emir sistemi (IV)
              Sonunda görsel sistem çalışmaya başlayacak... tam olarak tamamlanmış şekilde olmasa da. Burada ana değişiklikleri yapmayı bitireceğiz. Çok sayıda değişiklik olacaktır ve onların hepsi gereklidir. Tüm çalışma oldukça ilginç olacaktır.
              Popülasyon optimizasyon algoritmaları: Gri kurt optimizasyonu (Grey Wolf Optimizer, GWO) Popülasyon optimizasyon algoritmaları: Gri kurt optimizasyonu (Grey Wolf Optimizer, GWO)
              Bu makalede en yeni modern optimizasyon algoritmalarından biri olan gri kurt optimizasyonunu ele alacağız. Test fonksiyonları üzerindeki orijinal davranışı, bu algoritmayı daha önce incelenenler arasında en dikkat çekici olanlardan biri haline getirmektedir. Bu, sinir ağlarının, çok değişkenli düzgün fonksiyonların eğitiminde kullanılan en iyi algoritmalardan biridir.
              Sıfırdan bir ticaret Uzman Danışmanı geliştirme (Bölüm 20): Yeni emir sistemi (III) Sıfırdan bir ticaret Uzman Danışmanı geliştirme (Bölüm 20): Yeni emir sistemi (III)
              Yeni emir sistemini uygulamaya devam ediyoruz. Böyle bir sistemin oluşturulması, MQL5'e iyi hakim olmanın yanı sıra MetaTrader 5 platformunun gerçekte nasıl çalıştığını ve hangi kaynakları sağladığını anlamayı gerektirir.