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

ATR göstergesine dayalı bir ticaret sistemi nasıl geliştirilir?

MetaTrader 5Ticaret | 7 Eylül 2022, 09:38
445 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Giriş

Bu yeni makalemizde ticaretteki başka bir kavramdan bahsedeceğiz. Onun nasıl ölçüleceğini ve nasıl kullanılacağını öğrenmek ticaretimizde çok faydalı olacaktır. Bu kavram volatilitedir. Volatiliteyi ölçmek için birçok araç mevcuttur ve bunlar arasında en popüler olanlardan biri ise Average True Range (ATR) teknik göstergesidir. Volatilitenin nasıl ve ne yönde hareket ettiğini bilmek oyunun gidişatını önemli ölçüde değiştirebilir, bu makalede tartışacağımız şey de budur. Böylece volatilite, ticaret kararlarımızı verirken dikkate alacağımız en önemli faktörlerden, dayanak noktalarından biri haline gelecektir.

ATR göstergesini derinlemesine incelemek adına farklı konuları gözden geçireceğiz. Diğer makalelerimi okuduysanız, muhtemelen benim yaklaşım tarzımın işin özüne, köklerine inmek olduğunu çoktan biliyorsunuzdur. Aşağıdaki konular, bu harika araç hakkında bu makalede öğreneceğimiz her şeyi kapsamaktadır:

  1. MetaEditor'da MQL5 kodu yazma
  2. ATR göstergesinin tanımı
  3. ATR göstergesi stratejileri
  4. ATR göstergesine dayalı ticaret sisteminin planı
  5. ATR göstergesine dayalı ticaret sistemi
  6. Sonuç

Bu konuları okuduktan sonra, ATR göstergesini tam olarak anlayacağınızı ve ticarette nasıl kullanılacağını öğreneceğinizi umuyorum. İlk olarak, “ATR göstergesinin tanımı” bölümünde, ATR göstergesinin ne olduğunu, neyi ölçtüğünü ve nasıl hesaplandığını tartışacağız: hesaplama formülünü detaylı olarak analiz edeceğiz ve hesaplamayı gerçek piyasa verilerini kullanarak bir örnek üzerinde kendimiz uygulayacağız. Devamında, ”ATR göstergesi stratejileri” bölümünde, ATR göstergesini daha iyi anlamak amacıyla ona dayalı bazı basit stratejileri ele alacağız. Ardından, “ATR göstergesine dayalı ticaret sisteminin planı” bölümünde, ele aldığımız stratejiler için bir plan hazırlayacağız. Bu plan, programın nasıl çalışması gerektiğini adım adım ifade ederek görselleştireceği için ticaret sistemini oluşturma sürecinde bize çok fayda sağlayacaktır. Ve son olarak da, “ATR göstergesine dayalı ticaret sistemi” bölümünde, ele aldığımız stratejilere dayalı olarak hazırladığımız plan çerçevesinde çalışacak bir ticaret sisteminin MQL5 programlama dilini kullanarak nasıl kodlanacağını öğreneceğiz. Böylece elde edeceğimiz program MetaTrader 5 işlem platformunda çalışacaktır.

Strateji kodunu MQL5'te yazmak için MetaTrader 5 işlem platformunda yerleşik olan MetaQuotes Language Düzenleyicisini (MetaEditor) kullanacağız. Eğer henüz platforma sahip değilseniz, MetaTrader 5'i şu linkten indirebilirsiniz: https://www.metatrader5.com/en/download

Kurulumdan sonra MetaTrader 5 platformu penceresi aşağıdaki gibi görünecektir:

MT5 platformu

MetaTrader 5 terminali açıkken F4 tuşuna basarak MetaEditor'ı açabilirsiniz. Düzenleyiciyi ayrıca aşağıda gösterildiği gibi MetaTrader 5 terminalinin araç çubuğundaki IDE düğmesine tıklayarak da açabilirsiniz:

Metaeditor açılışı

Bir başka yol ise MetaTrader 5 terminalindeki Araçlar sekmesinden MetaQuotes Language Düzenleyicisini seçmektir:

Metaeditor açılışı 

Açılan MetaEditor kod düzenleyicisi penceresi şu şekilde görünecektir:

MetaEditor penceresi

Pratik yapma, öğrenmenin çok önemli bir parçası olduğu için, makalede sunulan her bir kod parçası üzerinde bağımsız olarak çalışmanızı tavsiye ediyorum.

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.

Ticaret becerilerinizi geliştirmeye ve ticaret sonuçlarınızı iyileştirmeye yardımcı olabilecek bu yeni aracı öğrenmeye hazır mısınız? Hadi başlayalım.


ATR göstergesinin tanımı

