MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
0 beğenilme 0 beğenilmeme
255 kez görüntülendi

 

Merhaba,

Matriks'te de olan Relative Momentum Index indikatörünü IQ'ya uyarlamaya çalışıyorum. Fakat kendimi de geliiştirmek adına bir kaç sorum olacak. Yardımlarınızı rica edebilir miyim?

1. Öncelikle Aşağıdaki Kod doğru RMI sonucunu veren bir kod. Fakat içerisinde "rma" adında ayrıca bir fonksiyon var.

up = rma(max(change(src, momentumLength), 0), length)
down = rma(-min(change(src, momentumLength), 0), length)

rmi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

2. RMA fonksiyonuna baktığımızda aşağıdaki gibi açıklanmış.

Moving average used in RSI. It is the exponentially weighted moving average with alpha = 1 / length.

pine_rma(src, length) =>
    alpha = length
    sum = 0.0
    sum := na(sum[1]) ? sma(src, length) : (src + (alpha - 1) * nz(sum[1])) / alpha
plot(pine_rma(close, 15))

3. Bu kodu aşağıdaki şekilde IQ'ya uygulamaya çalıştım fakat sum değerinin bir önceki bardaki değerini getiremedim. Yardımlarınızı rica ederim.

			decimal rma(int length)
			{
				var alpha = length;
				var src = inputValue;
    			var	sum =  checknan(sum.Value[currentBar-1]) ? 2 : (src + (alpha - 1) * replacenan(sum.Value[currentBar -1])) / alpha;
				return sum;
			}

Teşekkürler    

Algoritmik Trading kategorisinde (27 puan) tarafından | 255 kez görüntülendi

1 cevap

1 beğenilme 0 beğenilmeme
Merhaba,

sum değişkenini public decimal  sum=0; olarak tanımlarsanız istediğiniz yerde sum değişkenini çağırdığınızda bir önceki sum değerini almış olursunuz.

rma() fonksiyonunu çağırırsanız da güncel sum değeri gelir.
(5,991 puan) tarafından
0 0
Çok teşekkürler. Ayrıca default indikatörlerde de olduğu gibi, kaynak datanın nereden alacağını nasıl parametre olarak ekleyebilirim? Örnek olarak tradingview'deki input.source gibi düşünebiliriz.
Hoş geldiniz, Matriks Destek Platformu sizlere sorularınızın hızlıca cevaplanması için bir ortam sağlar. Sorduğunuz ve cevapladığınız soruların ve yorumlarınızın aldığı oylar üzerinden puan kazanırsınız. Puan sistemine bağlı kampanyamızla ücretsiz kullanım avantajlarından faydalanabilirsiniz.



2,205 soru
2,063 cevap
1,856 yorum
1,520 kullanıcı