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

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

MetaTrader 5Ticaret | 5 Ekim 2022, 14:16
176 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Giriş

Bu makalede de ticarette kullanılabilecek başka bir faydalı teknik göstergeye odaklanacağız. Bu teknik gösterge Parabolic SAR göstergesidir. MetaTrader 5 işlem platformu için bu göstergeye dayalı bir ticaret sisteminin nasıl geliştirileceğini öğreneceğiz. Ticaret sisteminin kodunu MetaTrader 5'te yerleşik MetaQuotes Language Düzenleyicisini kullanarak yazacağız. MetaTrader 5'i nasıl edineceğinizi ve MetaQuotes Language Düzenleyicisini nasıl açacağınızı öğrenmek istiyorsanız bir önceki makalemin MetaEditor'da MQL5 kodu yazma bölümünü inceleyebilirsiniz. Bu makalede şu konuları irdeleyeceğiz:

  1. Parabolic SAR göstergesinin tanımı
  2. Parabolic SAR göstergesi stratejileri
  3. Parabolic SAR göstergesine dayalı ticaret sisteminin planı
  4. Parabolic SAR göstergesine dayalı ticaret sistemi
  5. Sonuç

“Parabolic SAR göstergesinin tanımı” bölümünde, Parabolic SAR göstergesinin ne olduğunu, ne anlama geldiğini, ne işe yaradığını ve nasıl hesaplandığını göreceğiz (hesaplama ayrıntıları, göstergenin özünü daha iyi anlamamıza yardımcı olarak onu daha etkili bir şekilde kullanmamıza olanak sağlayacaktır). Ardından, “Parabolic SAR göstergesi stratejileri” bölümünde, göstergeye dayalı bazı basit stratejileri ele alacağız. Devamında, “Parabolic SAR göstergesine dayalı ticaret sisteminin planı” bölümünde, ele aldığımız bu basit stratejiler için bir plan hazırlayacağız. Bu plan, ticaret sistemini inşa ederken bize adım adım nelerin gerektiğine dair rehberlik edecektir. Ve son olarak da makalenin en ilginç kısmına, hazırladığımız plan çerçevesinde stratejilerimizin koşullarına uygun olarak çalışacak ticaret sisteminin kodunu yazacağımız, “Parabolic SAR göstergesine dayalı ticaret sistemi” bölümüne geçeceğiz.

Konularımıza geçmeden önce bazı tavsiyelerde bulunmak istiyorum. Birincisi: öğrendiğiniz her şeyi bağımsız olarak kendiniz uygulayın ve ayrıca onları devamlı olarak tekrar edin, çünkü bu yaklaşım anlayışınızı derinleştirecektir. İkincisi ise: herhangi bir stratejiyi veya herhangi bir şeyi gerçek hesapta kullanmadan önce onu test etmelisiniz (özellikle de eğitim için olan kaynaklarından öğrendiyseniz), çünkü ticaret tarzınıza bağlı olarak sizin için uygun olmayabilir.

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 Parabolic SAR göstergesine ilişkin öğrenme yolculuğumuza başlayalım.


Parabolic SAR göstergesinin tanımı

Parabolic SAR göstergesi Welles Wilder tarafından oluşturulmuştur. Göstergenin adındaki Parabolic kelimesi göstergenin grafik üzerinde oluşumundan gelirken, SAR kelimesi de Stop And Reverse ifadesinin baş harflerinden gelir. Welles Wilder göstergeyi “New Concepts in Technical Trading Systems” adlı kitabında “The Parabolic Time/Price System” başlığı altında tanımlamıştır.

Parabolic SAR göstergesi, trend izleyen bir göstergedir ve bu nedenle trende sahip olan piyasalarda kullanılır. Göstergedeki seviyeler fiyat ve zamanla ilişkili olarak hareket eder. Bu seviyeler zararı durdur seviyeleri olarak kullanılabilir. Dolayısıyla, bu göstergenin ana amacının mevcut piyasa yönüne göre uygun olarak zararı durdur seviyelerini belirlemek olduğunu söyleyebiliriz. Eğer trend konusu hakkında daha fazla bilgi edinmek istiyorsanız trendin tanımı bölümünü okuyabilirsiniz.

Başka bir deyişle, Parabolic SAR göstergesinin ana amacı, takip eden durdurucu oluşturmaktır. Parabolic SAR seviyeleri iki şeyin fonksiyonudur: zaman ve fiyat. Fiyatın fonksiyonuna göre, zararı durdur seviyesi, piyasa yönü doğrultusunda yukarı veya aşağı yönlü olarak hareket eder. Zamanın fonksiyonuna göre de, zararı durdur seviyesi, piyasa yönünden bağımsız olarak her periyotta hareket eder.