Bu bölümde, Average True Range (ATR) göstergesine ayrıntılı olarak göz atacağız: neyi ölçtüğünü ve nasıl hesaplandığını inceleyeceğiz ve ayrıca onu nasıl kullanabileceğimiz ve ondan nasıl yararlanabileceğimiz hakkında daha fazla fikir edinmek için anlayışımızı derinleştirmek adına bazı örneklere de değineceğiz.

Average True Range (ATR) teknik göstergesi Welles Wilder tarafından geliştirilmiştir. Bu gösterge, belirli bir periyodun fiyat aralığını analiz ederek piyasa volatilitesini ölçer. ATR, fiyat veya piyasa yönünü göstermez, yalnızca volatilite ölçümünü sağlar.

Şimdi, piyasa volatilitesini ölçen ATR göstergesinin nasıl hesaplandığına bakalım.

İlk olarak, aşağıdakilerin en büyük değeri olacak olan gerçek aralığı (True Range, TR) hesaplamamız gerekiyor:

  • Mevcut yüksek ve düşük arasındaki fark.
  • Mevcut yüksek ve önceki kapanış arasındaki fark (mutlak değer).
  • Mevcut düşük ve önceki kapanış arasındaki fark (mutlak değer).

Dolayısıyla, bu adımda, hesaplama yapabilmek için yüksek, düşük ve kapanış fiyatları verilerine ihtiyacımız var. Ardından da, ortalama gerçek aralığı (Average True Range, ATR) hesaplayacağız.

Şimdi gerçek piyasa verilerine sahip bir örnek üzerinde ATR’ı hesaplayalım.

Gün Yüksek Düşük Kapanış
17 Mart 2022 1.1138 1.1008 1.1089
18 Mart 2022 1.112 1.1003 1.1055
21 Mart 2022 1.107 1.101 1.1014
22 Mart 2022 1.1047 1.096 1.1027
23 Mart 2022 1.1044 1.0963 1.1004
24 Mart 2022 1.1014 1.0965 1.0996
25 Mart 2022 1.1039 1.0979 1.0981
28 Mart 2022 1.1 1.0944 1.0978
29 Mart 2022 1.1137 1.097 1.1085
30 Mart 2022 1.1171 1.1083 1.1156
31 Mart 2022 1.1185 1.1061 1.1065
01 Nis 2022 1.1077 1.1027 1.1053
04 Nis 2022 1.1056 1.096 1.097
05 Nis 2022 1.099 1.0899 1.0903
06 Nis 2022 1.0939 1.0874 1.0893
07 Nis 2022 1.0939 1.0864 1.0878
08 Nis 2022 1.0892 1.0836 1.0876
11 Nis 2022 1.0951 1.0872 1.0883
12 Nis 2022 1.0905 1.0821 1.0826
13 Nis 2022 1.0896 1.0809 1.0885
14 Nis 2022 1.0925 1.0757 1.0827
15 Nis 2022 1.0832 1.0796 1.0806
18 Nis 2022 1.0822 1.0769 1.078
19 Nis 2022 1.0815 1.0761 1.0786
20 Nis 2022 1.0868 1.0783 1.085
21 Nis 2022 1.0937 1.0824 1.0836
22 Nis 2022 1.0853 1.077 1.0794
25 Nis 2022 1.0842 1.0697 1.0711
26 Nis 2022 1.0738 1.0635 1.0643
27 Nis 2022 1.0655 1.0586 1.0602

Şimdi ATR'ı hesaplamak adına aşağıdaki adımları izleyeceğiz.

1- TR’ları hesapla (TR değeri, aşağıdakilerin en büyük olanı olacaktır):

  • Mevcut yüksek - Mevcut düşük,

Mevcut yüksek - Mevcut düşük

  • Mevcut yüksek - Önceki kapanış (farkın mutlak değeri alınır),

Mevcut yüksek - Önceki kapanış (farkın mutlak değeri alınır)

  • Mevcut düşük - Önceki kapanış (farkın mutlak değeri alınır),

Mevcut düşük - Önceki kapanış (farkın mutlak değeri alınır)

Her bir periyot için hesapladığımız üç değerin en büyük olanlarını bulalım - bu değerler TR’lar olacaktır,

TR’lar

2- 14 periyot için ATR’ı hesapla (14 periyot boyunca TR’lar gereklidir),

ATR

Yukarıdaki adımlarla, Average True Range’i (ATR) manuel olarak hesaplayabiliriz. Neyse ki bugün bunu yapmak zorunda değiliz çünkü MetaTrader 5 işlem terminalinde yerleşik kullanıma hazır göstergeye sahibiz. Tek yapmamız gereken, terminalinde bulunan göstergeler listesinden onu seçmektir. Nasıl yapılacağı aşağıda açıklanmaktadır.

Terminalden Ekle sekmesini tıklayın, ardından Göstergeler --> Osilatörler --> Average True Range'i seçin:

ATR göstergesini ekleme

Göstergeyi seçildikten sonra, ATR parametreleri için aşağıdaki pencere açılacaktır:

