-
Notifications
You must be signed in to change notification settings - Fork 4
/
VAR (Değişken Ortalama)
43 lines (35 loc) · 1.58 KB
/
VAR (Değişken Ortalama)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// author : © dg_factor [16.06.2023, Istanbul]
// UYARI
// Geliştirme amaçlıdır, doğrudan alım-satım stratejisi yerine ikame edilemez.
// AÇIKLAMALAR
// Aşağıdaki komut, VAR/VIDYA hareketli ortalama türünü bir fonksiyon şeklinde sunar.
// Tradingview'da yayınlanmış VAR (değişken ortalama) versiyonlarının hepsi grafiğin ilk barında sıfır değeri ile başlar, ilerleyen barlarda fiyata yaklaşır.
// Bu durum backtestlerde anlamsız sonuçlar doğurabilir.
// Sorunsuz versiyonu aşağıda 🧐
// NOT
// VAR/VIDYA Tushar S. Chande'nin 1994'te 'The New Technical Trader' kitabında yayınladığı üssel bir hareketli ortalama türüdür.
// Veri terminallerinde yaygın olarak kullanılır, aşağıda basit bir düzenleme yaptım sadece.
// İleri okuma :
// https://adaptrade.com/Newsletter/NL-AdaptIndicators.htm
// Bonus :
// https://twitter.com/dg_factor/status/1655957870276657153
//@version=5
indicator("VAR (Değişken Ortalama)", overlay=true)
kaynak = close
uzunluk = input.int(200)
// VAR - Variable Index Dynamic Adaptive Moving Average [Tushar S. Chande]
f_var(data, u) =>
x = ta.sma(data, u)
a = 9
b = data > data[1] ? data - data[1] : 0
c = data < data[1] ? data[1] - data : 0
d = math.sum(b, a)
e = math.sum(c, a)
f = nz((d - e) / (d + e))
g = math.abs(f)
k = 2 / (u + 1)
r = 0.0
r := u == 1 ? data : na(r[1]) ? x : g * k * (data - nz(r[1])) + nz(r[1])
//
plot(f_var(kaynak, uzunluk), title="VAR")