Şu ana kadar Parabolic SAR göstergesinin ne anlama geldiğini ve bize ne ifade ettiğini öğrendik. Şimdi ise göstergenin arkasındaki konsepti daha iyi anlamak adına, onu manuel olarak nasıl hesaplayabileceğimizi görelim. 

Öncelikle piyasanın yönünü belirlememiz gerekiyor, böylece hesaplamayı iki duruma ayıracağız: yükseliş trendi için yükselen Parabolic SAR ve düşüş trendi için düşen Parabolic SAR.

  • Yükselen Parabolic SAR:
    1. Önceki Parabolic SAR değerini belirle = önceki periyodun Parabolic SAR değeri.
    2. Uç noktayı (Extreme Point, EP) belirle = mevcut yükseliş trendinin en yüksek yüksek değeri.
    3. Hızlanma faktörünü (Acceleration Factor, AF) belirle = 0,02 ile 0,20 arasında değer. İlk değer 0.02 olarak belirlendikten sonra sonraki değerler EP’ye göre belirlenir. EP her yeni bir uç değer oluşturduğunda AF değeri 0,02 şeklinde artar. Bu şekilde devam ederek trendin ne kadar uzun olduğundan bağımsız olarak en fazla 0,20 değerine yükselir.
    4. Mevcut Parabolic SAR değeri = önceki Parabolic SAR değeri (1. adım) + önceki AF değeri * (önceki EP değeri - önceki Parabolic SAR değeri).

Bu hesaplamayı bir örnek üzerinde inceleyelim. Aşağıdaki piyasa verilerine sahip olduğumuzu varsayalım:

Gün Yüksek Düşük
1 45 43
2 44 43.5
3 46 43
4 47 42
5 48 42.5
6 47.5 42.75
7 48 42.60
8 47.75 42.5
9 48 43
10 49 42.5
11 48.75 42.60
12 50 42
13 51 42.5
14 52 43
15 51.5 42.5
16 51 42
17 52 43
18 53 44
19 54 45

Şimdi bu veriler için yükselen Parabolic SAR'ı hesaplayalım:

  1. Önceki Parabolic SAR değerini belirle = önceki periyodun Parabolic SAR değeri: basitlik olması amacıyla ilk önceki Parabolic SAR değeri 42 olarak verilmiştir.
  2. EP değerini belirle = mevcut yükseliş trendinin en yüksek yüksek değeri: 48.
  3. Önceki EP değerinden önceki Parabolic SAR değerini çıkar: 48-42=6.
  4. AF değerini belirle = 0,02 ile 0,20 arasında değer: ilk değer 0.02 olacaktır.
  5. AF değerini 3. adımda belirlenen farkla çarp: 0.12.
  6. Bu değeri önceki Parabolic SAR değerine ekleyerek mevcut Parabolic SAR değerini elde et: 42.12.

Aşağıdaki görüntü, örnek veriler için hesaplanan tüm değerleri göstermektedir:

Yükselen Parabolic SAR örneği

SAR sütununda gördüğümüz gibi trend boyunca Parabolic SAR değerleri her gün yükselmektedir.

  • Düşen Parabolic SAR:
    1. Önceki Parabolic SAR değerini belirle = önceki periyodun Parabolic SAR değeri.
    2. EP değerini belirle = mevcut düşüş trendinin en düşük düşük değeri.
    3. Hızlanma faktörünü (Acceleration Factor, AF) belirle = 0,02 ile 0,20 arasında değer. İlk değer 0.02 olarak belirlendikten sonra sonraki değerler EP’ye göre belirlenir. EP her yeni bir uç değer oluşturduğunda AF değeri 0,02 şeklinde artar. Bu şekilde devam ederek trendin ne kadar uzun olduğundan bağımsız olarak en fazla 0,20 değerine yükselir.
    4. Mevcut Parabolic SAR değeri = önceki Parabolic SAR değeri (1. adım) - önceki AF değeri * (önceki EP değeri - önceki Parabolic SAR değeri).

Bu hesaplamayı bir örnek üzerinde inceleyelim. Aşağıdaki piyasa verilerine sahip olduğumuzu varsayalım:

Gün Yüksek Düşük
1 54 45
2 53 44
3 52 43
4 51 42
5 51.5 42.5
6 52 43
7 51 42.5
8 50 42
9 48.75 42.6
10 49 42.5
11 48 43
12 47.75 42.50
13 48 42.60
14 47.50 42.75
15 48 42.50
16 47 42
17 46 43
18 44 43.50
19 45 43

