Merhaba!
Pine Script'teki bu kod, bir range filter (aralık filtresi) oluşturuyor. Kod karmaşık görünse de, mantığı şöyle:
Pine Script Mantığı:
pine
rngfilt(x, r) => rngfilt = x rngfilt := x > nz(rngfilt[1]) ? x - r < nz(rngfilt[1]) ? nz(rngfilt[1]) : x - r : x + r > nz(rngfilt[1]) ? nz(rngfilt[1]) : x + r rngfilt
- x = kaynak fiyat (örn: close)
- r = range değeri
- nz(rngfilt[1]) = önceki filtre değeri (null ise 0)
Mantık adım adım:
- Eğer x > önceki_değer ise (fiyat yükseliyorsa):
- x - r değeri önceki değerden küçükse → önceki değeri koru
- Değilse → x - r kullan
- Değilse (fiyat düşüyorsa veya eşitse):
- x + r değeri önceki değerden büyükse → önceki değeri koru
- Değilse → x + r kullan
MQL5 Kodu:
mql5
//+------------------------------------------------------------------+ //| Range Filter fonksiyonu | //+------------------------------------------------------------------+ double RangeFilter(double x, double r, double &prev_rngfilt) { double rngfilt; // İlk hesaplama (önceki değer yoksa) if(prev_rngfilt == 0.0 || prev_rngfilt == EMPTY_VALUE) { rngfilt = x; } else { // Pine Script mantığını MQL5'e çevirme if(x > prev_rngfilt) { // Fiyat yükseliyorsa if((x - r) < prev_rngfilt) rngfilt = prev_rngfilt; // Önceki değeri koru else rngfilt = x - r; // x - r kullan } else { // Fiyat düşüyorsa veya eşitse if((x + r) > prev_rngfilt) rngfilt = prev_rngfilt; // Önceki değeri koru else rngfilt = x + r; // x + r kullan } } // Sonraki kullanım için güncelle prev_rngfilt = rngfilt; return rngfilt; }
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Merhaba. Tradingview'daki "Range Filter 5min" indicatörünü metatrader5'de kodlamak istiyorum. Çözemediğim bir sorun var. Pine Editor'de aşağıdaki kodu anlayamadım.
Bu kodu uzman danışmanda nasıl kodlayabilirim yardımcı olur musunuz.