WILLIAMSR İndikatörü Nedir?
WILLIAMSR indikatörü fiyatların birbirleriyle aralarında olan ilişkiye bakarak aşırı alım-satım bölgeleri ve uyumsuzluk tahmin etmeye çalışan bir indikatördür.
L.Williams tarafından geliştirilmiş WILLIAMSR indikatörü belirlenen zaman periyodunun içinde yer alan fiyatları belirlenen periyottaki en yüksek ve en düşük değerlere olan uzaklıklarına göre değerlendiren bir indikatördür.
WILLIAMSR İndikatörü Nasıl Kullanılır?
Genel kabul görmüş -80 ve -20 referans seviyeleri kullanılmaktadır. WILLIAMSR göstergesi sadece -100 ve 0 aralığında seyreder. İndikatörün değerinin -80 seviyesinin altına inmesi, aşırı-satım yapıldığının ve yakın bir zamanda "Alım" yapılabileceğine, -20 seviyesinde ise aşırı-alım yapıldığını ve yakın bir zamanda "Satım" yapılabileceğine yönelik bir çıkarım yapılabilir. Diğer aşırı alım-satım göstergeleri gibi fiyat ile indikatör değerleri arasındaki uyumsuzluk analiz edilebilir.
KODLAMA EDİTÖRÜ ÖRNEĞİ
//Strateji Girdilerinin(Gloabal Değişkenler) tanımlaması
public string SonYon="";
public string Sembol="VAKBN";
int lot=1;
public string Periyot="1";
//İndikatörün parametrelerinin tanımlanması
int Parametre1=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.WILLIAMSR(candles,Parametre1);
//Eğer indikatör -50 noktasını aşağıdan yukarı keserse ve SonYon BUY'a eşit değilse Alış Yap
if(Engine.Intersect(indicator,-50, "up") && SonYon!="BUY"){
SonYon="BUY";
SendOrder(Sembol,Directions.BUY,lot,PriceTypes.Market);
}
//Eğer indikatör -50 noktasını yukarıdan aşağı keserse ve SonYon SELL'e eşit değilse Satış Yap
else if(Engine.Intersect(indicator,-50, "down") && SonYon!="SELL"){
SonYon="SELL";
SendOrder(Sembol,Directions.SELL,lot,PriceTypes.Market);
}
}