Şimdi bu veriler için düşen Parabolic SAR'ı hesaplayalım:

  1. Önceki Parabolic SAR değerini belirle = önceki periyodun Parabolic SAR değeri: basitlik olması amacıyla ilk önceki Parabolic SAR değeri 51 olarak verilmiştir.
  2. EP değerini belirle = mevcut düşüş trendinin en düşük düşük değeri: 42.
  3. Önceki EP değerinden önceki Parabolic SAR değerini çıkar: 51-42=9.
  4. AF değerini belirle = 0,02 ile 0,20 arasında değer: ilk değer 0.02 olacaktır.
  5. AF değerini 3. adımda belirlenen farkla çarp: 0.18.
  6. Bu değeri önceki Parabolic SAR değerinden çıkararak mevcut Parabolic SAR değerini elde et: 50.82.

Aşağıdaki görüntü, örnek veriler için hesaplanan tüm değerleri göstermektedir:

SAR sütununda gördüğümüz gibi trend boyunca Parabolic SAR değerleri her gün düşmektedir.

Neyse ki tüm bu hesaplamaları manuel olarak yapmamıza gerek yoktur. Çünkü bu gösterge MetaTrader 5 işlem platformunda yerleşik olarak bulunmaktadır. Dolayısıyla, tek ihtiyacımız olan, platformdaki mevcut göstergeler listesinden göstergeyi seçmektir. Bunu nasıl yapabileceğimiz aşağıda açıklanmaktadır:

Terminalden Ekle sekmesini açın, ardından Göstergeler --> Trend --> Parabolic SAR’ı seçin:

Parabolic SAR göstergesini ekleme

Sonrasında Parabolic SAR parametreleri için aşağıdaki pencere açılacaktır:

Parabolic SAR göstergesi parametreleri

1- Fiyatın yeni bir yüksek veya düşük uç nokta oluşturduğu her defasında AF değerine eklenecek adım.

2- AF’nin olabilecek maksimum değeri. Varsayılan olarak 0.20’dir.

3- Göstergenin rengi.

4- Göstergenin stili.

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

Grafikte Parabolic SAR göstergesi

Yukarıdaki görüntüde görebileceğimiz gibi, yükseliş trendi sırasında Parabolic SAR fiyatların altında hareket ederek fiyatlarla ilişkili olarak yükselir ve bunun tersi olarak düşüş trendi sırasında da fiyatların üzerinde hareket ederek fiyatlarla ilişkili olarak düşer.


Parabolic SAR göstergesi stratejileri

Bu bölümde, Parabolic SAR ile kullanılabilecek bazı basit stratejileri ele alacağız. Şunu unutmamalısınız ki herhangi bir stratejiyi canlı hesabınızda kullanmadan önce, onu tam anlamıyla test ettiğinizden emin olmalısınız. Makalenin temel amacı eğitimdir. Burada yeni bir aracı inceleyerek örnek basit stratejilerle onun için bir ticaret sisteminin nasıl geliştirileceğini öğreniyoruz.

Daha önce de söylediğimiz gibi, Parabolic SAR göstergesi trend izleyen bir göstergedir. Dolayısıyla onu trend varlığında kullanabiliriz. Yani öncelikle trendi belirlememiz gerekiyor, ancak o zaman yükseliş veya düşüş trendine bağlı olarak Parabolic SAR'ı kullanabiliriz.

  • Birinci strateji - Yükseliş trendi stratejisi:

Bu stratejiye göre, her tikte Parabolic SAR değerini düşük fiyatı ile karşılaştırmalıyız ve alış sinyalinin var olup olmadığını kontrol etmeliyiz. Parabolic SAR değeri düşük fiyatından daha düşük olduğunda, bu, alış sinyali olacaktır. Alış sinyali sonrası, Parabolic SAR değeri yüksek fiyatından daha yüksek olduğunda da kârı al sinyali meydana gelecektir.

Parabolic SAR değeri < Düşük fiyatı = Alış

Parabolic SAR değeri > Yüksek fiyatı = Kârı al

  • İkinci strateji - Düşüş trendi stratejisi:

Bu strateji, yükseliş trendi stratejisinin tam tersi olacaktır. Bu stratejiye göre, her tikte Parabolic SAR değerini yüksek fiyatı ile karşılaştırmalıyız ve satış sinyalinin var olup olmadığını kontrol etmeliyiz. Parabolic SAR değeri yüksek fiyatından daha yüksek olduğunda, bu, satış sinyali olacaktır. Satış sinyali sonrası, Parabolic SAR değeri düşük fiyatından daha düşük olduğunda da kârı al sinyali meydana gelecektir.

Parabolic SAR değeri > Yüksek fiyatı = Satış

Parabolic SAR değeri < Düşük fiyatı = Kârı al

  • Üçüncü strateji - Takip eden durdurucuyla alış sinyali stratejisi:

Bu stratejiye göre, her tikte Parabolic SAR değerini düşük fiyatı ile karşılaştırmalıyız ve alış sinyalinin var olup olmadığını kontrol etmeliyiz. Ayrıca, Parabolic SAR değerlerini takip eden durdurucu olarak belirlemeliyiz. Yani Parabolic SAR değeri düşük fiyatından daha düşük olduğunda, bu, alış sinyali olacaktır. Devamında, Parabolic SAR değerleri de takip eden durdurucu olarak işlev görecektir.