ATR göstergesi parametreleri

1 - Gösterge için istenen hesaplama periyodu.

Bu değer, enstrümana ve zaman dilimine bağlı olarak farklılık gösterebilir. Bu tamamen her bir enstrümanın, zaman diliminin volatilitesi ile ilgilidir. Daha uzun hesaplama periyoduyla, elde edilen ortalama değerlerin hareketi daha yumuşak olacağından, daha doğru sinyaller alınabilir.

2 - ATR çizgisinin rengi.

3 - ATR çizgisinin stili.

4 - ATR çizgisinin kalınlığı.

ATR parametrelerini ayarladıktan sonra gösterge grafiğe eklenecek ve şöyle görünecektir:

Grafikte ATR göstergesi

Yukarıdaki görüntü, göstergenin ek bir grafik penceresinde başlatıldığını göstermektedir - bu pencerede, 14 periyotluk ATR göstergesi, EURUSD enstrümanının H1 zaman dilimindeki volatilitesini ölçen bir çizgi ile temsil edilmektedir.

Daha önce de belirttiğim gibi ATR volatiliteyi ölçer. Buna göre, ATR penceresindeki değerleri analiz edelim: ATR değeri ne kadar düşükse, enstrümanın volatilitesi de o kadar düşüktür. Ve tam tersi şekilde, ATR değeri ne kadar yüksekse, enstrümanın volatilitesi de o kadar yüksektir.

Aşağıda, göstergenin nasıl yorumlanacağı gösterilmektedir:

ATR göstergesini yorumlama

Dolayısıyla, ATR göstergesi düşük değerler kaydettiğinde, bu düşük volatiliteyi gösterirken, tam tersi şekilde, ATR göstergesi yüksek değerler kaydettiğinde de, bu yüksek volatiliteyi gösterir.

Hesaplanmasından da anlaşılacağı gibi, göstergenin kendisi ticaret sinyalleri üretmek için uygun değildir (çünkü piyasanın yönünü dikkate almaz). Yalnızca aralığın boyutunu dikkate alır, ancak güzelliği de buradadır - uygun pozisyon büyüklüğünü, zararı durdur ve kârı al seviyelerini belirlemeye yardımcı olabilecek en iyi araçlardan biridir.

ATR'ın sadece volatiliteyi ölçtüğünün, piyasanın yönünü dikkate almadığının tekrar üzerini çizmek istiyorum. Bu yüzden kafanız karışmasın: ATR çizgisi yukarı hareket ederken, yükseliş trendi olduğu veya bunun tersi olarak, ATR çizgisi aşağı hareket ederken de, düşüş trendi olduğu anlamına gelmez. ADX göstergesi gibi diğer araçlar, trendin varlığını veya yokluğunu belirleyebilir.

Trendin tanımını bu serinin bir önceki makalesinde bulabilirsiniz.

Aşağıdaki görüntü, ATR'ın trendi ifade etmediğini gösteren bir örnektir:

ATR trendi ifade etmez

Gördüğümüz gibi, fiyat aşağı hareket ederken gösterge yukarı hareket ediyor ve fiyat yukarı hareket ederken de ATR çizgisi aşağı hareket ediyor. Bu nedenle şunu hatırlamak çok önemlidir: ATR volatiliteyi ölçer, piyasanın yönünü göstermez.


ATR göstergesi stratejileri

Bu bölümde, ATR göstergesine dayalı kullanılabilecek bazı basit stratejileri ele alacağız.

1- ATR gücü:

Bu stratejiyle ATR'ın mevcut değerini belirli değerlerle karşılaştıracağız ve ATR'ın güçlü olup olmadığını belirleyeceğiz. Bu spesifik değerlerin farklı enstrümanlar ve farklı zaman dilimleri için farklılık gösterebileceğini belirtmek istiyorum. Böylece, ATR göstergesinin değerini kontrol edeceğiz ve gücünü değerine göre belirleyeceğiz. ATR'ın mevcut değeri 0,0024'ten büyükse, bu, ATR'ın güçlü olduğu, mevcut değer 0,0014'ten küçükse, bu da ATR'ın zayıf olduğu anlamına gelir. ATR’ın mevcut değeri 0,0014 ile 0,0024 arasında ise göstergenin nötr olduğu ve sadece mevcut değerin geri döndürüleceği anlamına gelir.

  • Mevcut ATR değeri > 0.0024 = ATR güçlü.
  • Mevcut ATR değeri < 0.0014 = ATR zayıf.
  • Mevcut ATR değeri > 0.0014 ve < 0.0024 = ATR nötr, mevcut ATR değeri geri döndürülür.


2 - ATR hareketi:

