Birikim Salınım Endeksi
Birikim Salınım Endeksi İndikatörü, birbiri ardına gelen Salınım Endeksi değerlerinin değişimi göz önüne alınarak oluşturulmuş bir indikatördür. Salınım Endeksi’ne kıyasla daha uzun dönemli bir görünüm elde etmeyi amaçlar. Var olan trendin yönü hakkında ipuçları içeren Birikim Salınım Endeksi, uzun dönemli bir yükselen trend sırasında pozitif bir eğime, alçalan bir trend sırasında ise negatif eğime sahip olacaktır. Piyasanın kararsız olduğu yatay trendsizlik döneminde ise Birikim Salınım Endeksi de yatayda kalacaktır. Birikim Salınım Endeksi ile çalışırken gösterge üzerinde trend çizimlerinden yararlanmak mümkündür. Fiyatlarda olduğu gibi Birikim Salınım Endeksi’nin tepe ve diplerinden atılacak trendlerle birlikte trend kırılımları ve trend dönüş noktaları da yakalanabilir. Genellikle vadeli piyasalar için kullanılsa da hisse senetleri için de kullanılabilir.
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 parametresinin tanımlaması
int Parametre=3;
//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.AccumulationSwingIndex(candles,Parametre);
//Eğer indikatörün bir önceki değeri, iki önceki değerinden küçük eşitse 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 büyük eşitse 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);
}
}