Parabolic SAR değeri < Düşük fiyatı = Alış --> Parabolic SAR değerlerine göre takip eden durdurucu

  • Dördüncü strateji - Takip eden durdurucuyla satış sinyali stratejisi:

Bu stratejiye göre, her tikte Parabolic SAR değerini yüksek fiyatı ile karşılaştırmalıyız ve satış sinyalinin var olup olmadığını kontrol etmeliyiz. Ayrıca, Parabolic SAR değerlerini takip eden durdurucu olarak belirlemeliyiz. Yani Parabolic SAR değeri yüksek fiyatından daha yüksek olduğunda, bu, satış sinyali olacaktır. Devamında, Parabolic SAR değerleri de takip eden durdurucu olarak işlev görecektir.

Parabolic SAR değeri > Yüksek fiyatı = Satış --> Parabolic SAR değerlerine göre takip eden durdurucu


Parabolic SAR göstergesine dayalı ticaret sisteminin planı

Bu bölümde, yukarıda ele aldığımız stratejiler için bir plan hazırlayacağız. Bu plan, gelecekteki programdan neler istediğimizi ve neler yapması gerektiğini adım adım net bir şekilde tanımlayacak ve böylece ticaret sisteminin kodunu yazarken bize rehberlik edecektir.

  • Birinci strateji - Yükseliş trendi stratejisi:

Uzman Danışmana, nelerin kontrol edilmesi gerektiği ve koşullar karşılandığında nelerin yapılması gerektiği konusunda talimatlar vereceğiz. Bu stratejide, Uzman Danışman, her tikte Parabolic SAR değerini düşük fiyatı ile karşılaştırmalı ve düşük fiyatından daha düşük olup olmadığını kontrol etmelidir. Eğer daha düşük değilse, Uzman Danışman hiçbir şey yapmamalıdır. Eğer daha düşükse, Uzman Danışman alış sinyali görüntülemelidir. Sonrasında Uzman Danışman bu kez her tikte Parabolic SAR değerini yüksek fiyatı ile karşılaştırmalı ve yüksek fiyatından daha yüksek olup olmadığını kontrol etmelidir. Eğer daha yüksek değilse, Uzman Danışman hiçbir şey yapmamalıdır. Eğer daha yüksek olursa, Uzman Danışman kârı al sinyali görüntülemelidir.

Parabolic SAR değeri < Düşük fiyatı = Alış

Parabolic SAR değeri > Yüksek fiyatı = Kârı al

Yükseliş trendi stratejisi planı

  • İkinci strateji - Düşüş trendi stratejisi:

Bu stratejide, Uzman Danışman, her tikte Parabolic SAR değerini yüksek fiyatı ile karşılaştırmalı ve yüksek fiyatından daha yüksek olup olmadığını kontrol etmelidir. Eğer daha yüksek değilse, Uzman Danışman hiçbir şey yapmamalıdır. Eğer daha yüksekse, Uzman Danışman satış sinyali görüntülemelidir. Sonrasında Uzman Danışman bu kez her tikte Parabolic SAR değerini düşük fiyatı ile karşılaştırmalı ve düşük fiyatından daha düşük olup olmadığını kontrol etmelidir. Eğer daha düşük değilse, Uzman Danışman hiçbir şey yapmamalıdır. Eğer daha düşük olursa, Uzman Danışman kârı al sinyali görüntülemelidir.

Parabolic SAR değeri > Yüksek fiyatı = Satış

Parabolic SAR değeri < Düşük fiyatı = Kârı al

