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

Mohamed Abdelmaaboud | 23 Ağustos, 2022

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:

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

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:

14 periyodun en yüksek fiyatı

14 periyodun en düşük fiyatı

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

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:

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.

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

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

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

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.

%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ı

%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ı

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

%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

%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:

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

   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

%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:

   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);

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

%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:

    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);  

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!