Alıntı Originally Posted by MuradKerimoglu Yazıyı Oku
uufuk bey merhaba;
ATR bazlı aşağıdaki indikatörü matrikse uyarlayabilir miyiz? Teşekkürler.

https://tr.tradingview.com/script/oR...latility-Stop/

study("Volatility Stop", shorttitle="VStop", overlay=true)
length = input(20)
mult = input(2,type=float)
atr_ = atr(length)
max1 = max(nz(max_[1]), close)
min1 = min(nz(min_[1]), close)
is_uptrend_prev = nz(is_uptrend[1], true)
stop = is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_
vstop_prev = nz(vstop[1])
vstop1 = is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop)
is_uptrend = close - vstop1 >= 0
is_trend_changed = is_uptrend != is_uptrend_prev
max_ = is_trend_changed ? close : max1
min_ = is_trend_changed ? close : min1
vstop= is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1

plot(vstop, color = is_uptrend ? green : red, linewidth=2)

Matriks olanakları ile en yakın formul..
max1:=hhv(c,2);
min1:=llv(c,2) ;
ifadesinden başka similasyon yoktur..
max1:=hhv(c,3);
min1:=llv(c,3) ; de denenebilir....

Kod:
length:=20;     mult:=2;  a:=atr(length)* mult;  max1:=hhv(c,2);  min1:=llv(c,2);
a1:=C;     a2:=max1-a;     a3:=min1+a;
b1:=If(a1<PREV,a2,if(a2>PREV,a2,PREV));      b2:=If(a1>PREV,a3,if(a3<PREV,a3,PREV));
k1:=Cross(a1,Ref(b2,-1));       k2:=Cross(Ref(b1,-1),a1);
s1:=BarsSince(k1) < BarsSince(k2);
s2:=If(s1=-1,b1,b2);   s2