예스스탁
예스스탁 답변
2020-03-24 15:12:40
안녕하세요
예스스탁입니다.
input : len(20),FC(1),SC(200);
var : Price(0),Len1(0),e(0),w(0);
var : H1(0),L1(0),N1(0),H2(0),L2(0),N2(0),H3(0),L3(0),N3(0),out(0);
var : dimen1(0),dimen(0),alpha1(0),oldalpha(0),oldN(0),N(0),alpha_(0),alpha(0);
price = c;
if CurrentBar >= 1 then
{
len1 = len/2;
e = 2.7182818284590452353602874713527;
w = log(2/(SC+1)) / log(e);
H1 = highest(high,len1);
L1 = lowest(low,len1);
N1 = (H1-L1)/len1;
H2 = highest(high,len1)[len1];
L2 = lowest(low,len1)[len1];
N2 = (H2-L2)/len1;
H3 = highest(high,len);
L3 = lowest(low,len);
N3 = (H3-L3)/len;
dimen1 = (log(N1+N2)-log(N3))/log(2);
dimen = iff(N1>0 and N2>0 and N3>0,dimen1,dimen1[1]);
alpha1 = exp(w*(dimen-1));
oldalpha = iff(alpha1>1,1,iff(alpha1<0.01,0.01,alpha1));
oldN = (2-oldalpha)/oldalpha;
N = (((SC-FC)*(oldN-1))/(SC-1))+FC;
alpha_ = 2/(N+1);
alpha = iff(alpha_< 2/(SC+1),2/(SC+1),iff(alpha_>1,1,alpha_));
if IsNaN(alpha) == false then
out = (1-alpha)*out[1] + alpha*price;
plot1(out,"FRAMA",red);
}
즐거운 하루되세요
> thegin 님이 쓴 글입니다.
> 제목 : 안녕하세요
> price = input(close)
len = input(defval=20,minval=1) // Should be even number
FC = input(defval=1,minval=1)
SC = input(defval=200,minval=1)
len1 = len/2
e = 2.7182818284590452353602874713527
w = log(2/(SC+1)) / log(e) // Natural logarithm (ln(2/(SC+1))) workaround
H1 = highest(high,len1)
L1 = lowest(low,len1)
N1 = (H1-L1)/len1
H2 = highest(high,len1)[len1]
L2 = lowest(low,len1)[len1]
N2 = (H2-L2)/len1
H3 = highest(high,len)
L3 = lowest(low,len)
N3 = (H3-L3)/len
dimen1 = (log(N1+N2)-log(N3))/log(2)
dimen = iff(N1>0 and N2>0 and N3>0,dimen1,nz(dimen1[1]))
alpha1 = exp(w*(dimen-1))
oldalpha = alpha1>1?1:(alpha1<0.01?0.01:alpha1)
oldN = (2-oldalpha)/oldalpha
N = (((SC-FC)*(oldN-1))/(SC-1))+FC
alpha_ = 2/(N+1)
alpha = alpha_<2/(SC+1)?2/(SC+1):(alpha_>1?1:alpha_)
out = (1-alpha)*nz(out[1]) + alpha*price
plot(out,title="FRAMA",color=red,transp=0)
수식 변환 가능할지요
감사합니다.