Bu stratejiye uygun olarak, mevcut ATR değerini önceki ATR değeriyle karşılaştıracağız ve ardından ATR’ın hareketi hakkında sonuç çıkaracağız: mevcut ATR değeri önceki ATR değerinden daha büyük olduğunda, bu, ATR çizgisi yükseliyor anlamına gelir, mevcut ATR değeri önceki ATR değerinden daha küçük olduğunda da, bu, ATR çizgisi düşüyor anlamına gelir.

  • Mevcut ATR değeri > Önceki ATR değeri = ATR yükseliyor.
  • Mevcut ATR değeri < Önceki ATR değeri = ATR düşüyor.


3 - SL ve TP seviyeleri:

Bu stratejiyle, mevcut ATR değerini kullanan belirli hesaplamalar sonucunda, pozisyonlar için dinamik zararı durdur ve kârı al seviyeleri belirleyeceğiz.

Alış pozisyonları için, grafik üzerinde şunlar yorum olarak görüntülenecektir:

  • Mevcut alış (ask) fiyatı.
  • Mevcut satış (bid) fiyatını gösteren yeni satır.
  • Mevcut ATR değerini gösteren yeni satır.
  • Belirli bir hesaplamaya göre alış pozisyonları için zararı durdur değerini gösteren yeni satır.
  • Belirli bir hesaplamaya göre alış pozisyonları için kârı al değerini gösteren yeni satır.

Satış pozisyonları için, grafik üzerinde şunlar yorum olarak görüntülenecektir:

  • Mevcut alış (ask) fiyatı.
  • Mevcut satış (bid) fiyatını gösteren yeni satır.
  • Mevcut ATR değerini gösteren yeni satır.
  • Belirli bir hesaplamaya göre satış pozisyonları için zararı durdur değerini gösteren yeni satır.
  • Belirli bir hesaplamaya göre satış pozisyonları için kârı al değerini gösteren yeni satır.

Elbette, ATR göstergesine dayalı daha birçok gelişmiş strateji vardır, ancak biz burada sadece göstergenin ana fikrini anlamamızı sağlayacak ve böylece ticaret sonuçlarımızı geliştirmemize yardımcı olabilecek bazı basit stratejileri ele alıyoruz.


ATR göstergesine dayalı ticaret sisteminin planı

Bu bölümde, yukarıda ele aldığımız üç strateji için bir ticaret sistemi oluşturmak adına nelere ihtiyacımız olduğunu adım adım ifade edecek ayrıntılı bir plan hazırlayacağız. Stratejilerin planına geçmeden önce, ilk olarak, mevcut ATR değerini grafik üzerinde yorum olarak gösterecek basit bir programı oluşturmak adına gerekli adımları içerecek bir plan hazırlayarak başlayalım. Bu, stratejilerin planını hazırlarken bize yardımcı olacaktır. Bu temel plan aşağıda gösterilmektedir:

Temel plan

1- ATR gücü:

  • Mevcut ATR değeri > 0.0024 = ATR güçlü.
  • Mevcut ATR değeri < 0.0014 = ATR zayıf.
  • Mevcut ATR değeri > 0.0014 ve < 0.0024 = ATR nötr, mevcut ATR değeri geri döndürülür.

Program, mevcut ATR değerini 0.0024 ile karşılaştırmalıdır. Eğer mevcut ATR değeri bu değerden büyükse, bu, ATR’ın güçlü olduğu anlamına gelir. Eğer 0,0024'ten büyük değilse, program bu kez mevcut ATR değerini 0,0014 ile karşılaştırmalı ve bu değerden küçük olup olmadığını kontrol etmelidir. Eğer küçükse, bu da ATR'ın zayıf olduğu anlamına gelir. Eğer mevcut ATR değeri bu karşılaştırmada 0,0014'ten küçük değilse, mevcut ATR değerinin 0,0014 ila 0,0024 aralığında olduğu anlaşılır ve bu da göstergenin nötr olduğu anlamına gelir. Bu durumda da program sadece mevcut ATR değerini göstermelidir.

ATR gücü stratejisinin planı aşağıda gösterilmektedir:

ATR gücü planı

2 - ATR hareketi:

  • Mevcut ATR değeri > Önceki ATR değeri = ATR yükseliyor.
  • Mevcut ATR değeri < Önceki ATR değeri = ATR düşüyor.

Bu stratejide Uzman Danışman mevcut ATR değerini önceki ATR değeriyle karşılaştırmalı ve böylece ATR’ın hareketi hakkında sonuca varmalıdır: mevcut ATR değeri önceki ATR değerinden büyükse, bu, ATR yükseliyor anlamına gelir; mevcut ATR değeri önceki ATR değerinden küçükse, bu da ATR düşüyor anlamına gelir.

ATR hareketi stratejisinin planı aşağıda gösterilmektedir:

ATR hareketi planı

3 - SL ve TP seviyeleri:

Bu stratejide program pozisyon yönleri için uygun hesaplamaları yapmalı ve

