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

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

MetaTrader 5Ticaret | 23 Ağustos 2022, 08:20
291 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Giriş

Teknik analizle ticaret yapmanın en güzel yanlarından biri, çok sayıda araca sahip olmamız ve onları bize yarar sağlayacak şekilde tek tek veya kombine ederek kullanabilmemizdir. Ek olarak, ticaret sonuçlarımızı ve performansımızı artırmada bize çok fayda sağlayabilecek harika bir aracımız daha vardır. Bu araç, koşullarımıza uygun şekilde istediğimiz eylemleri otomatik olarak gerçekleştirmesi için bilgisayara talimatlar verdiğimiz ve böylece programlar oluşturmamıza olanak sağlayan programlamadır.

Bu makale, teknik analizle ticaret ve kârlı ticaret stratejilerinin programlanması bağlamında nelerin yararlı olabileceğini öğrenmeye yönelik başka bir adımdır. Bu amaçla, bu makalede de, ticaretimizde bize avantaj sağlayabilecek yeni bir göstergeyi inceleyeceğiz, bu, en popüler teknik analiz araçlarından biri olan Stochastic Oscillator göstergesidir. Diğer makalelerimi okuduysanız, tüm detayları ve nasıl çalıştığını anlamak adına mümkün olduğunca konuların köklerine inmeyi sevdiğimi biliyorsunuzdur. Ve bu sefer de yine aynı çalışma tekniğiyle konuları irdelemeye devam edeceğiz. Bu makalede şu konuları ele alacağız:

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

      "Stochastic Oscillator göstergesinin tanımı" bölümünde, Stochastic Oscillator göstergesini ayrıntılı olarak tanıyacağız, ne olduğunu ve neyi ölçtüğünü öğreneceğiz. Ardından, "Stochastic Oscillator göstergesi stratejileri" bölümünde, kullanabileceğimiz bazı basit stratejileri ele alacağız. Sonrasında, “Stochastic Oscillator göstergesine dayalı ticaret sisteminin planı” bölümünde, ele aldığımız basit stratejileri MQL5'te kodlamamıza yardımcı olacak bir plan hazırlayacağız. Ve son olarak da bu plan çerçevesinde bir ticaret sistemi yazacağız.

      Bu makalede de, MetaTrader 5 işlem platformunu ve platformda yerleşik olan MetaQuotes Language Düzenleyicisini kullanacağız. MetaTrader 5'i şu linkten indirebilirsiniz: https://www.metatrader5.com/en/download

      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 öğrenme yolculuğumuza bir başka bilgi bloğu daha eklemeye başlayalım.


      Stochastic Oscillator göstergesinin tanımı

      Bu bölümde, en popüler teknik göstergelerden biri olan Stochastic Oscillator göstergesi hakkında daha fazla bilgi edineceğiz. Gösterge, George Lane tarafından geliştirilmiştir ve Perry J. Kaufman'ın "New Trading Systems and Methods" adlı kitabında bahsedilmiştir. Ancak bu konuda başka görüşler de mevcuttur, bunlardan biri Stochastic Oscillator göstergesinin kimin yarattığının kesin olarak belli olmadığıdır, bu Charles D. Kirkpatrick ve Julie R. Dahlquist tarafından yazılmış olan "Technical Analysis, The Complete Resource for Financial Market Technicians" adlı kitapta belirtilmiştir; diğer görüş ise John J. Murphy tarafından yazılmış olan "Technical Analysis of The Financial Markets" adlı kitapta belirtildiği üzere göstergenin George Lane tarafından popüler hale getirildiğidir.

      Stochastic Oscillator göstergesinin arkasındaki ana fikir şöyledir: yükseliş trendi sırasında, mevcut çubuğun kapanış fiyatının periyodun fiyat aralığının üst kısmına daha yakın olma eğiliminde olduğu ve tersi olarak da, düşüş trendi sırasında mevcut çubuğun kapanış fiyatının periyodun fiyat aralığının alt kısmına daha yakın olma eğiliminde olduğu gözlemlenmiştir. Yani gösterge, mevcut kapanış fiyatı ile belirli bir periyodun en yüksek ve en düşük fiyatları arasındaki ilişkiyi ölçer.

      Stochastic Oscillator göstergesi iki çizgiden oluşur ve bu iki çizgi sıfır ile 100 arasında salınır:

      • %K çizgisi hızlı olandır.
      • %D çizgisi ise yavaş olandır, yumuşatılmıştır.

      Göstergenin birden fazla versiyonu mevcuttur. En popüleri şu ikisinin tek bir göstergede (Stochastic Oscillator) birleşmiş versiyonudur:

      • Hızlı Stochastic Oscillator.
      • Yavaş Stochastic Oscillator.

      Bu ikisi arasındaki fark, hesaplanma şekilleridir.

      Stochastic Oscillator göstergesi aşağıdaki adımlarla hesaplanır:

      1. Göstergenin hesaplanacağı periyodu belirle.
      2. Belirlenen periyodun en yüksek fiyatını al.
      3. Belirlenen periyodun en düşük fiyatını al.
      4. Hızlı Stochastic Oscillator’ın %K değerini al = 100*((mevcut kapanış-periyodun en düşük fiyatı)/(periyodun en yüksek fiyatı-periyodun en düşük fiyatı)).
      5. Hızlı Stochastic Oscillator’ın %D değerini al = Hızlı Stochastic Oscillator’ın %K değerinin 3 periyotluk MA’sı
      6. Yavaş Stochastic Oscillator’ın %K değerini al = Hızlı Stochastic Oscillator’ın %D değeri
      7. Yavaş Stochastic Oscillator’ın %D değerini al = Yavaş Stochastic Oscillator’ın %K değerinin (yani, hızlı Stochastic Oscillator’ın %D değerinin) 3 periyotluk MA’sı 

      Şimdi, Stochastic Oscillator’ı elde etmek üzere bu hesaplamaların nasıl uygulanacağına dair bir örnek görelim. Şu verilere sahip olduğumuzu varsayalım:

      Gün Kapanış Yüksek Düşük
      1 100 110 90
      2 130 140 120
      3 140 160 120
      4 130 150 110
      5 120 140 100
      6 140 150 130
      7 160 170 150
      8 170 180 160
      9 155 170 150
      10 140 170 130
      11 160 180 155
      12 180 190 175
      13 190 220 190
      14 200 230 200
      15 210 215 205
      16 200 200 190
      17 190 195 180
      18 185 105 180
      19 195 210 185
      20 200 220 190

      Stochastic Oscillator göstergesini hesaplamak adına yukarıda bahsettiğimiz adımları takip edeceğiz, dolayısıyla:

      • Hesaplama periyodunu belirliyoruz, 14 olacak. Yani göstergeyi hesaplamaya başlamak için 14 periyoda ihtiyacımız var.
      • Son 14 periyodun en yüksek fiyatını belirleyelim, verilere göre bu fiyat 230’dur; aşağıdaki görüntüden verileri tablo şeklinde görebilirsiniz:

      14 periyodun en yüksek fiyatı

      • Son 14 periyodun en düşük fiyatını belirleyelim, verilere göre bu fiyat 90’dır; aşağıdaki görüntüden verileri tablo şeklinde görebilirsiniz:

      14 periyodun en düşük fiyatı

      • Hızlı Stochastic Oscillator’ın %K değerini alalım = 100*((mevcut kapanış-periyodun en düşük fiyatı)/(periyodun en yüksek fiyatı-periyodun en düşük fiyatı)). 
      • Hızlı Stochastic Oscillator’ın %D değerini alalım = Hızlı Stochastic Oscillator’ın %K değerinin 3 periyotluk MA’sı
      • Aşağıdaki görüntüden verileri tablo şeklinde görebilirsiniz:

      Hızlı Stochastic Oscillator’ın %K ve %D değerleri

      • Yavaş Stochastic Oscillator’ın %K değerini alalım = Hızlı Stochastic Oscillator’ın %D değeri
      • Yavaş Stochastic Oscillator’ın %D değerini alalım = Yavaş Stochastic Oscillator’ın %K değerinin (yani, hızlı Stochastic Oscillator’ın %D değerinin) 3 periyotluk MA’sı
      • Aşağıdaki görüntüden verileri tablo şeklinde görebilirsiniz:

      Yavaş Stochastic Oscillator’ın %K ve %D değerleri

      Bu adımlar aracılığıyla Stochastic Oscillator göstergesini manuel olarak hesapladık. Neyse ki, MetaTrader 5 işlem terminalinde kullanıma hazır yerleşik bir göstergeye sahip olduğumuz için onu her seferinde manuel olarak hesaplamamıza gerek yok. Aşağıdaki görüntüde gösterildiği gibi, MetaTrader 5'te Ekle sekmesindeki Göstergeler > Osilatörler listesinden Stochastic Oscillator göstergesini kolayca seçebilirsiniz:

      Stochastic Oscillator göstergesini ekleme

      Stochastic Oscillator seçildikten sonra aşağıdaki pencere görüntülenecektir:

      Stochastic Oscillator göstergesi parametreleri

      Göstergenin parametreleri:

      1. Periyodu belirler
      2. Hızlı Stochastic Oscillator’ın %D değeri için hareketli ortalama periyodunu belirler
      3. Yavaş Stochastic Oscillator’ın %D değeri için hareketli ortalama periyodunu belirler
      4. İlişkiyi ölçmede kullanılacak fiyat aralığı türünü belirler
      5. Hesaplamada kullanılacak hareketli ortalama türünü belirler
      6. %K çizgisinin rengini, stilini ve kalınlığını belirler
      7. %D çizgisinin rengini, stilini ve kalınlığını belirler

      Tercihlerinize göre parametreleri belirledikten sonra, gösterge grafiğe eklenecek ve aşağıdaki gibi görünecektir:

      Grafikte Stochastic Oscillator göstergesi

      Yukarıdaki görüntüye bakarsak, alt pencerede sıfır ile 100 arasında salınan ve 2 çizgiye (%K ve %D) sahip olan Stochastic Oscillator göstergesini görebiliriz:

      • Stoch(14, 3,3): göstergenin adını ve seçilen parametreleri temsil eder: Periyot 14, hızlı Stochastic Oscillator’ın %D değeri için hareketli ortalama periyodu 3 ve yavaş Stochastic Oscillator’ın %D değeri için hareketli ortalama periyodu 3.
      • 36.85: %K değerini temsil eder.
      • 38.28: %D değerini temsil eder.

      Hesaplamasına dayalı olarak, Stochastic Oscillator göstergesi çoğu zaman piyasa yönünde hareket edecektir, çünkü daha önce de belirttiğimiz gibi fiyatlar, piyasa hareketine bağlı olarak periyodun üst veya alt aralığına yakın şekilde kapanma eğilimindedir.

      Yükseliş trendi sırasında:

      Yükseliş trendi, alıcıların/boğaların kontrolünün olduğu ve fiyatların yukarı yönlü olarak hareket ettiği bir piyasa yönüdür. Bu piyasa yönünde, fiyatlar daha yüksek pikler ve daha yüksek çukurlar oluşturur. Bu piyasayı boğa piyasası olarak da adlandırabiliriz.

      Yükseliş trendi sırasında çoğu zaman, fiyatların periyodun fiyat aralığının üst kısmına yakın şekilde kapanma eğiliminde olduğunu ve göstergenin de 50 ile 100 seviyesi arasında salınma eğiliminde olduğunu görebiliriz. Bu durumun bir örneği aşağıdaki görüntüde gösterilmektedir:

      Yükseliş trendi sırasında Stochastic Oscillator

      Düşüş trendi sırasında:

      Düşüş trendi, satıcıların/ayıların kontrolünün olduğu ve fiyatların aşağı yönlü olarak hareket ettiği bir piyasa yönüdür. Bu piyasa yönünde, fiyatlar daha düşük dipler ve daha düşük çukurlar oluşturur. Bu piyasayı ayı piyasası olarak da adlandırabiliriz.

      Düşüş trendi sırasında çoğu zaman, fiyatların periyodun fiyat aralığının alt kısmına yakın şekilde kapanma eğiliminde olduğunu ve göstergenin de 50 ile 0 seviyesi arasında salınma eğiliminde olduğunu görebiliriz. Bu durumun bir örneği aşağıdaki görüntüde gösterilmektedir:

      Düşüş trendi sırasında Stochastic Oscillator

      Yatay hareket sırasında:

      Yatay hareket, yukarı veya aşağı yönü net olmayan fiyat hareketidir. Alıcılar/boğalar ve satıcılar/ayılar arasında bir denge olarak düşünülebilir. Bu, yükseliş trendi veya düşüş trendi ile ilişkilendirilemeyen herhangi bir harekettir.

      Yatay hareket sırasında çoğu zaman, fiyatların periyodun fiyat aralığının orta kısmına yakın şekilde kapanma eğiliminde olduğunu ve göstergenin de 20 ile 80 seviyesi arasında salınma eğiliminde olduğunu görebiliriz. Bu durumun bir örneği aşağıdaki görüntüde gösterilmektedir:

      Yatay hareket sırasında Stochastic Oscillator

      Artık Stochastic Oscillator göstergenin farklı piyasa yönlerinde nasıl hareket edebileceğini biliyoruz. Şimdi ise bunu lehimize nasıl kullanabileceğimizi öğrenmemiz gerekiyor. İşte bunu sıradaki konu aracılığıyla öğreneceğiz. Hadi devam edelim.


      Stochastic Oscillator göstergesi stratejileri

      Bu bölümde basit stratejilerle Stochastic Oscillator göstergesini nasıl kullanabileceğimizden bahsedeceğiz. Gösterge, piyasa yönüne göre sinyal almak için kullanılabilir, bu amaçla yükseliş trendi stratejisi, düşüş trendi stratejisi ve yatay hareket stratejisi düşünebiliriz.

      • Birinci strateji: Yükseliş trendi stratejisi

      Bu stratejiye dayalı olarak, %K ve %D çizgilerinin konumları kontrol edilecek: 50 seviyesinin altında olmalılar. Eğer öyleyse, devamında %K çizgisi %D çizgisini aşağıdan yukarıya doğru çaprazladığında alış sinyali üretilecek. Kârı almak için fiyat hareketi (örneğin daha düşük bir dip) gibi başka bir etkili araç kullanılabilir.

      %K ve %D < 50 --> %K > %D = Alış sinyali
        • İkinci strateji: Düşüş trendi stratejisi

        Bu stratejiye dayalı olarak, %K ve %D çizgilerinin konumları kontrol edilecek: 50 seviyesinin üzerinde olmalılar. Eğer öyleyse, devamında %K çizgisi %D çizgisini yukarıdan aşağıya doğru çaprazladığında satış sinyali üretilecek. Kârı almak için fiyat hareketi (örneğin daha yüksek bir pik) gibi başka bir etkili araç kullanılabilir.

        %K ve %D > 50 --> %K < %D = Satış sinyali
          • Üçüncü strateji: Yatay hareket stratejisi
            • Alış sinyali

          Bu stratejiye dayalı olarak, %K ve %D çizgilerinin konumları kontrol edilecek: 20 seviyesinin altında olmalılar. Eğer öyleyse, devamında %K çizgisi %D çizgisini aşağıdan yukarıya doğru çaprazladığında alış sinyali üretilecek. %K ve %D çizgisi 80'in üzerindeyken, %K çizgisi %D çizgisinin yukarıdan aşağıya doğru çaprazladığında da kârı al sinyali üretilecek.

          %K ve %D < 20 --> %K > %D = Alış sinyali
          %K ve %D > 80 --> %K < %D = Kârı al sinyali

              • Satış sinyali

                Bu stratejiye dayalı olarak, %K ve %D çizgilerinin konumları kontrol edilecek: 80 seviyesinin üzerinde olmalılar. Eğer öyleyse, devamında %K çizgisi %D çizgisini yukarıdan aşağıya doğru çaprazladığında satış sinyali üretilecek. %K ve %D çizgisi 20'nin altındayken, %K çizgisi %D çizgisinin aşağıdan yukarıya doğru çaprazladığında da kârı al sinyali üretilecek.

                %K ve %D > 80 --> %K < %D = Satış sinyali
                %K ve %D < 20 --> %K > %D = Kârı al sinyali

                Stochastic Oscillator için kullanılabilecek basitten karmaşığa birçok stratejinin mevcut olduğunu belirtmek istiyorum. Ayrıca gösterge tek başına kullanılabileceği gibi, daha iyi sonuçlar verebilecek şekilde başka bir araçla da birleştirilebilir. Ancak biz burada Stochastic Oscillator’ın nasıl kullanılabileceğini anlamak adına sadece basit stratejilerden bahsediyoruz.


                  Stochastic Oscillator göstergesine dayalı ticaret sisteminin planı

                  Bu bölümde, yukarıda ele aldığımız stratejilere dayalı olarak bir ticaret sistemi oluşturmamıza yardımcı olacak bir plan hazırlayacağız. Bu plan tüm adımları gösterecek ve ortaya çıkacak programın tam olarak ne yapması gerektiğine dair bir kılavuz olarak hizmet edecektir.

                  • Birinci strateji: Yükseliş trendi stratejisi

                  %K ve %D < 50 --> %K > %D = Alış sinyali

                  Öncelikle program %K ve %D çizgilerinin konumunu kontrol edecek ve onların 50 seviyesinin altında olup olmadığını belirleyecek. Eğer 50 seviyesinin altındalarsa, %K çizgisi %D çizgisini aşağıdan yukarıya doğru çaprazlayana kadar program hiçbir şey yapmadan bekleyecek. %K çizgisi %D çizgisini aşağıdan yukarıya doğru çaprazladığında da alış sinyali üretecek. Eğer %K ve %D çizgileri 50 seviyesine eşit veya üzerindeyse, program hiçbir şey yapmayacak.

                  Aşağıdaki görüntü bu stratejinin planını göstermektedir:

                  Yükseliş trendi stratejisi planı

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

                  %K ve %D > 50 --> %K < %D = Satış sinyali

                  Öncelikle program %K ve %D çizgilerinin konumunu kontrol edecek ve onların 50 seviyesinin üzerinde olup olmadığını belirleyecek. Eğer 50 seviyesinin üzerindelerse, %K çizgisi %D çizgisini yukarıdan aşağıya doğru çaprazlayana kadar program hiçbir şey yapmadan bekleyecek. %K çizgisi %D çizgisini yukarıdan aşağıya doğru çaprazladığında da satış sinyali üretecek. Eğer %K ve %D çizgileri 50 seviyesine eşit veya altındaysa, program hiçbir şey yapmayacak.

                  Aşağıdaki görüntü bu stratejinin planını göstermektedir:

                  Düşüş trendi stratejisi planı

                  • Üçüncü strateji: Yatay hareket stratejisi

                  Alış sinyali

                  %K ve %D < 20 --> %K > %D = Alış sinyali

                  %K ve %D > 80 --> %K < %D = Kârı al sinyali

                  Öncelikle program %K ve %D çizgilerinin konumunu kontrol edecek ve onların 20 seviyesinin altında olup olmadığını belirleyecek. Eğer 20 seviyesinin altındalarsa, %K çizgisi %D çizgisini aşağıdan yukarıya doğru çaprazlayana kadar program hiçbir şey yapmadan bekleyecek. %K çizgisi %D çizgisini aşağıdan yukarıya doğru çaprazladığında da alış sinyali üretecek. Eğer %K ve %D çizgileri 20 seviyesine eşit veya üzerindeyse, program hiçbir şey yapmayacak. Daha sonra program %K ve %D çizgilerinin konumunu yine kontrol ederek onların 80 seviyesinin üzerinde olup olmadığını belirleyecek. Eğer 80 seviyesinin üzerindelerse, %K çizgisi %D çizgisini yukarıdan aşağıya doğru çaprazlayana kadar program hiçbir şey yapmadan bekleyecek. %K çizgisi %D çizgisini yukarıdan aşağıya doğru çaprazladığında da kârı al sinyali üretecek. Alış sinyali sonrası %K ve %D çizgileri 80 seviyesine eşit veya altında olduğu sürece, program hiçbir şey yapmayacak.

                  Aşağıdaki görüntü bu stratejinin alış için planını göstermektedir:

                  Yatay hareket stratejisi planı - Alış sinyali

                  Satış sinyali

                  %K ve %D > 80 --> %K < %D = Satış sinyali

                  %K ve %D < 20 --> %K > %D = Kârı al sinyali

                  Öncelikle program %K ve %D çizgilerinin konumunu kontrol edecek ve onların 80 seviyesinin üzerinde olup olmadığını belirleyecek. Eğer 80 seviyesinin üzerindelerse, %K çizgisi %D çizgisini yukarıdan aşağıya doğru çaprazlayana kadar program hiçbir şey yapmadan bekleyecek. %K çizgisi %D çizgisini yukarıdan aşağıya doğru çaprazladığında da satış sinyali üretecek. Eğer %K ve %D çizgileri 80 seviyesine eşit veya altındaysa, program hiçbir şey yapmayacak. Daha sonra program %K ve %D çizgilerinin konumunu yine kontrol ederek onların 20 seviyesinin altında olup olmadığını belirleyecek. Eğer 20 seviyesinin altındalarsa, %K çizgisi %D çizgisini aşağıdan yukarıya doğru çaprazlayana kadar program hiçbir şey yapmadan bekleyecek. %K çizgisi %D çizgisini aşağıdan yukarıya doğru çaprazladığında da kârı al sinyali üretecek. Satış sinyali sonrası %K ve %D çizgileri 20 seviyesine eşit veya üzerinde olduğu sürece, program hiçbir şey yapmayacak.

                  Aşağıdaki görüntü bu stratejinin satış için planını göstermektedir:

                  Yatay hareket stratejisi planı - Satış sinyali

                  Şimdiye kadar, Stochastic Oscillator göstergesiyle kullanılabilecek basit stratejileri ele aldık ve bu stratejiler için bir ticaret sistemi oluşturmamıza yardımcı olacak bir plan hazırladık. Bir sonraki bölümde ise, ticaret sistemini nasıl geliştireceğimizi öğreneceğiz.


                  Stochastic Oscillator göstergesine dayalı ticaret sistemi

                  Şimdi, ele aldığımız stratejilere dayalı olarak çalışan bir ticaret sisteminin nasıl kodlanacağını öğreneceğimiz belki de bu makalenin en ilginç bölümüne başlıyoruz. Programlama, ticaret kararlarına duyguları dahil etmeden stratejilerimizi disiplinli bir şekilde yürütmemize olanak sağlayarak etkili bir şekilde ticaret yapmamıza yardımcı olan harika bir araçtır ve en önemlisi de herhangi bir stratejiyi gerçek hesapta kullanmadan önce onun test edilmesini mümkün kılar. Hadi ticaret sistemimizi yazmaya başlayalım.

                  İlk olarak, Stochastic Oscillator çizgilerinin değerlerini grafik üzerinde gösterecek bir program yazalım. Yazarken, ticaret sistemlerinin nasıl oluşturulduğunu tam olarak anlamak adına yazdıklarımızı satır satır analiz edeceğiz.

                  Öncelikle, %K ve %D çizgileri için diziler oluşturmamız gerekiyor, burada, değerleri kesirli olarak sunan “double”ı kullanacağız:

                  double Karray[];
                  double Darray[];
                  
                  

                  Ardından oluşturulan dizileri mevcut veriden sıralamamız gerekiyor, bunun için “ArraySetAsSeries” fonksiyonunu kullanacağız:

                  ArraySetAsSeries(Karray, true);
                  ArraySetAsSeries(Darray, true);
                  

                  Devamında, göstergeyi tanımlamamız gerekiyor. "iStochastic" fonksiyonunu kullanarak, göstergeyi tanımlayacak şekilde "StochDef” adlı bir değişken oluşturuyoruz:

                  int StochDef = iStochastic(_Symbol,_Period,14,3,3,MODE_SMA,STO_LOWHIGH);

                  Sonrasında, dizileri fiyat verileriyle doldurmamız gerekiyor, bunun için "CopyBuffer" fonksiyonunu kullanacağız:

                  CopyBuffer(StochDef,0,0,3,Karray);
                  CopyBuffer(StochDef,1,0,3,Darray);
                  
                  

                  Daha sonra, dizilerdeki verilerin %K ve %D çizgi değerlerini hesaplayacağız, kesirlerin uzunluğunu azaltmak ve yaklaşık olması için "float" kullanacağız:

                  float KValue = Karray[0];
                  float DValue = Darray[0];
                  
                  

                  Kodun son satırı ise, programın %K ve %D çizgilerinin değerini grafik üzerinde iki satır halinde göstermesini sağlayacak, bu amaçla da "Comment" fonksiyonunu kullanacağız:

                  Comment("%K value is ", KValue,"\n""%D Value is ",DValue);

                  Aşağıdaki kod yukarıda açıklananla aynıdır, ancak ihtiyacınız olduğunda tek adımda kopyalayabilmeniz adına tek bir blok halinde sunulmuştur:

                  //+------------------------------------------------------------------+
                  //|                       Simple Stochastic System - Lines Value.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 for %K line and %D line   
                     double Karray[];
                     double Darray[];
                     
                  //sorting arrays from the current data   
                     ArraySetAsSeries(Karray, true);
                     ArraySetAsSeries(Darray, true);
                  
                  //defining the stochastic indicator   
                     int StochDef = iStochastic(_Symbol,_Period,14,3,3,MODE_SMA,STO_LOWHIGH);
                  
                  //filling arrays with price data   
                     CopyBuffer(StochDef,0,0,3,Karray);
                     CopyBuffer(StochDef,1,0,3,Darray);
                  
                  //calculating value of %K and %D line of cuurent data  
                     float KValue = Karray[0];
                     float DValue = Darray[0];
                     
                  //commenting calcualted values on the chart   
                     Comment("%K value is ",KValue,"\n"
                     "%D Value is ",DValue);
                        
                    }
                  //+------------------------------------------------------------------+
                  

                  Şu ana kadar, Stochastic Oscillator çizgilerinin mevcut değerlerini grafik üzerinde görüntüleyebilen bir programın kodunu yazdık. Şimdi ise bu programı MetaTrader 5 işlem terminalinde çalıştırmamız gerekiyor. Kodu editörde derledikten sonra program işlem terminalinin Kılavuz penceresinde görünecektir:

                  Kılavuz - Simple Stochastic System - Lines Value

                  Simple Stochastic System - Lines Value dosyasını grafiğe sürükleyip bıraktıktan sonra aşağıdaki pencere açılacaktır:

                  Simple Stochastic System - Lines Value penceresi


                  Tamam tuşuna bastıktan sonra, program (Uzman Danışman) aşağıdaki görüntüdeki gibi grafiğe eklenecektir:

                  Grafiğe eklenmiş Simple Stochastic System - Lines Value

                  Böylece, programın aşağıdaki görüntüdeki gibi Stochastic Oscillator çizgilerinin değerlerini ürettiğini görebiliriz:

                  Grafikte Stochastic Oscillator çizgilerinin değerleri

                  Şimdi, ele aldığımız stratejilere dayalı ticaret sisteminin kodunu yazmaya geçebiliriz. Oluşturacağımız program ilgili stratejilere karşılık gelen sinyalleri grafik üzerinde yorum olarak gösterecektir. Hadi başlayalım...

                  • Birinci strateji: Yükseliş trendi stratejisi

                  %K ve %D < 50 --> %K > %D = Alış sinyali

                  İşte, göstergenin değerlerini analiz ederek bu stratejiye dayalı olarak grafik üzerinde sinyalleri gösterecek ticaret sisteminin kodu:

                  //+------------------------------------------------------------------+
                  //|                  Simple Stochastic 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()
                    {
                     string signal="";
                     
                     double Karray[];
                     double Darray[];
                     
                     ArraySetAsSeries(Karray, true);
                     ArraySetAsSeries(Darray, true);
                     
                     int StochDef = iStochastic(_Symbol,_Period,14,3,3,MODE_SMA,STO_LOWHIGH);
                     
                     CopyBuffer(StochDef,0,0,3,Karray);
                     CopyBuffer(StochDef,1,0,3,Darray);
                     
                     double KValue0 = Karray[0];
                     double DValue0 = Darray[0];
                     
                     double KValue1 = Karray[1];
                     double DValue1 = Darray[1];
                     
                     if (KValue0<50&&DValue0<50)
                        if ((KValue0>DValue0) && (KValue1<DValue1))
                        {
                           signal = "BUY";
                        }      
                        
                     Comment("SSS - Uptrend Strategy - Signal is ",signal);
                        
                    }
                  //+------------------------------------------------------------------+
                  

                  Bir önceki koda kıyasla bu koda eklenenler:

                  Sonradan hesaplanacağı için boş değerli olarak "signal" adlı bir değişken oluşturuldu:

                  string signal="";

                  Mevcut veriler ve bir önceki veriler için olmak üzere (0 ve 1 için) %K değerleri ve %D değerleri adına ikişer değişken oluşturuldu:

                     double KValue0 = Karray[0];
                     double DValue0 = Darray[0];
                     
                     double KValue1 = Karray[1];
                     double DValue1 = Darray[1];
                  

                  %K çizgisinin %D çizgisini çaprazlama olaylarının değerlendirilmesine ihtiyacımız vardır: bu strateji için, %K çizgisinin %D çizgisini yukarıya doğru çaprazlama olayları koşullara uygun olarak analiz edilmelidir. Bunu yapmak için “if” ifadesini kullanırız:

                     if (KValue0<50&&DValue0<50)
                        if ((KValue0>DValue0) && (KValue1<DValue1))
                        {
                           signal = "BUY";
                        }      
                        
                  

                  İlgili koşullara uygun olarak bir çaprazlama bulunduğunda, “signal” değişkeni “BUY” olarak ayarlanmalıdır. Devamında, bu sinyal grafikte gösterilmelidir. Bu, şu kod satırıyla gerçekleştirilir:

                  Comment("SSS - Uptrend Strategy - Signal is ",signal);

                  Programın kodunu yazdıktan ve derledikten sonra onu Kılavuz penceresinden bulabiliriz:

                  Kılavuz - Simple Stochastic System - Uptrend Strategy

                  Dosyayı grafik üzerine sürükleyip bıraktıktan sonra, aşağıdaki pencere görünecektir:

                  Simple Stochastic System - Uptrend Strategy penceresi


                  Tamama bastıktan sonra program grafiğe eklenecektir:

                  Grafiğe eklenmiş Simple Stochastic System - Uptrend Strategy

                  Program iyi çalışıyor ve örneğin test sırasında şu şekilde bir sinyal gösterdi:

                  Simple Stochastic System - Uptrend Strategy - Alış sinyali

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

                  %K ve %D > 50 --> %K < %D = Satış sinyali

                  Düşüş trendi stratejisine dayalı ticaret sisteminin kodu şu şekildedir:

                  //+------------------------------------------------------------------+
                  //|                Simple Stochastic 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()
                    {
                     string signal="";
                     
                     double Karray[];
                     double Darray[];
                     
                     ArraySetAsSeries(Karray, true);
                     ArraySetAsSeries(Darray, true);
                     
                     int StochDef = iStochastic(_Symbol,_Period,5,3,3,MODE_SMA,STO_LOWHIGH);
                     
                     CopyBuffer(StochDef,0,0,3,Karray);
                     CopyBuffer(StochDef,1,0,3,Darray);
                     
                     double KValue0 = Karray[0];
                     double DValue0 = Darray[0];
                     
                     double KValue1 = Karray[1];
                     double DValue1 = Darray[1];
                           
                     if (KValue0>50&&DValue0>50)
                        if ((KValue0<DValue0) && (KValue1>DValue1))
                        {
                           signal = "SELL";
                        }
                        
                     Comment("SSS - Downtrend Strategy - Signal is ",signal);
                        
                    }
                  //+------------------------------------------------------------------+
                  

                  Farklılıklar şunlardır:

                  • Çaprazlama koşulları

                     if (KValue0>50&&DValue0>50)
                        if ((KValue0<DValue0) && (KValue1>DValue1))
                        {
                           signal = "SELL";
                        }
                        
                  

                  • Yorum çıktısı

                     Comment("SSS - Downtrend Strategy - Signal is ",signal);

                  Derledikten sonra, programın dosyasını Kılavuz penceresinden bulabiliriz:

                  Kılavuz - Simple Stochastic System - Downtrend Strategy

                  Dosyayı grafik üzerine sürükleyip bıraktığınızda aşağıdaki pencere açılacaktır:

                  Simple Stochastic System - Downtrend Strategy penceresi

                  Tamam düğmesine bastıktan sonra program grafiğe eklenecektir:

                  Grafiğe eklenmiş Simple Stochastic System - Downtrend Strategy 

                   Sinyaller, bu stratejinin koşullarına uygun olarak grafik üzerinde yorum olarak gösterilecektir. Aşağıdaki görüntüde böyle bir sinyalin örneği gösterilmektedir:

                  Simple Stochastic System - Downtrend Strategy - Satış sinyali

                  • Üçüncü strateji: Yatay hareket stratejisi
                    • Alış sinyali

                  %K ve %D < 20 --> %K > %D = Alış sinyali

                  %K ve %D > 80 --> %K < %D = Kârı al sinyali

                  Bu stratejiye dayalı olarak sinyaller üretebilen ticaret sisteminin kodu:

                  //+------------------------------------------------------------------+
                  //|           Simple Stochastic System - 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"
                  //+------------------------------------------------------------------+
                  void OnTick()
                    {
                     string signal="";
                     
                     double Karray[];
                     double Darray[];
                     
                     ArraySetAsSeries(Karray, true);
                     ArraySetAsSeries(Darray, true);
                     
                     int StochDef = iStochastic(_Symbol,_Period,5,3,3,MODE_SMA,STO_LOWHIGH);
                     
                     CopyBuffer(StochDef,0,0,3,Karray);
                     CopyBuffer(StochDef,1,0,3,Darray);
                     
                     double KValue0 = Karray[0];
                     double DValue0 = Darray[0];
                     
                     double KValue1 = Karray[1];
                     double DValue1 = Darray[1];
                     
                     if (KValue0<20&&DValue0<20)
                        if ((KValue0>DValue0) && (KValue1<DValue1))
                        {
                           signal = "BUY";
                        }      
                        
                     Comment("SSS - Sideways - Buy Strategy - Signal is ",signal);
                     
                      if (KValue0>80&&DValue0>80)
                        if ((KValue0<DValue0) && (KValue1>DValue1))
                        {
                           signal = "Take Profit";
                        }
                        
                     Comment("SSS - Sideways - Buy Strategy - Signal is ",signal);  
                        
                    }
                  //+------------------------------------------------------------------+
                  

                  Farklılıklar şunlardır:

                  • Yatay hareket stratejisinin alış sinyaline uygun çaprazlama koşulları:

                     if (KValue0<20&&DValue0<20)
                        if ((KValue0>DValue0) && (KValue1<DValue1))
                        {
                           signal = "BUY";
                        }      
                        
                  

                  • Yatay hareket stratejisinin alış sinyaline uygun yorum:

                     Comment("SSS - Sideways - Buy Strategy - Signal is ",signal);

                  • Yatay hareket stratejisinin kârı al sinyaline uygun çaprazlama koşulları:

                      if (KValue0>80&&DValue0>80)
                        if ((KValue0<DValue0) && (KValue1>DValue1))
                        {
                           signal = "Take Profit";
                        }
                        
                  

                  • Yatay hareket stratejisinin kârı al sinyaline uygun yorum:

                     Comment("SSS - Sideways - Buy Strategy - Signal is ",signal);

                  Derlendikten sonra, ticaret sisteminin dosyası Kılavuz penceresinde görünecektir:

                  Kılavuz - Simple Stochastic System - Sideways - Buy Strategy

                  Dosyayı grafik üzerine sürükleyip bıraktığınızda aşağıdaki pencere açılacaktır:

                  Simple Stochastic System - Sideways - Buy Strategy penceresi

                  Tamam düğmesine bastıktan sonra program grafiğe eklenecektir:

                  Grafiğe eklenmiş Simple Stochastic System - Sideways - Buy Strategy

                  Sinyaller, bu stratejinin koşullarına uygun olarak grafik üzerinde yorum olarak gösterilecektir. Aşağıdaki görüntü böyle bir sinyalin örneğini göstermektedir:

                  Simple Stochastic System - Sideways - Buy Strategy - Alış sinyali

                  Kârı al sinyali örneği:

                  Simple Stochastic System - Sideways - Buy Strategy - Kârı al sinyali

                    • Yatay hareket stratejisi: Satış sinyali

                  %K ve %D > 80 --> %K < %D = Satış sinyali

                  %K, %D < 20 --> %K > %D = Kârı al sinyali

                  Bu strateji için ticaret sistemi kodu aşağıdaki gibi olacaktır:

                  //+------------------------------------------------------------------+
                  //|          Simple Stochastic System - Sideways - Sell 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()
                    {
                     string signal="";
                     
                     double Karray[];
                     double Darray[];
                     
                     ArraySetAsSeries(Karray, true);
                     ArraySetAsSeries(Darray, true);
                     
                     int StochDef = iStochastic(_Symbol,_Period,5,3,3,MODE_SMA,STO_LOWHIGH);
                     
                     CopyBuffer(StochDef,0,0,3,Karray);
                     CopyBuffer(StochDef,1,0,3,Darray);
                     
                     double KValue0 = Karray[0];
                     double DValue0 = Darray[0];
                     
                     double KValue1 = Karray[1];
                     double DValue1 = Darray[1];  
                     
                      if (KValue0>80&&DValue0>80)
                        if ((KValue0<DValue0) && (KValue1>DValue1))
                        {
                           signal = "SELL";
                        }
                        
                     Comment("SSS - Sideways - Sell Strategy - Signal is ",signal);  
                     
                     if (KValue0<20&&DValue0<20)
                        if ((KValue0>DValue0) && (KValue1<DValue1))
                        {
                           signal = "TAKE PROFIT";
                        }         
                     Comment("SSS - Sideways - Sell Strategy - Signal is ",signal);  
                    }
                  //+------------------------------------------------------------------+
                  
                  

                  Farklılıklar şunlardır:

                  • Yatay hareket stratejisinin satış sinyaline uygun çaprazlama koşulları:
                      if (KValue0>80&&DValue0>80)
                        if ((KValue0<DValue0) && (KValue1>DValue1))
                        {
                           signal = "SELL";
                        }
                  
                  • Yatay hareket stratejisinin satış sinyaline uygun yorum:
                     Comment("SSS - Sideways - Sell Strategy - Signal is ",signal);  
                  • Yatay hareket stratejisinin kârı al sinyaline uygun çaprazlama koşulları:
                     if (KValue0<20&&DValue0<20)
                        if ((KValue0>DValue0) && (KValue1<DValue1))
                        {
                           signal = "TAKE PROFIT";
                        }   
                  
                  • Yatay hareket stratejisinin kârı al sinyaline uygun çaprazlama koşulları: 
                     Comment("SSS - Sideways - Sell Strategy - Signal is ",signal);  

                  Derlendikten sonra, ticaret sisteminin dosyası Kılavuz penceresinde görünecektir:

                  Kılavuz - Simple Stochastic System - Sideways - Sell Strategy

                  Dosyayı grafik üzerine sürükleyip bıraktığınızda aşağıdaki pencere açılacaktır:

                  Simple Stochastic System - Sideways - Sell Strategy penceresi

                  Tamam düğmesine bastıktan sonra program grafiğe eklenecektir:

                  Grafiğe eklenmiş Simple Stochastic System - Sideways - Sell Strategy

                  Aşağıdaki görüntü, bu stratejiye göre oluşturulmuş bir satış sinyali örneğini göstermektedir:

                  Simple Stochastic System - Sideways - Sell Strategy - Satış sinyali

                  Aşağıdaki görüntü, bu stratejiye göre oluşturulmuş bir kârı al sinyali örneğini göstermektedir:

                  Simple Stochastic System - Sideways - Sell Strategy - Kârı al sinyali

                  Sonuç

                  Bu makalenin sonunda, ticaret dünyasındaki en popüler göstergelerden biri olan Stochastic Oscillator göstergesini kullanarak basit bir ticaret sisteminin nasıl oluşturulacağının temellerini artık öğrendiğimizi söyleyebiliriz. Umarım Stochastic Oscillator göstergesinin ne olduğunu, neyi ölçtüğünü ve nasıl hesaplandığını anlamışsınızdır - tüm bunlardan ayrıntılı olarak konuştuk. Umarım ele aldığımız basit stratejiler, göstergeyi nasıl kullanabileceğiniz konusunda size yeni fikirler sağlamıştır. Ayrıca makalede, bu basit stratejilere dayalı bir ticaret sistemini kolay ve sorunsuz bir şekilde oluşturmamızda bize kılavuzluk edecek bir plan da hazırladık. Ve makalenin son bölümünde de, böyle bir ticaret sisteminin nasıl tasarlanacağını inceledik.

                  Umarım bu makale sizin için faydalı olur ve ticaret hedeflerinize ulaşmanıza yardım sağlar. En popüler ve kullanışlı göstergelerden biri olan Stochastic Oscillator’ı analiz ederek yeni fikirler keşfedebileceğinizi umuyorum. Bir sonraki makalede görüşmek üzere!

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

                  Veri Bilimi ve Makine Öğrenimi (Bölüm 01): Lineer Regresyon Veri Bilimi ve Makine Öğrenimi (Bölüm 01): Lineer Regresyon
                  Yatırımcılar olarak sistemlerimizi ve kendimizi sayıların söylediklerine dayalı şekilde kararlar alma konusunda eğitmemizin zamanı geldi. Tüm dünyanın hareket ettiği şekilde, görsel veya sezgisel olarak değil, biz, bu genel dalganın yönüne dik olarak hareket edeceğiz.
                  MACD göstergesine dayalı bir ticaret sistemi nasıl geliştirilir? MACD göstergesine dayalı bir ticaret sistemi nasıl geliştirilir?
                  Makale serimizin bu bölümünde de en popüler teknik göstergelerden biri olan Moving Average Convergence Divergence (MACD) göstergesine dayalı bir ticaret sisteminin nasıl tasarlanacağını öğreneceğiz.
                  Hareketli ortalamalar ile neler yapılabilir? Hareketli ortalamalar ile neler yapılabilir?
                  Bu makalemde hareketli ortalamalarla kullanılabilecek çeşitli fikirleri ele alıyorum. Makalede, çizgi analizi içeren her fikre, onu görselleştiren gösterge eşlik etmektedir. Burada sunulan fikirlerin çoğu saygın yazarlarına aittir. Benim bu makaledeki görevim ise bu fikirleri bir araya getirerek ana yaklaşımları görmenizi sağlamak ve böylece daha iyi ticaret kararları vermenizi mümkün kılmaktır. MQL5 bilgi seviyesi - başlangıç.
                  Bir grafikte birden fazla gösterge (Bölüm 06): MetaTrader 5'i bir RAD sistemine dönüştürme (II) Bir grafikte birden fazla gösterge (Bölüm 06): MetaTrader 5'i bir RAD sistemine dönüştürme (II)
                  Bir önceki makalemde size MetaTrader 5 nesnelerini kullanarak bir ticaret arayüzünün nasıl oluşturulacağını ve böylelikle platformun bir RAD sistemine nasıl dönüştürüleceğini göstermiştim. Sistem çok iyi çalışıyor, şüphesiz birçok okuyucu önerilen sistemde daha fazla işlevselliğe sahip olmak için bir kütüphane oluşturmayı düşünmüştür. Böylece, daha hoş ve kullanımı daha kolay bir arayüze sahip daha sezgisel bir Uzman Danışman geliştirmek mümkün olacaktır.