Yönsel Hareket Endeksi (DMI)
Veri terminallerinde +Dİ –Dİ, dm, isimleriyle yer alan Yönsel Hareket Endeksi, J.Welles Wilder’in geliştirdiği bir indikatördür. Trend göstergeleri arasında yer almaktadır.
Trendin yönü hakkında fikir verir. Grafik üzerinde 2 çizgi şeklinde gösterilir. +Dİ alıcıları –Di satıcıları gösterir diyebiliriz. +Di fiyatın yukarı yönlü hareketini gösterirken, -Di aşağı yönlü fiyat hareketlerini göstermektedir.
En temel kullanım şekli ile +Dİ’nin –Dİ’yi yukarı kırması “alım”, +Dİ’nin –Dİ’yi aşağı kırması “satım” sinyalidir.
KODLAMA EDİTÖRÜ ÖRNEĞİ
//Strateji Girdilerinin(Gloabal Değişkenler) tanımlaması
public string SonYon="";
public string Sembol="VAKBN";
public string Periyot="1";
int lot=1;
//İndikatörün parametrelerinin tanımlanması
int Parametre=14;
//Strateji çalışmaya başladığında ilk olarak Load fonksiyonunu çalıştırır.
public void Load()
{
//SubscribePrice(Sembol) metodu ile o sembol'e abone olur ve fiyat dinlemeye başlar.
SubscribePrice(Sembol);
}
//Fiyat değişikliklerinde girilen fonksiyon
public void PriceChanged(Tick t)
{
//GetCandles(Sembol,Periyot) metodu ile sembolun o periyottaki açılış,kapanış vs. fiyatlarını tutan bir listeyi çeker.
var candles = GetCandles(Sembol,Periyot);
// Aşağıdaki kod satırı ile indikatörümüzü tanımlıyoruz.
var indicator = Engine.DirectionalMovement(candles,Parametre);
//Eğer indikatörün bir önceki değeri, iki önceki değerinden büyükse ve SonYon BUY'a eşit değilse Alış Yap
if(Engine.PreviousValue(indicator, 1)>Engine.PreviousValue(indicator, 2) && SonYon!="BUY"){
SonYon="BUY";
SendOrder(Sembol,Directions.BUY,lot,PriceTypes.Market);
}
//Eğer indikatörün bir önceki değeri,iki önceki değerinden küçükse ve SonYon SELL'e eşit değilse Satış Yap
else if(Engine.PreviousValue(indicator,1)<Engine.PreviousValue(indicator, 2) && SonYon!="SELL"){
SonYon="SELL";
SendOrder(Sembol,Directions.SELL,lot,PriceTypes.Market);
}
}