her iki pozisyon yönü için de aşağıdaki değerleri grafik üzerinde yorum olarak görüntülemelidir:

  • Mevcut alış (ask) fiyatı.
  • Mevcut satış (bid) fiyatını gösteren yeni satır.
  • Mevcut ATR değerini gösteren yeni satır.
  • Zararı durdur değerini gösteren yeni satır.
  • Kârı al değerini gösteren yeni satır.


SL ve TP seviyeleri stratejisinin planı aşağıda gösterilmektedir:

SL ve TP seviyeleri planı

ATR göstergesine dayalı ticaret sistemi

Son olarak, bu bölümde ele aldığımız stratejilerin hazırladığımız planları çerçevesinde kodlarını yazacağız ve onlara dayalı bir ticaret sistemi oluşturacağız. Öncelikle, mevcut ATR değerini otomatik olarak grafikte yorum olarak gösterecek Uzman Danışmanın kodunu yazarak başlayalım.

Bu Uzman Danışmanın kodunu aşağıdaki adımlarla yazabiliriz:

  • double fonksiyonunu kullanarak bir fiyat dizisi oluşturuyoruz:
double PriceArray[];
  • ArraySetAsSeries fonksiyonunu kullanarak verileri sıralıyoruz:
ArraySetAsSeries(PriceArray,true);
  • ATR'ı iATR ve int (geri dönüş değeri için) fonksiyonunu kullanarak tanımlıyoruz:
int ATRDef=iATR(_Symbol,_Period,14);
  • CopyBuffer fonksiyonunu kullanarak, tanımladığımız ATR göstergesine göre verileri dolduruyoruz:
CopyBuffer(ATRDef,0,0,3,PriceArray);
  • Mevcut ATR değerini, NormalizeDouble fonksiyonuyla ondalık basamak hassasiyeti ayarını yaparak, double tipinde alıyoruz:
double ATRValue=NormalizeDouble(PriceArray[0],5);
  • Mevcut ATR değerini grafik üzerinde yorum olarak gösteriyoruz:
Comment("ATR Value = ",ATRValue);

Kolayca kopyalayıp yapıştırmak veya tek bir blok halinde görmek istiyorsanız kodun tamamı aşağıdadır:

//+------------------------------------------------------------------+
//|                                                   Simple ATR.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()
  {
   //creating price array
   double PriceArray[];
   
   //Sorting data
   ArraySetAsSeries(PriceArray,true);

   //define ATR
   int ATRDef=iATR(_Symbol,_Period,14);
   
   
   //define data and store result
   CopyBuffer(ATRDef,0,0,3,PriceArray);
   
   //get value of current data
   double ATRValue=NormalizeDouble(PriceArray[0],5);
   
   //comment on the chart
   Comment("ATR Value = ",ATRValue);
  }
//+------------------------------------------------------------------+

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

Kılavuz - Simple ATR

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

Simple ATR penceresi

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

Grafiğe eklenmiş Simple ATR

Böylece, gösterge mevcut ATR değerini grafik üzerinde yorum olarak gösterecektir:

Grafikte mevcut ATR değeri

Şimdi, ele aldığımız stratejiler için ticaret sistemi oluşturmaya başlayalım.

1- ATR gücü:

  • Mevcut ATR değeri > 0.0024 = ATR güçlü. 
  • Mevcut ATR değeri < 0.0014 = ATR zayıf.
  • Mevcut ATR değeri > 0.0014 ve < 0.0024 = ATR nötr, mevcut ATR değeri geri döndürülür.

Bu stratejiye dayalı Uzman Danışmanın kodu şu şekilde görünecektir:

//+------------------------------------------------------------------+
//|                             Simple ATR System - ATR strength.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()
  {
   //creating price array
   double PriceArray[];
   
   
   //Sorting data
   ArraySetAsSeries(PriceArray,true);
   
   //define ATR
   int ATRDef=iATR(_Symbol,_Period,14);   
   
   //define data and store result
   CopyBuffer(ATRDef,0,0,3,PriceArray);
   
   //get value of current data
   double ATRValue=NormalizeDouble(PriceArray[0],5);
   
   //comment on the chart with ATR strength as per its value
   if(ATRValue>0.0024)
   Comment("Strong ATR","\n","ATR Value = ",ATRValue);
   
   if(ATRValue<0.0014)
   Comment("Weak ATR","\n","ATR Value = ",ATRValue);
   
   if((ATRValue>0.0014)&&(ATRValue<0.0024))
   Comment("ATR Value = ",ATRValue);
  }
//+------------------------------------------------------------------+

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

  • Mevcut ATR değeri > 0,0024 ise ilgili yorum görüntülenir:
   if(ATRValue>0.0024)
   Comment("Strong ATR","\n","ATR Value = ",ATRValue);
  • Mevcut ATR değeri < 0,0014 ise ilgili yorum görüntülenir:
   if(ATRValue<0.0014)
   Comment("Weak ATR","\n","ATR Value = ",ATRValue);
  • Mevcut ATR değeri > 0.0014 ve < 0.0024 ise ilgili yorum görüntülenir:
   if((ATRValue>0.0014)&&(ATRValue<0.0024))
   Comment("ATR Value = ",ATRValue);

