MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
1 beğenilme 0 beğenilmeme
214 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 (43 puan) tarafından | 214 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();
	}			
}

 

(7,212 puan) tarafından
tarafından seçilmiş
5,422 soru
5,468 cevap
3,496 yorum
4,249 kullanıcı