Düşüş trendi stratejisi planı

  • Üçüncü strateji - Takip eden durdurucuyla alış sinyali stratejisi:
  • Bu stratejide, Uzman Danışman, her tikte Parabolic SAR değerini kontrol etmeli ve onu takip eden durdurucu olarak görüntülemelidir. Uzman Danışman ayrıca her tikte Parabolic SAR değerini düşük fiyatıyla da karşılaştırmalı ve düşük fiyatından daha düşük olup olmadığını kontrol etmelidir. Eğer daha düşük değilse, sadece Parabolic SAR değerini takip eden durdurucu olarak görüntülemeye devam etmelidir. Eğer daha düşükse, takip eden durdurucuya ek olarak alış sinyalini de görüntülemelidir. 

    Sadece takip eden durdurucu --> Parabolic SAR değeri < Düşük fiyatı = Alış --> Takip eden durdurucuyla alış sinyali

    Takip eden durdurucuyla alış sinyali stratejisi planı

    • Dördüncü strateji - Takip eden durdurucuyla satış sinyali stratejisi:

    Bu stratejide, Uzman Danışman, her tikte Parabolic SAR değerini kontrol etmeli ve onu takip eden durdurucu olarak görüntülemelidir. Uzman Danışman ayrıca her tikte Parabolic SAR değerini yüksek fiyatıyla da karşılaştırmalı ve yüksek fiyatından daha yüksek olup olmadığını kontrol etmelidir. Eğer daha yüksek değilse, sadece Parabolic SAR değerini takip eden durdurucu olarak görüntülemeye devam etmelidir. Eğer daha yüksekse, takip eden durdurucuya ek olarak satış sinyalini de görüntülemelidir.

    Sadece takip eden durdurucu --> Parabolic SAR değeri > Yüksek fiyatı = Satış --> Takip eden durdurucuyla satış sinyali

    Takip eden durdurucuyla satış sinyali stratejisi planı

    Parabolic SAR göstergesine dayalı ticaret sistemi

    Bu bölümde, makalenin en ilginç kısmına, özüne geliyoruz. Ele aldığımız stratejileri hazırladığımız plan çerçevesinde MQL5 programlama dilinde kodlayacağız ve böylece MetaTrader 5’te yürütmeye hazır bir ticaret sistemine sahip olacağız.

    İlk olarak, Parabolic SAR değerini grafik üzerinde yorum olarak görüntüleyecek basit bir ticaret sisteminin kodunu yazalım. Bu basit Uzman Danışmanı yazmak için şu adımları izleyeceğiz.

    • double fonksiyonunu kullanarak Parabolic SAR değerleri için bir dizi oluşturuyoruz:
    double SARArray[];
    • ArraySetAsSeries fonksiyonunu kullanarak diziyi mevcut veriden başlayarak sıralıyoruz:
    ArraySetAsSeries(SARArray,true);
    • Parabolic SAR göstergesini iSAR fonksiyonunu kullanarak tanımlıyoruz:
    int SARDef=iSAR(_Symbol,_Period,0.02,0.2);
    • CopyBuffer fonksiyonunu kullanarak, tanımladığımız Parabolic SAR göstergesine göre verileri dolduruyoruz:
    CopyBuffer(SARDef,0,0,3,SARArray);
    • Mevcut Parabolic SAR değerini, NormalizeDouble fonksiyonuyla ondalık basamak hassasiyeti ayarını yaparak, double tipinde alıyoruz:
    double SARValue=NormalizeDouble(SARArray[0],5);
    • Mevcut Parabolic SAR değerini grafik üzerinde yorum olarak görüntülüyoruz:
    Comment("Parabolic SAR value is ",SARValue);

    Bu programın tam kodu aşağıda gösterilmektedir:

    //+------------------------------------------------------------------+
    //|                                  Simple Parabolic SAR System.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()
      {    
       //create a SAR array
       double SARArray[];
    
       //sort array from current data
       ArraySetAsSeries(SARArray,true);
       
       //define SAR EA
       int SARDef=iSAR(_Symbol,_Period,0.02,0.2);
       
       
       //fill SARArray with SARDef 
       CopyBuffer(SARDef,0,0,3,SARArray);
       
       //calculate value of last data
       double SARValue=NormalizeDouble(SARArray[0],5);
    
       //chart comment with the signal
       Comment("Parabolic SAR value is ",SARValue);
      }
    //+------------------------------------------------------------------+

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

    Kılavuz - Simple Parabolic SAR System

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

    Simple Parabolic SAR System 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 Parabolic SAR System

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

    Grafikte mevcut Parabolic SAR değeri

    • Birinci strateji - Yükseliş trendi stratejisi:

    Önceden bahsettiğimiz gibi, bu stratejiye dayalı olarak, ticaret sistemine Parabolic SAR değeri düşük fiyatından daha düşük olduğunda alış sinyali oluşturmasını ve Parabolic SAR değeri yüksek fiyatından daha yüksek olduğunda da kârı al sinyali oluşturmasını söylemeliyiz. Bu stratejiyi nasıl kodlayacağımız aşağıda açıklanmaktadır:

    • string fonksiyonunu kullanarak sinyal için bir string değişkeni oluşturuyoruz:
    string signal="";
    • MqlRates fonksiyonunu kullanarak bir fiyat dizisi oluşturuyoruz. Bu dizi fiyatlar, hacimler ve spreadler hakkında bilgileri depolar:
    MqlRates PriceArray[];
    • ArraySetAsSeries fonksiyonunu kullanarak fiyat dizisini mevcut veriden başlayarak sıralıyoruz:
    ArraySetAsSeries(PriceArray,true);
    • CopyRates fonksiyonunu kullanarak diziyi fiyat verileriyle dolduruyoruz. Bu fonksiyon, Data int tipinde depolandıktan sonra MqlRates yapısının verilerini alır:
    int Data=CopyRates(_Symbol,_Period,0,3,PriceArray);
    • double fonksiyonunu kullanarak Parabolic SAR değerleri için başka bir dizi oluşturuyoruz:
    double SARArray[];
    • ArraySetAsSeries fonksiyonunu kullanarak diziyi mevcut veriden başlayarak sıralıyoruz:
    ArraySetAsSeries(SARArray,true);
    • Parabolic SAR göstergesini iSAR fonksiyonunu kullanarak tanımlıyoruz:
    int SARDef=iSAR(_Symbol,_Period,0.02,0.2);
    • CopyBuffer fonksiyonunu kullanarak, tanımladığımız Parabolic SAR göstergesine göre verileri dolduruyoruz:
    CopyBuffer(SARDef,0,0,3,SARArray);
    • Mevcut Parabolic SAR değerini, NormalizeDouble fonksiyonuyla ondalık basamak hassasiyeti ayarını yaparak, double tipinde alıyoruz: 
    double SARValue=NormalizeDouble(SARArray[0],5);
    • if fonksiyonunu kullanarak alış sinyalinin koşulunu ayarlıyoruz: Parabolic SAR değeri düşük fiyatından daha düşükse, alış sinyali geri döndürülmelidir:
       if(SARValue < PriceArray[1].low)
       {
          signal="Buy";
       }
    • if fonksiyonunu kullanarak kârı al sinyalinin koşulunu ayarlıyoruz: Parabolic SAR değeri yüksek fiyatından daha yüksekse, kârı al sinyali geri döndürülmelidir:
       if(SARValue > PriceArray[1].high)
       {
          signal="Take Profit";
       }
    • Comment fonksiyonunu kullanarak oluşturulan sinyali grafikte görüntülüyoruz:
    Comment("The signal is ",signal);

    Yukarıdaki adımlarla bu strateji için bir Uzman Danışman oluşturmuş olduk. İşte programın tam kodu:

    //+------------------------------------------------------------------+
    //|                      Parabilic SAR System - 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"
    //+------------------------------------------------------------------+
    void OnTick()
      {  
       //create an string variable for signal
       string signal="";
       
       //create a price array
       MqlRates PriceArray[];
       
       //sort array from the current data
       ArraySetAsSeries(PriceArray,true);
       
       //fill array with price data
       int Data=CopyRates(_Symbol,_Period,0,3,PriceArray);
       
       //create a SAR array
       double SARArray[];
    
       //sort array from current data
       ArraySetAsSeries(SARArray,true);
       
       //define SAR EA
       int SARDef=iSAR(_Symbol,_Period,0.02,0.2);
       
       
       //fill SARArray with SARDef 
       CopyBuffer(SARDef,0,0,3,SARArray);
       
       //calculate value of last data
       double SARValue=NormalizeDouble(SARArray[0],5);
       
       //buy signal
       //if current SAR value below candle 1 low
       if(SARValue < PriceArray[1].low)
       {
          signal="Buy";
       }
       
       //take profit signal
       //if current SAR value above candle 1 high
       if(SARValue > PriceArray[1].high)
       {
          signal="Take Profit";
       }
       
       //comment with the signal
       Comment("The signal is ",signal);
      }
    //+------------------------------------------------------------------+

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

    Kılavuz - Parabolic SAR System - Uptrend Strategy

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

     Parabolic SAR System - Uptrend Strategy penceresi

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

    Grafiğe eklenmiş Parabolic SAR System - Uptrend Strategy

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

    • Alış sinyali:

    Parabolic SAR System - Uptrend Strategy - Alış sinyali

    • Kârı al sinyali:

    Parabolic SAR System - Uptrend Strategy - Kârı al sinyali

    • İkinci strateji - Düşüş trendi stratejisi:

    Bu stratejide, ticaret sistemine Parabolic SAR değeri yüksek fiyatından daha yüksek olduğunda alış sinyali oluşturmasını ve Parabolic SAR değeri düşük fiyatından daha düşük olduğunda da kârı al sinyali oluşturmasını söylemeliyiz. Bu stratejiyi nasıl kodlayacağımız aşağıda açıklanmaktadır:

    //+------------------------------------------------------------------+
    //|                    Parabolic SAR System - 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"
    //+------------------------------------------------------------------+
    void OnTick()
      {  
       //create an string variable for signal
       string signal="";
       
       //create a price array
       MqlRates PriceArray[];
       
       //sort array from the current data
       ArraySetAsSeries(PriceArray,true);
       
       //fill array with price data
       int Data=CopyRates(_Symbol,_Period,0,3,PriceArray);
       
       //create a SAR array
       double SARArray[];
       
       //define SAR EA
       int SARDef=iSAR(_Symbol,_Period,0.02,0.2);
       
       //sort array from current data
       ArraySetAsSeries(SARArray,true);
       
       //fill SARArray with SARDef 
       CopyBuffer(SARDef,0,0,3,SARArray);
       
       //calculate value of last data
       double SARValue=NormalizeDouble(SARArray[0],5);
       
       //buy signal
       //if current SAR value below candle 1 low
       if(SARValue > PriceArray[1].high)
       {
          signal="Sell";
       }
       
       //take profit signal
       //if current SAR value above candle 1 high
       if(SARValue < PriceArray[1].low)
       {
          signal="Take Profit";
       }
       
       //chart comment with the signal
       Comment("The signal is ",signal);
      }
    //+------------------------------------------------------------------+
    • Bu koddaki farklılıklar şunlardır:
      • Satış sinyali koşulu - Parabolic SAR değeri yüksek fiyatından daha yüksek olduğunda:
       if(SARValue > PriceArray[1].high)
       {
          signal="Sell";
       }
      • Kârı al sinyali koşulu - Parabolic SAR değeri düşük fiyatından daha düşük olduğunda:
       if(SARValue < PriceArray[1].low)
       {
          signal="Take Profit";
       }

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

    Kılavuz - Parabolic SAR System - Downtrend Strategy

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

    Parabolic SAR System - Downtrend Strategy penceresi

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

    Grafiğe eklenmiş Parabolic SAR System - Downtrend Strategy

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

    • Satış sinyali:

    Parabolic SAR System - Downtrend Strategy - Satış sinyali

    • Kârı al sinyali:

    Parabolic SAR System - Downtrend Strategy - Kârı al sinyali

    • Üçüncü strateji - Takip eden durdurucuyla alış sinyali stratejisi:

    Bu stratejide, ticaret sistemine Parabolic SAR değerini grafik üzerinde yorum olarak takip eden durdurucu şeklinde görüntülemesini ve ek olarak Parabolic SAR değeri düşük fiyatından daha düşük olduğunda da alış sinyali oluşturmasını söylemeliyiz. Bu stratejiyi nasıl kodlayacağımız aşağıda açıklanmaktadır:

    //+------------------------------------------------------------------+
    //|         Parabolic SAR System - Buy signal with training stop.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()
      {  
       //create an string variable for signal
       string signal="";
       
       //create a price array
       MqlRates PriceArray[];
       
       //sort array from the current data
       ArraySetAsSeries(PriceArray,true);
       
       //fill array with price data
       int Data=CopyRates(_Symbol,_Period,0,3,PriceArray);
       
       //create a SAR array
       double SARArray[];
       
       //define SAR EA
       int SARDef=iSAR(_Symbol,_Period,0.02,0.2);
       
       //sort array from current data
       ArraySetAsSeries(SARArray,true);
       
       //fill SARArray with SARDef 
       CopyBuffer(SARDef,0,0,3,SARArray);
       
       //calculate value of last data
       double SARValue=NormalizeDouble(SARArray[0],5);
       
       //buy signal
       //if current SAR value below candle 1 low
       if(SARValue < PriceArray[1].low)
       {
          signal="Buy";
       }
       
       //chart comment with the signal and trailing Stop
       Comment("The signal is ",signal,"\n", "Trailing Stop is ",SARValue);
      }
    //+------------------------------------------------------------------+
    • Koddaki farlılık şudur:
      • Parabolic SAR değerini grafik üzerinde yorum olarak yeni satırda takip eden durdurucu şeklinde görüntülüyoruz:
    Comment("The signal is ",signal,"\n", "Trailing Stop is ",SARValue);

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

    Kılavuz - Parabolic SAR System - Buy signal with trailing stop

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

    Parabolic SAR System - Buy signal with trailing stop penceresi

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

    Grafiğe eklenmiş Parabolic SAR System - Buy signal with trailing stop

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

    Grafikte Parabolic SAR System - Buy signal with trailing stop

    Aşağıdaki görüntü, takip eden durdurucu değerinin fiyatla birlikte nasıl arttığını göstermektedir:

    Grafikte Parabolic SAR System - Buy signal with trailing stop

    • Dördüncü strateji - Takip eden durdurucuyla satış sinyali stratejisi:

    Bu stratejide, ticaret sistemine Parabolic SAR değerini grafik üzerinde yorum olarak takip eden durdurucu şeklinde görüntülemesini ve ek olarak Parabolic SAR değeri yüksek fiyatından daha yüksek olduğunda da satış sinyali oluşturmasını söylemeliyiz. Bu stratejiyi nasıl kodlayacağımız aşağıda açıklanmaktadır:

    //+-----------------------------------------------------------+
    //| Parabolic SAR System - Sell signal with trailing stop.mq5 |
    //| Copyright 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()
      {  
       //create an string variable for signal
       string signal="";
       
       //create a price array
       MqlRates PriceArray[];
       
       //sort array from the current data
       ArraySetAsSeries(PriceArray,true);
       
       //fill array with price data
       int Data=CopyRates(_Symbol,_Period,0,3,PriceArray);
       
       //create a SAR array
       double SARArray[];
       
       //define SAR EA
       int SARDef=iSAR(_Symbol,_Period,0.02,0.2);
       
       //sort array from current data
       ArraySetAsSeries(SARArray,true);
       
       //fill SARArray with SARDef 
       CopyBuffer(SARDef,0,0,3,SARArray);
       
       //calculate value of last data
       double SARValue=NormalizeDouble(SARArray[0],5);
       
       //buy signal
       //if current SAR value below candle 1 low
       if(SARValue > PriceArray[1].high)
       {
          signal="Sell";
       }
       
       //chart comment with the signal and trailing Stop
       Comment("The signal is ",signal,"\n", "Trailing Stop is ",SARValue);
      }
    //+------------------------------------------------------------------+
    • Koddaki farlılık şudur:
      • Satış sinyali koşulu:
       if(SARValue > PriceArray[1].high)
       {
          signal="Sell";
       }

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

    Kılavuz - Parabolic SAR System - Sell signal with trailing stop

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

    Parabolic SAR System - Sell signal with trailing stop penceresi

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

    Grafiğe eklenmiş Parabolic SAR System - Sell signal with trailing stop

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

    Grafikte Parabolic SAR System - Sell signal with trailing stop

    Aşağıdaki görüntü, takip eden durdurucu değerinin fiyatla birlikte nasıl düştüğünü göstermektedir:

    Grafikte Parabolic SAR System - Sell signal with trailing stop


    Sonuç

    Artık Parabolic SAR teknik göstergesinin temellerini ayrıntılı olarak öğrendiğimizi söyleyebiliriz. İlk olarak göstergenin ne olduğunu, neyi ölçtüğünü ve manuel olarak nasıl hesaplayabileceğimizi inceledik. Devamında onu basit stratejilerle nasıl kullanabileceğimizi gördük. Sonrasında, bu stratejilere dayalı ticaret sistemini tasarlarken bize yardımcı olması adına onlar için bir plan hazırladık. Ve son olarak da MetaTrader 5'te otomatik ve doğru bir şekilde yürütmek için ele aldığımız stratejileri hazırladığımız plan çerçevesinde MQL5 ile nasıl kodlayacağımızı öğrendik.

    Umarım bu stratejileri kendiniz de kodlamaya çalışmışsınızdır çünkü pratik yapmak herhangi bir konuda uzmanlaşmak için çok önemli bir faktördür. Yeni bir şey keşfettiğinizde, o konu üzerinde devamlı olarak pratik yapıp tekrar ederseniz, onla ilişkili farkındalığınız artar ve onu çok daha iyi kavrarsınız.

    Ayrıca umarım bu makaleyi faydalı bulmuşsunuzdur ve ticaretinizi ilerletmek adına size güçlü ve kullanışlı bilgiler sağlamıştır. Makalenin konusu veya ilgili herhangi bir konu hakkında size yeni fikirlere gözlerinizi açacağına inanıyorum. Bir kez daha hatırlatmak istiyorum ki, tüm yeni bilgileri gerçek bir hesapta kullanmadan önce, ticaret tarzınıza ve anlayışınıza uygun olduklarından emin olmak için onları dikkatlice test etmelisiniz. Bir sonraki makalede görüşünceye kadar hoşça kalın.


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

    Sıfırdan bir ticaret Uzman Danışmanı geliştirme (Bölüm 09): Kavramsal sıçrama (II) Sıfırdan bir ticaret Uzman Danışmanı geliştirme (Bölüm 09): Kavramsal sıçrama (II)
    Bu makalede ticaret arayüzümüzü kayan pencereye yerleştireceğiz. Önceki makalede, şablonların kayan pencerede kullanılmasına olanak sağlayan temel bir sistem oluşturmuştuk.
    Sıfırdan bir ticaret Uzman Danışmanı geliştirme (Bölüm 08): Kavramsal sıçrama (I) Sıfırdan bir ticaret Uzman Danışmanı geliştirme (Bölüm 08): Kavramsal sıçrama (I)
    Yeni bir işlevselliği uygulamanın en kolay yolu nedir? Bu makalede, önce bir adım geri, sonra iki adım ileri gideceğiz.
    SQLite: MQL5'te SQL veritabanlarıyla yerel olarak çalışma SQLite: MQL5'te SQL veritabanlarıyla yerel olarak çalışma
    Ticaret stratejilerinin geliştirilmesi, büyük miktarda verinin işlenmesiyle ilişkilidir. Artık doğrudan MQL5'te SQLite tabanlı SQL sorguları kullanarak veritabanlarıyla çalışabilirsiniz. Bu motorun önemli bir avantajı, tüm veritabanının kullanıcının bilgisayarında bulunan tek bir dosyaya yerleştirilmiş olmasıdır.
    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.