Programı yazıp derledikten sonra onu Kılavuz penceresinden bulabiliriz:

Kılavuz - Simple ATR System - ATR strength

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

Simple ATR System - ATR strength penceresi

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

Grafiğe eklenmiş Simple ATR System - ATR strength

Devamında program onun için belirlediğimiz koşullara uygun olarak yorumları gösterecektir:

ATR güçlü koşulu için Strong ATR ve alt satırda mevcut ATR değeri:

Simple ATR System - ATR strength - ATR güçlü

ATR zayıf koşulu için Weak ATR ve alt satırda mevcut ATR değeri:

Simple ATR System - ATR strength - ATR zayıf

ATR nötr koşulu için mevcut ATR değeri:

Simple ATR System - ATR strength - ATR nötr

2 - ATR hareketi: 

  • Mevcut ATR değeri > Önceki ATR değeri = ATR yükseliyor.
  • Mevcut ATR değeri < Önceki ATR değeri = ATR düşüyor.

Bu stratejiye dayalı Uzman Danışmanın kodu şu şekilde görünecektir:

//+------------------------------------------------------------------+
//|                             Simple ATR System - ATR 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()
  {
   //creating arrays
   double PriceArray0[];
   double PriceArray1[];
   
   //sort price array from current data
   ArraySetAsSeries(PriceArray0,true);
   ArraySetAsSeries(PriceArray1,true);
   
   //define ATR
   int ATRDef=iATR(_Symbol,_Period,14); 
   
   //define data and store result
   CopyBuffer(ATRDef,0,0,3,PriceArray0);      
   CopyBuffer(ATRDef,0,0,3,PriceArray1);
   
   //get value of current data
   double ATRValue=NormalizeDouble(PriceArray0[0],5);
   double PreATRValue=NormalizeDouble(PriceArray1[1],5);

   if(ATRValue>PreATRValue)
   Comment("ATR is UP","\n","ATR Value = ",ATRValue,"\n","ATR Previous Value = ",PreATRValue);
   
   if(ATRValue<PreATRValue)
   Comment("ATR is Down","\n","ATR Value = ",ATRValue,"\n","ATR Previous Value = ",PreATRValue);
      
  }
//+------------------------------------------------------------------+


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

  • Burada iki fiyat dizisi oluşturuyoruz (mevcut ATR değeri (PriceArray0), önceki ATR değeri (PriceArray1)):
   double PriceArray0[];
   double PriceArray1[];
  • İki fiyat dizisini mevcut veriden sıralıyoruz:
   ArraySetAsSeries(PriceArray0,true);
   ArraySetAsSeries(PriceArray1,true);
  • İki dizi için verileri dolduruyoruz:
   CopyBuffer(ATRDef,0,0,3,PriceArray0);      
   CopyBuffer(ATRDef,0,0,3,PriceArray1);
  • Mevcut ve önceki ATR değerini alıyoruz:
   double ATRValue=NormalizeDouble(PriceArray0[0],5);
   double PreATRValue=NormalizeDouble(PriceArray1[1],5);
  • Mevcut ATR değerini önceki ATR değeriyle karşılaştırarak sonuca göre stratejinin koşullarına bağlı olarak grafik üzerinde ilgili yorumu görüntülüyoruz:
    • Mevcut ATR değeri > Önceki ATR değeri ise ilgili yorum görüntülenir:
   if(ATRValue>PreATRValue)
   Comment("ATR is UP","\n","ATR Value = ",ATRValue,"\n","ATR Previous Value = ",PreATRValue);
    • Mevcut ATR değeri < Önceki ATR değeri ise ilgili yorum görüntülenir:
   if(ATRValue<PreATRValue)
   Comment("ATR is Down","\n","ATR Value = ",ATRValue,"\n","ATR Previous Value = ",PreATRValue);
Programı yazıp derledikten sonra onu Kılavuz penceresinden bulabiliriz:

Kılavuz - Simple ATR System - ATR movement

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

Simple ATR System - ATR movement penceresi

"Algoritmik ticarete izin ver" seçeneğini etkinleştirip Tamama tıkladıktan sonra, program aşağıdaki gibi grafiğe eklenecektir:

Grafiğe eklenmiş Simple ATR System - ATR movement

Devamında program onun için belirlediğimiz koşullara uygun olarak yorumları gösterecektir:

ATR yükselirken:

Simple ATR System - ATR movement - ATR yükseliyor

ATR düşerken:

Simple ATR System - ATR movement - ATR düşüyor


3 - SL ve TP seviyeleri:

