Standart Sapma
Fiyat ortalamasının standart sapmasını belirli matematiksel formüllerle gösteren bir indikatördür. Yani fiyatın gelecekte ne kadar değişken olabileceğini tahmin etmek için bir varlığın son fiyat hareketlerinin büyüklüğünü ölçen bir göstergedir denilebilir.
Volatilitenin artacağına ya da azalacağına karar vermenize yardımcı olabilir. Volatilite, fiyat seviyelerindeki değişimin ne kadar yüksek aralıklarla gerçekleştiğini, finansal yatırım aracının fiyat hareketleri arasındaki farkın büyüklüğünü ölçer. Çok yüksek bir standart sapma okuması, büyük bir fiyat değişikliğinin meydana geldiğini, ancak volatilitedeki bir azalmanın yakında gerçekleşebileceğini gösterir. Çok düşük bir standart sapma ise karşıtlığı gösterir. Standart Deviation indikatörü genellikle tek başına kullanılmamaktadır, yani aslında tek başına kullanılmaktan çok başka bir indikatörün bir bileşeni olarak kullanılır. Örneğin, Bollinger Bantları, bir hareketli ortalamaya hisse senedinin standart sapması eklenerek hesaplanır.
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=5;
int Parametre2=1;
//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);
//Engine.GetPriceList(candles,PriceFields.Close) Kapanış fiyatlarının listesini closed değişkeninine tanımlanması
var closed=Engine.GetPriceList(candles,PriceFields.Close);
// Aşağıdaki kod satırı ile indikatörümüzü tanımlıyoruz.
var indicator = Engine.StandardDeviation(closed,Parametre1,Parametre2);
//Eğer indikatörün ö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 ö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);
}
}