If, Cross, Dema, Dis Uygulaması İle Basit Bir Osilatör Ve Impulse Yaklaşımı İle Ani Hareketlerin Tespiti
Bilindiği üzere PDI()-MDI(), -Matriks platformunda hazır olarak sunulan DIS()- hazır indikatörlerden oldukça kullanışlı olanlardandır. Bu indikatörün 0, 20, 40 değerlerini yukarı veya aşağı kesmesi önemli gösterge sayılabilecek durumlardandır. -20 değeri de önemli bir göstergedir ancak bu farklı bir yazının konusudur. Bir sürekli fonksiyonun -örneğin indikatörün- belirli bir referans değeri etrafındaki dalgalanmalarının başka bir deyişle bu değeri bir yukarı bir aşağı kesmesi durumunun oluşturacağı parazitler dahil bazı olumsuz durumları ortadan kaldırmak için sürekli bir matematiksel fonksiyonun DEMA'sını alıyorduk. Bu çalışmamızda DEMA (dis(15),7) üzerinde çalışacağız.Buna DDIS diyelim. DIS(15) ve Dema(DIS(15),7) grafikleri aşağıda verilmiştir.

DDIS'ın
- "0" ı yukarı kesmesi durumu bize 3 sayısını üretsin . Bu durumu IF(Cross(Dema(dis(15),7),0),3,?) şeklinde ifade ederiz. DDIS'in sıfırı yukarı kesmesi durumunda bu ifade 3 üretir ama diğer durumlar için ne üreteceği henüz belli olmadığı için, koşulun gerçekleşmemesi durumu için beklenen değer ? olarak bbrakılmıştır.
-"20"yi yukarı kesmesi durumu bize 2 sayısını üretsin. Bu durumu
IF(Cross(Dema(dis(15),7),20),2,?) şeklinde ifade ederiz.
-"40" ı yukarı kesmesi durumu bize 1 sayısını üretsin. Bu durumu
IF(Cross(Dema(dis(15),7),40),1,?) şeklinde ifade ederiz.
-"40" ı aşağı kesmesi -3 sayısını üretsin. Bu durumu
if(cross(40,dema(dis(15),7)),-3,?) şeklinde ifade ederiz.
-"20" yi aşağı kesmesi bize -2 sayısını üretsin. Bu durumu
if(cross(20,dema(dis(15),7)),-2,?) şeklinde ifade ederiz.
-"0" ı aşağı kesmesi durumu bize -1 sayısını üretsin.
if(cross(0,dema(dis(15),7)),-1,?) şeklinde ifade ederiz.
Peki bu 6 koşulu tek bir indikatörde nasıl birleştiririz? Bu altı koşulu bir IF zinciri ile birleştirmek mümkündür. Yani Matriks diline çevrilecek metin şudur.
"DDIS 0 ı yukarı kestiyse 3 üret, kesmediyse 20 yi yukarı kesip kesmediğine bak, kestiyse 2 üret, kesmediyse 40 ı yukarı kesip kesmediğine bak,kestiyse 1 üret, kesmediyse 40 ı aşağı kesip kesmediğine bak, kestiyse -3 üret, kesmediyse 20 yi aşağı kesip kesmediğine bak, kestiyse -2 üret, kesmediyse 0 ı aşağı kesip kesmediğine bak, kesdiyse -1 üret, diğer her durumda 0 üret. Bunun ifadesi aşağıdaki gibidir.
if (cross(dema(dis(15),7), 0),3,if(cross(dema(dis(15),7),20),2,if(cross(dema(dis(15),7),40),1,if(cross(40,d ema(dis(15),7)),-3, if(cross(20,dema(dis(15),7)),-2,if(cross(0,dema(dis(15),7)),-1,0)))))) (1)
Bildiğiniz gibi IF komutu şu şekilde çalışır;
IF(Koşul, Koşul Doğruysa Dönülecek Veri, Koşul Yanlışsa Dönülecek Veri). Burada dönülecek veriler, sabir bir sayı, bir başka indikatör, bir başka sorgu v.b. herşey olabilir. Biz yukarıda her bir IF bloğunda sırasıyla birer koşulun doğru olup olmadığını sorduk, doğru olmadığı her durumda ise "Koşul Yanlışsa Dönülecek Veri" kısmına bir diğer IF koşulunu yazdık.
Elde ettiğimiz bu formülü Indicator Builder'da "DDISPulse" adı ve "DDSP" kısaltması ile tanımlayalım. Elde ettiğimiz çıktı aşağıdaki gibidir. Fiyatla ilişkisinin kolay görülmesi açısından DDISPulse indikatörü fiyat grafiğinin üzerine çizdirilmiştir.

Fiyatta genelde impuls'un çıktığı yönde (pozitif yada negatif) hareketin devam ettiği görülmektedir.
Sorular ve Notlar
• DEMA(DIS(15),7)) ifadesindeki 15 ve 7 değerleri neye göre seçilmiştir? Her döngü ve her enstruman için geçerli midir? Doğal olarak bu 15 ve 7 değerleri bu çalışmada rastgele seçilmiştir. Özellikle bir enstruman ve periyot için optimum değerler farklıdır. Bir enstrumana örneğin bir hisseye ilişkin ideal değerleri bulmanın yolu şudur. Sistemler bölümünde
Çalışma S1'de belirtilen yolla, DDIS'in 0'ı yukarı kesmesini AL, aşağı kesmesini SAT olarak tanımlayıp System Tester ile optimum değerleri bulup, bu DDISPulse indikatöründe de bunu kullanabilirsiniz. 15 ve 7 değerlerinin her ensturman ve her periyot için farklı olabileceğine dikkat ediniz.
• Zamanı bol olan analist, 0,20,40 değerlerinin her biri için ayrı x,y (DEMA(dis(x),y)) değerleri hesaplatabilir ve bunları yukardaki formülde günceleyerek kullanabilir.
• Tasarlana şey temelde bir osilatör'dür. Koşulların gerçekleşmesi durumunda indikatörün üreteceği değerler [-3,3] arasında belirlenmiştir. Peki 0 ın yukarı kesilmesi 3 değeri üretirken, neden 20 nin yukarı kesilmesi 2, 40 ın yukarı kesilmesi 1 üretmektedir? Peki 40 ın aşağı kesilmesi neden -3 üretilmektedir?
• Bu çalışmada DDIS'in -20 değeri formülün içinde yoktur. Bu değerde oldukça önemlidir ancak onun taşıdığı anlam 0,20, 40 ınkinden farklıdır.
Bu çalışma, IF, DEMA ve DIS'in kullanımı ile bir osilatör yada impulse üreteci elde etmek için yazılmıştı. Yukarıdaki soruların yanıtlarını bulan analist ise, bu yaklaşımı, pek tabiki geliştireceği sistem için kullanabilir. Özellikle, olası ani-hızlı fiyat hareketlerini tespit etmek için "impulse" yaklaşımı verimli olabilir. Diğer yandan bu ham çalışmada, iki impulse arasında olabilecekler yatırımcıyı rezillikle vezirlik arasında bir yerlere oturtabilir. Başka bir deyişle bu çalışmada okuyucu ile paylaşılan şeyin sadece bilgi ve yaklaşım olduğunu unutmamak gerekir. Bu bilgi ve yaklaşımların "gerçek" işlem yapmadan önce analist tarafından işlenmesi ve geliştirilmesi gerekir.
Kaynak: Vobmatriks 02.10.2009