Alış pozisyonları için, grafik üzerinde şunlar yorum olarak görüntülenecektir: 

  • Mevcut alış (ask) fiyatı.
  • Mevcut satış (bid) fiyatını gösteren yeni satır.
  • Mevcut ATR değerini gösteren yeni satır.
  • Alış pozisyonları için zararı durdur değerini gösteren yeni satır.
  • Alış pozisyonları için kârı al değerini gösteren yeni satır.

Satış pozisyonları için, grafik üzerinde şunlar yorum olarak görüntülenecektir: 

  • Mevcut alış (ask) fiyatı.
  • Mevcut satış (bid) fiyatını gösteren yeni satır.
  • Mevcut ATR değerini gösteren yeni satır.
  • Satış pozisyonları için zararı durdur değerini gösteren yeni satır.
  • Satış pozisyonları için kârı al değerini gösteren yeni satır.

Bu stratejiye dayalı Uzman Danışmanın kodu şu şekilde görünecektir:

//+------------------------------------------------------------------+
//|                             Simple ATR System - SL&TP levels.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()
  {
   //define Ask price&Bid
   double Ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
   double Bid=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
   
   //creating price array
   double PriceArray[];
   
   //Sorting data
   ArraySetAsSeries(PriceArray,true);

   //define ATR
   int ATRDef=iATR(_Symbol,_Period,14);
   
   
   //define data and store result
   CopyBuffer(ATRDef,0,0,3,PriceArray);
   
   //get value of current data
   double ATRValue=NormalizeDouble(PriceArray[0],5);
   
   //Calculate SL&TP for buy position
   double StopLossBuy=Bid-(ATRValue*2);
   double TakeProfitBuy=Ask+((ATRValue*2)*2);
   
   //Calculate SL&TP for sell position
   double StopLossSell=Ask+(ATRValue*2);
   double TakeProfitSell=Bid-((ATRValue*2)*2);
   
   //comment on the chart
   Comment("BUY POSITION","\n","Current Ask = ",Ask,"\n","Current Bid = ",Bid,"\n","ATR Value = ",ATRValue,
   "\n","Stop Loss = ",StopLossBuy,"\n","Take Profit = ",TakeProfitBuy,"\n",
   "SELL POSITION","\n","Current Ask = ",Ask,"\n","Current Bid = ",Bid,"\n","ATR Value = ",ATRValue,
   "\n","Stop Loss = ",StopLossSell,"\n","Take Profit = ",TakeProfitSell);
  }
//+------------------------------------------------------------------+

