MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
1 beğenilme 0 beğenilmeme
136 kez görüntülendi
Merhaba  ;

Bir indikatörün hareketli ortalamasının belirlenen periyotta en yüksek ve en düşük değerini yazabileceğim kod satırı nedir?

Örneğin iki farklı periyotta sma değeri hesaplattım. Aynı bara denk gelen iki değerin toplamını buldum. Sonra toplam değere göre de başka bir hareketli ortalama tanımladım.  O hareketli ortalamanın belli bar aralığında en yüksek ve en düşük değerini çekmek istiyorum.

Yardımcı olabilir misiniz?
Algoritmik Trading kategorisinde (26 puan) tarafından | 136 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme
En İyi Cevap

Merhaba,

Son X bar içerisindeki en yüksek ve en düşük değerlerini HighestHigh() ve LowestLow() fonksiyonları ile alabilirsiniz muhtemelen bunu biliyorsunuzdur.

var son10BarinEnYuksekMovDegeri=HighestHigh(mov,10);
var son10BariEnDusukMovDegeri=LowestLow(mov,10);

Belirlenen bar aralığındaki bir indikatörün en düşük ve en yükseğini almak için aşağıdaki gibi bir yapı kurulabilir.

Aşağıdaki örneğe göre 10 bar öncesi ile 5 bar öncesi arasındaki en yüksek ve en düşüğü verecektir.

yani önceki 10, 9, 8, 7, 6, ve 5 barı arasındaki en yüksek ve düşüğü verecektir.

List<decimal> movDegerleri=new List<decimal>();

public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
{
    movDegerleri.Add(mov.CurrentValue);
			
	if(movDegerleri.Count>10){
		var belirliAraliktakiEnYuksekMovDegeri=movDegerleri.Skip(movDegerleri.Count-10).Take(5).Max();
		var belirliAraliktakiEnDusukMovDegeri=movDegerleri.Skip(movDegerleri.Count-10).Take(5).Min();
	}			
}

 

(6,848 puan) tarafından
tarafından seçilmiş
4,009 soru
3,961 cevap
2,797 yorum
2,955 kullanıcı