Bull’s Power göstergesine dayalı bir ticaret sistemi nasıl geliştirilir?
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:
- Bull’s Power göstergesinin tanımı
- Bull’s Power göstergesi stratejileri
- Bull’s Power göstergesine dayalı ticaret sisteminin planı
- Bull’s Power göstergesine dayalı ticaret sistemi
- 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:
Gösterge seçildiğinde, aşağıdaki gösterge parametreleri penceresi açılacaktır:
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:
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:
- İ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:
- Üçü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 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:
Programa çift tıklayarak veya onu grafiğe sürükleyerek başlatıyoruz. Devamında, aşağıdaki pencere açılacaktır:
Tamama tıkladıktan sonra, program aşağıdaki gibi grafiğe eklenecektir:
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:
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:
Programa çift tıklayarak veya onu grafiğe sürükleyerek başlatıyoruz. Devamında, aşağıdaki pencere açılacaktır:
Tamama tıkladıktan sonra, program aşağıdaki gibi grafiğe eklenecektir:
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:
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:
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:
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:
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:
Programa çift tıklayarak veya onu grafiğe sürükleyerek başlatıyoruz. Devamında, aşağıdaki pencere açılacaktır:
Tamama tıkladıktan sonra, program aşağıdaki gibi grafiğe eklenecektir:
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:
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:
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:
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:
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:
Programa çift tıklayarak veya onu grafiğe sürükleyerek başlatıyoruz. Devamında, aşağıdaki pencere açılacaktır:
Tamama tıkladıktan sonra, program aşağıdaki gibi grafiğe eklenecektir:
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:
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:
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
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz