
Envelopes göstergesine dayalı bir ticaret sistemi nasıl geliştirilir?
Giriş
Bir önceki makalemde, bantlarla ticaret yapma konseptinde kullanılan en popüler göstergelerden biri olan Bollinger Bands hakkında konuşmuştum. Henüz okumadıysanız, okumanızı tavsiye ederim, şu linkten ulaşabilirsiniz: Bollinger Bands göstergesine dayalı bir ticaret sistemi nasıl geliştirilir?
Bollinger Bands hakkında konuştuğum makalede bahsettiğim gibi, bantlarla ticaret yapma yönteminde kullanabileceğimiz birçok farklı araç mevcuttur. Araçlar, yaklaşımlarında hesaplamalar ve stratejiler açısından farklılık gösterir, ancak onları birleştiren ortak fikir ticaret için bantların kullanılmasıdır.
Bu makalede de bantlarla ticaret yapma yöntemi çerçevesinde başka bir araca bakacağız - Envelopes göstergesi. Gösterge, fiyatı çevreleyen iki banttan ve fiyatın hareketli ortalamasından oluşur. Göstergeyi aşağıdaki başlıklarda daha ayrıntılı olarak ele alacağız:
- Envelopes göstergesinin tanımı
- Envelopes göstergesi stratejileri
- Envelopes göstergesine dayalı ticaret sisteminin planı
- Envelopes göstergesine dayalı ticaret sistemi
- Sonuç
Bu başlıklar aracılığıyla göstergeyi derinlemesine anlaşılmasını sağlayacak şekilde açıklamaya çalışacağım. Anlatacağım bilgiler, daha iyi sonuçlar üretebilecek daha iyi bir ticaret planı veya stratejisi geliştirmenize yardımcı olacaktır. Bu amaçla, “Envelopes göstergesinin tanımı” başlığı altında, Envelopes göstergesi hakkında daha fazla ayrıntıyı sizlerle paylaşacağım. Daha iyi anlaşılması için nasıl hesaplandığından bahsedeceğiz. Ardından, ticaret sonuçlarımızı iyileştirecek stratejiler geliştirmeye çalışacağız.
“Envelopes göstergesi stratejileri” bölümünde, göstergeyi ticarette nasıl kullanabileceğimizin bir örneği olarak bazı temel stratejileri göstereceğim. Bunlar daha farklı ve karmaşık stratejiler oluşturmamıza yol teşkil edebilir. Ardından, çok ilginç bir konu olduğunu düşündüğüm “Envelopes göstergesine dayalı ticaret sisteminin planı” bölümünde, Envelopes göstergesi stratejilerini kullanarak bir ticaret sisteminin nasıl oluşturulacağına dair bir plan üzerinde çalışacağız. Daha sonra, “Envelopes göstergesine dayalı ticaret sistemi” bölümünde, MetaTrader 5'te kullanılabilecek MQL5 dilindeki Envelopes gösterge stratejilerine dayalı bir ticaret sisteminin nasıl tasarlanacağını sizlerle paylaşacağım.
Umarım bu makale sizin için faydalı olur ve kendi ticaret sisteminizi geliştirmenize veya daha iyi ticaret sonuçlarını elde etmenize yardımcı olacak fikirler edinirsiniz.
Dikkat!Bu makaledeki tüm kodlar MQL5 ile yazılmıştır. Bu kodlar MetaTrader 5'te çalıştırılabilir. Dolayısıyla, geliştirilen uygulamaları çalıştırmak için MetaTrader 5'e ihtiyacınız vardır. Eğer henüz MetaTrader 5 terminaline sahip değilseniz, şu linkten indirebilirsiniz: https://www.metatrader5.com/en/download
Kurulumdan sonra aşağıdaki MetaTrader 5 platformu penceresi görünecektir:
Kod yazmak için MetaQuotes Language Düzenleyicisini (MetaEditor) kullanacağız. Aşağıdaki görüntüler, düzenleyiciyi açmanın farklı yollarını göstermektedir:
Veya MetaTrader 5 penceresi açıkken F4 tuşuna basabilirsiniz.
Açılan MetaEditor kod düzenleyicisi penceresi şu şekilde görünecektir:
Yeni bir dosyanın nasıl oluşturulacağı aşağıda açıklanmıştır:
- Uzman Danışman yazmak için yeni bir dosya açar
- Özel gösterge yazmak için yeni bir dosya açar
- Komut dosyası yazmak için yeni bir dosya açar
Daha fazla bilgi için bu makale serisinin ilk makalesini okuyabilirsiniz: Algoritmik Ticaret Sisteminizi Neden ve Nasıl Tasarlayacağınızı Öğrenin
Sorumluluk reddi: Bu makalenin tüm içeriği yalnızca eğitim amaçlıdır, başka herhangi bir amaca yönelik değildir. Dolayısıyla, bu makalenin içeriğine dayalı olarak gerçekleştireceğiniz her şey, yalnızca kendi sorumluluğunuzda ve riskinizde olacaktır, bu makalenin içeriği herhangi bir sonucu garanti etmemektedir.
Şimdi, ticaretimiz için nasıl faydalı olabileceğini görmek için Envelopes göstergesini inceleme yolculuğumuza başlayalım.
Envelopes göstergesinin tanımı
Envelopes göstergesi, bantlarla ticaret yapma yönteminde kullanılan araçlarından biridir ve daha önce bahsettiğim gibi, Bollinger Bands, Channels, Envelopes vb. gibi bu yöntemde kullanılan birçok araç vardır.
Basitçe ifade etmek gerekirse, Envelopes göstergesi hareketli ortalamayı belirli bir sabit yüzde mesafede çevreleyen iki banda sahiptir ve bu bantlar genellikle fiyatları da çevreler. Gösterge, trend hareketlerini filtrelemek ve yatay hareket sırasında ticaret yapmak için kullanılabilir.
Bazen trendler sırasında, yanlış kırılmalar veya testere dişi hareketleri gibi ters yönde bazı hareketlerle karşılaşırız. Bu tür hareketler yanlış bir sinyal üretebilir, ardından da fiyat önceki yöndeki hareketini devam etmeye geri dönebilir. Örneğin, fiyat hareketli ortalamayı yukarı doğru çaprazladığında, bu yukarı yönlü bir hareketin sinyali olarak işlev görür. Ancak daha sonrasında fiyat dönüp hareketli ortalamayı aşağı doğru çaprazlayabilir, yani yukarı doğru yaptığı hareketin tersi yönde devam edebilir. Bu arada, önceki makalemden, hareketli ortalamalar hakkında, onların nasıl kullanılacağı ve onlara dayalı ticaret sisteminin nasıl oluşturulacağı konusunda daha fazla bilgi edinebilirsiniz: Hareketli ortalamalara dayalı sistemler nasıl geliştirilir?
Yukarıdaki görüntüde, fiyat hareketli ortalamayı aşağıdan yukarıya doğru çaprazlıyor ve sonrasında tekrar aşağı yönlü hareketine devam ediyor (yanlış kırılma).
Bazen alıcılar ve satıcılar arasında bir denge olduğunda veya net bir trend olmadığında yatay hareket seyrederiz, ancak bu hareketten de bir şekilde faydalanmalıyız.
Yukarıdaki bahsettiğim durumlarda, Envelopes göstergesi trendler sırasındaki hareketler için bir filtre görevi görebileceğinden bize yararlı olabilir. Fiyat hareketli ortalamayı yukarı doğru çaprazladığında, fiyatın Envelopes göstergesinin üst bandının üzerine çıkmasını bekleriz.
Konuştuğumuz aynı hareket yukarıdaki görüntüde de Envelopes göstergesiyle birlikte gösterilmektedir: fiyat hareketli ortalamayı aşağıdan yukarıya doğru çaprazlıyor, ancak Envelopes göstergesinin üst bandına ulaşmıyor. Dolayısıyla, bu çaprazlamaya göre harekete geçmiyoruz ve gerçekten de fiyat tersine döndü ve tekrar aşağı yönlü hareketine devam etti.
Teknik analizin devreye girdiği yer burasıdır - en iyi sonuçları elde etmek için birleştirilebilecek birçok farklı strateji vardır.
Daha önce bahsettiğim gibi, Envelopes göstergesi fiyatları çevreleyen iki banda sahiptir, bu nedenle daha geniş aralığa sahip bantlara fiyatın ulaşma olasılığı daha düşükken, daha dar aralığa sahip bantlara fiyatın ulaşma olasılığı daha yüksektir.
Peki Envelopes göstergesi nasıl hesaplanmaktadır? Envelopes göstergesinin bantları, hareketli ortalamadan belirli bir yüzdelik uzaklıkta olacak şekilde ayarlanır. Bu yüzde, fiyat hareketine, zaman dilimine ve yatırımcının stratejisine bağlıdır.
Envelopes göstergesinin hesaplanması için gerekenler:
- Moving Average
- Envelopes’un %'si = Moving Average * %
- Envelopes’un üst bandı = Moving Average + Envelopes’un %'si
- Envelopes’un alt bandı = Moving Average - Envelopes’un %'si
Örnek bir hesaplamaya bakalım.
Varsayalım ki 14 gün için şu fiyatlara sahibiz:
- Moving Average’ı hesaplıyoruz (örneğimizde basit hareketli ortalama kullanıyoruz, ancak herhangi birini kullanabilirsiniz - bazılarını daha önceki makalemde ayrıntılı olarak açıkladım: Hareketli ortalamalara dayalı sistemler nasıl geliştirilir?
- Tercihe göre belirlenen Envelopes’un %'sini hesaplıyoruz
- Envelopes’un üst bandını hesaplıyoruz
- Envelopes’un alt bandını hesaplıyoruz
Bu hesaplama her tikte gerçekleştirilecek ve üst bandın değerleri fiyatların üzerinde, alt bandın değerleri de fiyatların altında çizilecektir.
Ancak, platformda yerleşik olarak bulunup otomatik olarak hesapladığından, göstergeyi manuel olarak hesaplamamız gerekmiyor.
Yukarıdaki görüntü, Envelopes göstergesinin parametrelerini göstermektedir:
- Hareketli ortalamanın periyodunu tanımlar
- Envelopes’un %'si
- Fiyat türü (kapanış, medyan fiyat, tipik fiyat, vb.)
- Grafikte Envelopes göstergesini kaydırma değeri
- Hareketli ortalama türü
- Envelopes’un üst bandının rengi
- Envelopes’un üst bandının çizgi stili
- Envelopes’un alt bandının rengi
- Envelopes’un alt bandının çizgi stili
Ve tüm parametreler belirlendikten sonra, aşağıdaki görüntüde gösterildiği gibi gösterge grafikte görünecektir:
Envelopes göstergesi stratejileri
Bu bölümde sizlerle bazı Envelopes göstergesi stratejilerini paylaşacağım. Bu stratejiler piyasanın durumuna veya piyasanın yönüne bağlı olarak kullanılır.
Hepimizin bildiği gibi, piyasada yükseliş trendi, düşüş trendi ve yatay hareket vardır. Belirli piyasa yönüne uygun olarak, bu piyasa hareketinden yararlanmamızı sağlayacak belirli bir strateji kullanacağız.
Envelopes göstergesi diğer araçlarla birleştirilebilir ve ilgili kombinasyona dayalı stratejiler oluşturulabilir. Bu şekilde birlikte kullanımda, sonuçlar tek bir araçla çalışmaktan daha iyi olabilir. Envelopes göstergesini örneğin fiyat hareketi modeli gibi başka bir araçla birleştirebilirsiniz: Envelopes göstergesinden sinyal geldiğinde fiyat hareketi modelinden de onay için sinyal bekleyebilirsiniz. İsteğe bağlı olarak, onay için başka bir teknik analiz göstergesi de kullanabilirsiniz. Birden fazla aracı daha doğru kararlar almak ve daha iyi sonuçlar elde etmek amacıyla birleştirmenin teknik analize dayalı ticarette harika bir yaklaşım olduğunu düşünüyorum.
Bahsedeceğim stratejileri trendde ve yatay harekette kullanılabilecek olarak ikiye ayıracağım.
- Strateji 1: Yükseliş trendi
Yükseliş trendindeki piyasalarda fiyatlar daha yüksek pikler ve daha yüksek çukurlar yapar. Şimdi ise fiyatların yükseliş trendinde Envelopes göstergesiyle nasıl ilişkide olduğunu bilmemiz gerekiyor.
Bu gösterge, belirli bir fiyat döneminin (periyodun) ortalaması olan hareketli ortalamanın yüzdesi mesafede olduğundan, yükseliş trendi sırasında fiyatlar Envelopes göstergesinin üst bandının üzerine çıkacaktır. Dolayısıyla, yükseliş trendi sırasında buradaki stratejimiz şu şekilde olacaktır:
Fiyat Envelopes’un üst bandını aşağıdan yukarıya doğru çaprazladığında alış sinyali elde ederiz, ardından fiyat Envelopes’un alt bandını yukarıdan aşağıya doğru çaprazladığında da kârı alırız.
- Fiyat > Üst bant = alış
- Fiyat < Alt bant = kârı al
- Strateji 2: Düşüş trendi
Düşüş trendindeki piyasalarda fiyatlar daha düşük dipler ve daha düşük çukurlar yapar. Şimdi ise fiyatların düşüş trendinde Envelopes göstergesiyle nasıl ilişkide olduğunu bilmemiz gerekiyor.
Düşüş trendi sırasında fiyatlar Envelopes göstergesinin alt bandının altına inecektir. Dolayısıyla, düşüş trendi sırasında buradaki stratejimiz şu şekilde olacaktır:
Fiyat Envelopes’un alt bandını yukarıdan aşağıya doğru çaprazladığında satış sinyali elde ederiz, ardından fiyat Envelopes’un üst bandını aşağıdan yukarıya doğru çaprazladığında da kârı alırız.
- Fiyat < Alt bant = satış
- Fiyat > Üst bant = kârı al
- Strateji 3: Yatay hareket:
Yatay harekette fiyatlar, net yeni pik veya dip olmaksızın belirsiz bir yanal hareketle hareket eder. Piyasada, bir tarafın diğeri üzerinde belirgin bir kontrolü olmaksızın alıcılar ve satıcılar arasında bir denge vardır. Yatay hareketi tanımlamanın başka yolları da var, ancak bu hareket tipinin yukarı ve aşağı trend dışındaki herhangi bir hareket olduğunu bilmek bence yeterli. Şimdi ise fiyatların yatay harekette Envelopes göstergesiyle nasıl ilişkide olduğunu bilmemiz gerekiyor.
Yatay hareket sırasında fiyatlar, Envelopes göstergesinin alt ve üst bantları arasında hareket edecektir. Dolayısıyla, yatay hareket sırasında buradaki stratejimiz şu şekilde olacaktır:
Fiyat Envelopes’un alt bandına dokunduğunda alış sinyali elde ederiz, ardından fiyat Envelopes’un üst bandına dokunduğunda da kârı alırız. Fiyat Envelopes’un üst bandına dokunduğunda satış sinyali elde ederiz, ardından fiyat Envelopes’un alt bandına dokunduğunda da kârı alırız.
- Fiyat = Alt bant = alış
- Fiyat = Üst bant = kârı al
- Fiyat = Üst bant = satış
- Fiyat = Alt bant = kârı al
Bu stratejilerin, göstergenin olası kullanımlarını göstermek için yalnızca eğitim amaçlı sunulduğunu lütfen unutmayın. Elbette, stratejilerin kullanımdan önce daha da iyileştirilmesi ve geliştirilmesi gerekiyor. Okuduğunuz veya öğrendiğiniz her stratejiyi her zaman iyice test ettiğinizden emin olun. Özellikle stratejiler eğitim amaçlı sunuluyorsa, onları asla test etmeden ve sonuçları kontrol etmeden kullanmayın.
Envelopes göstergesine dayalı ticaret sisteminin planı
Bu bölümde, tam olarak programdan ne istediğimizi ve programın ne yapması gerektiğini belirlemek amacıyla söz konusu stratejilerimizi bir plan olarak tasarlayacağız. Öyleyse, başlayalım.
- Strateji 1: Yükseliş trendi
- Fiyat > Üst bant = alış
- Fiyat < Alt bant = kârı al
Dolayısıyla, bu stratejinin planı şu şekilde olacaktır:
- Strateji 2: Düşüş trendi:
- Fiyat < Alt bant = satış
- Fiyat > Üst bant = kârı al
Dolayısıyla, bu stratejinin planı şu şekilde olacaktır:
- Strateji 3: Yatay hareket:
- Fiyat = Alt bant = alış
- Fiyat = Üst bant = kârı al
- Fiyat = Üst bant = satış
- Fiyat = Alt bant = kârı al
Envelopes göstergesine dayalı ticaret sistemi
Bu bölümde, MQL5’i kullanarak bu stratejileri Uzman Danışman (EA, Expert Advisor) şeklinde nasıl kodlayabileceğinizi sizlerle paylaşacağım. Bu program, ticaret sinyallerini otomatik olarak algılayacaktır, böylece ticaretinizin gelişmesine yardımcı olacaktır. Şimdi size temel bir Envelopes Uzman Danışmanının nasıl kodlanacağını göstereceğim. Programımıza Envelopes göstergesinin üst ve alt bantlarının değerlerini grafik üzerinde yorum olarak ifade etmesi için talimatlar vererek başlayalım.
Envelopes göstergesinin üst ve alt bantlarının değerlerini grafik üzerinde yorum olarak görmemizi sağlayacak bir program tasarlayalım:
//+------------------------------------------------------------------+ //| Simple Envelopes EA.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" //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //Creating an array for price info MqlRates PriceInfo[]; //Sorting it from current data to old data ArraySetAsSeries(PriceInfo, true); //Copy prices data to array int Data = CopyRates(Symbol(), Period (), 0, Bars(Symbol(), Period()), PriceInfo); //Creating two arrays for prices of upper and lower band double UpperBandArray[]; double LowerBandArray[]; //Identify Envelopes indicator int EnvelopesIdentify = iEnvelopes(_Symbol,_Period,14,0,MODE_SMA,PRICE_CLOSE,0.100); //Copying prices data to arrays CopyBuffer(EnvelopesIdentify,0,0,1,UpperBandArray); CopyBuffer(EnvelopesIdentify,1,0,1,LowerBandArray); //Calculation for the current data double UpperBandValue=NormalizeDouble(UpperBandArray[0],6); double LowerBandValue=NormalizeDouble(LowerBandArray[0],6); //Comments on the chart with values of Band of Envelopes Comment("Envelopes Upper Band =",UpperBandValue,"\n" "Envelopes Lower Band =",LowerBandValue,"\n"); } //+------------------------------------------------------------------+
Aşağıdaki görüntü, kodu MetaTrader 5 terminalinde nasıl çalıştırabileceğinizi göstermektedir:
Ardından program grafikte görüntülenecektir:
MetaTrader 5 ticaret terminalinde kodu çalıştırdıktan sonra aşağıdaki şekildeki gibi grafiği ve üzerindeki sinyalleri göreceğiz:
Envelopes göstergesi iki banda sahiptir - alt bant ve üst bant - ve değerlerini grafikte görebiliriz.
Şimdi, yukarıda bahsettiğimiz üç stratejiyi kodlayacağız: birinci strateji yükseliş trendi sırasında alış yapmak ve sonrasında kârı almak içindir, ikinci strateji düşüş trendi sırasında satış yapmak ve sonrasında kârı almak içindir, üçüncü strateji de yatay hareket sırasında alt bantta alış yapmak ve sonrasında üst bantta kârı almak, ayrıca üst bantta satış yapmak ve sonrasında alt bantta kârı almak içindir.
- Strateji 1: Yükseliş trendi:
- Fiyat > Üst bant = alış
- Fiyat < Alt bant = kârı al
Bu stratejiyi çalıştıracak programın kodu şu şekilde olacaktır:
//+------------------------------------------------------------------+ //| Envelopes uptrend Strategy.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" //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //Creating an array for price info MqlRates PriceInfo[]; //Sorting it from current data to old data ArraySetAsSeries(PriceInfo, true); //Copy prices data to array int Data = CopyRates(Symbol(), Period (), 0, Bars(Symbol(), Period()), PriceInfo); //Creating two arrays for prices of upper and lower band double UpperBandArray[]; double LowerBandArray[]; //Identify Envelopes indicator int EnvelopesIdentify = iEnvelopes(_Symbol,_Period,14,0,MODE_SMA,PRICE_CLOSE,0.100); //Copying prices data to arrays CopyBuffer(EnvelopesIdentify,0,0,1,UpperBandArray); CopyBuffer(EnvelopesIdentify,1,0,1,LowerBandArray); //Calculation for the current data double UpperBandValue=NormalizeDouble(UpperBandArray[0],6); double LowerBandValue=NormalizeDouble(LowerBandArray[0],6); //Comment Buy signal on the chart or no signal if (PriceInfo[0].close > UpperBandValue) Comment("Envelopes Buy Signal"); if (PriceInfo[0].close < LowerBandValue) Comment("Envelopes Take Profit or Stop Loss"); } //+------------------------------------------------------------------+
Uzman Danışman kodunu MetaTrader 5 terminalinde çalıştırın:
Dosyayı grafiğe sürükleyebilir veya üzerine çift tıklayabilirsiniz. Program çalışacak ve aşağıdaki pencere açılacaktır.
Ardından program grafikte görüntülenecektir:
Yukarıdaki grafikte görebileceğimiz gibi, yükseliş trendi sırasında fiyat üst bandın üzerine çıktığında program bize alış sinyali veriyor.
Yukarıdaki grafikte görebileceğimiz gibi, fiyat alt bandın altına düştüğünde program bize kârı al sinyali veriyor.
- Strateji 2: Düşüş trendi
- Fiyat < Alt bant = satış
- Fiyat > Üst bant = kârı al
Bu stratejiyi çalıştıracak programın kodu şu şekilde olacaktır:
//+------------------------------------------------------------------+ //| Envelopes Downtrend Strategy.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" //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //Creating an array for price info MqlRates PriceInfo[]; //Sorting it from current data to old data ArraySetAsSeries(PriceInfo, true); //Copy prices data to array int Data = CopyRates(Symbol(), Period (), 0, Bars(Symbol(), Period()), PriceInfo); //Creating two arrays for prices of upper and lower band double UpperBandArray[]; double LowerBandArray[]; //Identify Envelopes indicator int EnvelopesIdentify = iEnvelopes(_Symbol,_Period,14,0,MODE_SMA,PRICE_CLOSE,0.100); //Copying prices data to arrays CopyBuffer(EnvelopesIdentify,0,0,1,UpperBandArray); CopyBuffer(EnvelopesIdentify,1,0,1,LowerBandArray); //Calculation for the current data double UpperBandValue=NormalizeDouble(UpperBandArray[0],6); double LowerBandValue=NormalizeDouble(LowerBandArray[0],6); //Comment Buy signal on the chart or no signal if (PriceInfo[0].close < LowerBandValue) Comment("Envelopes Short Signal"); if (PriceInfo[0].close > UpperBandValue) Comment("Envelopes Take Profit or Stop Loss"); } //+------------------------------------------------------------------+
Uzman Danışman kodunu MetaTrader 5 terminalinde çalıştırın:
Dosyayı grafiğe sürükleyebilir veya üzerine çift tıklayabilirsiniz. Program çalışacak ve aşağıdaki pencere açılacaktır.
Ardından program grafikte görüntülenecektir:
Yukarıdaki grafikte görebileceğimiz gibi, fiyat düşüş trendi sırasında alt bandın altına indiğinde program bize satış sinyali veriyor.
Yukarıdaki grafikte görebileceğimiz gibi, fiyat düşüş trendi sırasında üst bandın üzerine çıktığında program bize kârı al sinyali veriyor.
- Strateji 3: Yatay hareket
- Fiyat = Alt bant = alış
- Fiyat = Üst bant = kârı al
//+------------------------------------------------------------------+ //| Envelopes Sideways Buy Strategy.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" //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //Creating an array for price info MqlRates PriceInfo[]; //Sorting it from current data to old data ArraySetAsSeries(PriceInfo, true); //Copy prices data to array int Data = CopyRates(Symbol(), Period (), 0, Bars(Symbol(), Period()), PriceInfo); //Creating two arrays for prices of upper and lower band double UpperBandArray[]; double LowerBandArray[]; //Identify Envelopes indicator int EnvelopesIdentify = iEnvelopes(_Symbol,_Period,14,0,MODE_SMA,PRICE_CLOSE,0.150); //Copying prices data to arrays CopyBuffer(EnvelopesIdentify,0,0,1,UpperBandArray); CopyBuffer(EnvelopesIdentify,1,0,1,LowerBandArray); //Calculation for the current data double UpperBandValue=NormalizeDouble(UpperBandArray[0],6); double LowerBandValue=NormalizeDouble(LowerBandArray[0],6); //Comment Buy signal on the chart or no signal if (PriceInfo[0].close <= LowerBandValue) Comment("Envelopes Buy Signal"); if (PriceInfo[0].close >= UpperBandValue) Comment("Envelopes Take Profit"); if (PriceInfo[0].close > LowerBandValue && PriceInfo[0].close < UpperBandValue) Comment("No Signal"); } //+------------------------------------------------------------------+Aşağıdaki görüntü, kodu MetaTrader 5 terminalinde nasıl çalıştırabileceğinizi göstermektedir:
Ardından program grafikte görüntülenecektir:
Yukarıdaki grafikte görebileceğimiz gibi, fiyat yatay hareket sırasında alt banda dokunduğunda program bize alış sinyali veriyor.
Yukarıdaki grafikte görebileceğimiz gibi, fiyat yatay hareket sırasında üst banda dokunduğunda program bize kârı al sinyali verir
- Fiyat = Üst bant = satış
- Fiyat = Alt bant = kârı al
Bu stratejiyi çalıştıracak programın kodu şu şekilde olacaktır:
//+------------------------------------------------------------------+ //| Envelopes Sideways Short Strategy.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" //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //Creating an array for price info MqlRates PriceInfo[]; //Sorting it from current data to old data ArraySetAsSeries(PriceInfo, true); //Copy prices data to array int Data = CopyRates(Symbol(), Period (), 0, Bars(Symbol(), Period()), PriceInfo); //Creating two arrays for prices of upper and lower band double UpperBandArray[]; double LowerBandArray[]; //Identify Envelopes indicator int EnvelopesIdentify = iEnvelopes(_Symbol,_Period,14,0,MODE_SMA,PRICE_CLOSE,0.150); //Copying prices data to arrays CopyBuffer(EnvelopesIdentify,0,0,1,UpperBandArray); CopyBuffer(EnvelopesIdentify,1,0,1,LowerBandArray); //Calculation for the current data double UpperBandValue=NormalizeDouble(UpperBandArray[0],6); double LowerBandValue=NormalizeDouble(LowerBandArray[0],6); //Comment Buy signal on the chart or no signal if (PriceInfo[0].close >= UpperBandValue) Comment("Envelopes Short Signal"); if (PriceInfo[0].close <= LowerBandValue) Comment("Envelopes Take Profit"); if (PriceInfo[0].close > LowerBandValue && PriceInfo[0].close < UpperBandValue) Comment("No Signal"); } //+------------------------------------------------------------------+Aşağıdaki görüntü, kodu MetaTrader 5 terminalinde nasıl çalıştırabileceğinizi göstermektedir:
Ardından program grafikte görüntülenecektir:
Yukarıdaki grafikte görebileceğimiz gibi, fiyat yatay hareket sırasında üst bant ile alt bant arasında hareket ettiği için program bize sinyal yok mesajı veriyor.
Yukarıdaki grafikte görebileceğimiz gibi, fiyat yatay hareket sırasında üst banda dokunduğunda program bize satış sinyali veriyor.
Yukarıdaki grafikte görebileceğimiz gibi, fiyat yatay hareket ederken alt banda dokunduğunda program bize kârı al sinyali veriyor.
Sonuç
Bu makalede, Envelopes göstergesi aracılığıyla bantlarla ticaret yapma konseptini ele aldık. Bantlarla ticaret yapmanın faydalarından bahsettik ve Envelopes göstergesinin trendler ve yatay hareket sırasında nasıl kullanılabileceğini inceledik.
Envelopes göstergesinin nasıl hesaplandığını da gördük, çünkü kullandığımız aracın nasıl işlediğini anlamak her zaman iyidir. Envelopes göstergesi, ticaret kararlarımızı ve sonuçlarımızı nasıl iyileştirebileceğimiz konusunda bize yeni bilgiler ve fikirler verebilecek göstergelerden biridir.
Bu makalede ayrıca, göstergenin farklı piyasa koşullarında kullanılmasına olanak sağlayan basit bir strateji düzenledik: yükseliş trendinde, düşüş trendinde ve yatay harekette. Ek olarak, bu strateji doğrultusunda bir ticaret sistemi planının nasıl oluşturulacağını da inceledik - böyle bir plan, seçilen strateji çerçevesinde neyin ve nasıl programlanacağını belirlemeye yardımcı olmaktadır.
Makalede Envelopes göstergesine dayalı stratejilerin uygulanmasına ilişkin MQL5 dilindeki kodlar da yer almaktadır. Ve tekrar belirtmek istiyorum ki, bu makalenin asıl amacı, programlamanın finansal piyasalarda işlem yaparken bize nasıl yardımcı olabileceğini göstermektir.
Konuyu daha iyi anlamak adına makalede anlatılan kodları kendiniz yazıp çalıştırmanızı tavsiye ederim. Umarım makale sizin için faydalı olur ve ticaret hedeflerinize ulaşmanıza yardım sağlar.
MetaQuotes Ltd tarafından İngilizceden çevrilmiştir.
Orijinal makale: https://www.mql5.com/en/articles/10478





- Ü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