Buradaki farklılıklar şunlardır:

  • Zararı durdur ve kârı al seviyelerini hesaplamak adına alış (ask) ve satış (bid) fiyatlarını belirliyoruz:
   double Ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);
   double Bid=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
  • Alış ve satış pozisyonları için zararı durdur ve kârı al değerlerini hesaplıyoruz:
   //Calculate SL&TP for buy position
   double StopLossBuy=Bid-(ATRValue*2);
   double TakeProfitBuy=Ask+((ATRValue*2)*2);
   
   //Calculate SL&TP for sell position
   double StopLossSell=Ask+(ATRValue*2);
   double TakeProfitSell=Bid-((ATRValue*2)*2);
  • Hem alış hem de satış pozisyonu için grafik üzerinde stratejiye dayalı yorumları görüntülüyoruz:
  • Mevcut alış (ask) fiyatı.
  • Mevcut satış (bid) fiyatını gösteren yeni satır.
  • Mevcut ATR değerini gösteren yeni satır.
  • Zararı durdur değerini gösteren yeni satır.
  • Kârı al değerini gösteren yeni satır.
  •    Comment("BUY POSITION","\n","Current Ask = ",Ask,"\n","Current Bid = ",Bid,"\n","ATR Value = ",ATRValue,
       "\n","Stop Loss = ",StopLossBuy,"\n","Take Profit = ",TakeProfitBuy,"\n",
       "SELL POSITION","\n","Current Ask = ",Ask,"\n","Current Bid = ",Bid,"\n","ATR Value = ",ATRValue,
       "\n","Stop Loss = ",StopLossSell,"\n","Take Profit = ",TakeProfitSell);

    Programı yazıp derledikten sonra onu Kılavuz penceresinden bulabiliriz:

    Kılavuz - Simple ATR System - SL&TP levels

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

    Simple ATR System - SL&TP levels penceresi

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

    Grafiğe eklenmiş Simple ATR System - SL&TP levels

    Devamında program onun için belirlediğimiz koşullara uygun olarak yorumları gösterecektir:

    Simple ATR System - SL&TP levels - Alış ve satış pozisyonları için zararı durdur ve kârı al değerleri

    Sonuç

    Bu makalede Average True Range (ATR) göstergesini ayrıntılı olarak inceledik. ATR'ın ne olduğunu, neyi ölçtüğünü ve manuel olarak nasıl hesaplandığını gördük. Ayrıca, göstergeye ilişkin anlayışımızı geliştirmek adına da, gerçek piyasa verilerinin bulunduğu bir örnek üzerinde ATR’ı kendimiz hesapladık. Sonrasında ATR göstergesine dayalı bazı basit stratejileri ele aldık. Bu stratejilerle ATR’ın gücünü ve hareketinin durumunu ölçebildik ve pozisyonlar için zararı durdur ve kârı al değerleri hesaplayabildik. Devamında, bu stratejiler için ticaret sistemini geliştirirken bize yardımcı olacak adım adım ifadeler sunan bir plan hazırladık. Son olarak da, bu plan çerçevesinde MetaQuotes Language 5 (MQL5) ile stratejilerin ticaret sisteminin kodlarını yazdık. Ve böylece MetaTrader 5 platformunda çalıştırılabilen programlara sahip olduk.

    Bu makaledeki tüm konuları okuduysanız, anladıysanız ve kendiniz uyguladıysanız, artık Average True Range’i (ATR) arkasında yatan konsepte uygun olarak kullanabiliyor olmalısınız. Göstergeyi okuyabiliyor ve ticaret enstrümanlarının volatilitelerini belirleyebiliyor olmalısınız.

    Tüm yeni araçları ve stratejileri gerçek hesaplarda kullanmadan önce, ticaret tarzınıza ve planınıza uygun olduklarından emin olmak için onları dikkatlice test etmeniz çok önemlidir. Bir kişi için faydalı olabilen araçlar/ticaret stratejileri bir başkası için faydalı olmayabilir. Dolayısıyla, her zaman her yeni bilgiyi size uygunluğu açısından kendiniz test etmelisiniz.

    Umarım bu makaledeki bilgiler ticaretiniz için faydalı olur ve makalenin konusu veya ticaret sonuçlarınızı iyileştirmenize yardımcı olacak ilgili herhangi bir konu hakkında gözlerinizi yeni fikirlere açar. Ve ayrıca umarım, makale boyunca, ticaret fikirlerini programlara kodlamanın ticareti nasıl daha kolay, daha sorunsuz ve daha verimli hale getirebileceğini size gösterebilmişimdir, ve böylece programlamanın ticaretteki önemini vurgulayabilmişimdir. Bir sonraki makalede görüşene kadar, kârlı ve güvenli ticaretler diliyorum, sağlıcakla kalın.

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

    Veri Bilimi ve Makine Öğrenimi (Bölüm 03): Matris Regresyonları Veri Bilimi ve Makine Öğrenimi (Bölüm 03): Matris Regresyonları
    Bu sefer matrisleri kullanarak modeller oluşturacağız. Matrisler, modellere esneklik sağlar. Yalnızca beş bağımsız değişkeni değil, bilgisayarın hesaplama yeteneklerinin izin verdiği ölçüde çok sayıda değişkeni işleyebilen güçlü modeller oluşturmamıza olanak tanır.
    ADX göstergesine dayalı bir ticaret sistemi nasıl geliştirilir? ADX göstergesine dayalı bir ticaret sistemi nasıl geliştirilir?
    Bu makalede de, en popüler göstergeleri kullanarak ticaret sistemleri oluşturma konulu serimize devam ediyoruz. Bu sefer ADX (Average Directional Index) göstergesinden bahsedeceğiz. Ticarette nasıl yararlı olabileceğini anlamak adına bu göstergeyi ayrıntılı olarak ele alacağız. Ayrıca basit stratejilerle nasıl kullanılacağını öğreneceğiz. Çünkü bir şeyi derinlemesine öğrenerek, onun hakkında daha fazla içgörü elde edebilir ve onu daha iyi kullanabiliriz.
    Sıfırdan bir ticaret Uzman Danışmanı geliştirme (Bölüm 07): Hacim profili ekleme (I) Sıfırdan bir ticaret Uzman Danışmanı geliştirme (Bölüm 07): Hacim profili ekleme (I)
    Bu, şu anda mevcut olan en güçlü göstergelerden biridir. Belirli bir güven derecesine sahip olmaya çalışan tüm yatırımcıların bu göstergeyi grafiğinde bulundurması gerekir. Çoğu zaman gösterge, piyasa seviyelerini izleyerek (bant okuyarak) ticaret yapanlar tarafından kullanılır. Ayrıca fiyat hareketlerine dayalı ticaret yapanlar tarafından da kullanılabilir.
    Veri Bilimi ve Makine Öğrenimi (Bölüm 02): Lojistik Regresyon Veri Bilimi ve Makine Öğrenimi (Bölüm 02): Lojistik Regresyon
    Veri sınıflandırması, bir algo yatırımcısı ve bir programcı için çok önemli bir şeydir. Bu makalede, evet veya hayırları, yükseliş ve düşüşleri, alış ve satışları belirlememize yardımcı olabilecek sınıflandırma lojistik algoritmalarından birine odaklanacağız.