MarcoValente

RSD Fractal Dimension Moving Average

181
Here is a Fractal Dimension Moving Average , that include a trend follow/divergence based on RSI , Stoch ,and ADX. Combineted this algo with the FDMA algo , we have a MA reactive without following the yo-yo during high volatility period. Can set the range from a min and max bars you want to have your MA , the value are powered , so the min can set 1 to 10 that s is 1 to 60 bars and the Max 13 to 24 range 100 to 300. Period length and RSD len-0.37% are use to calculate Fractal Dimen and Trend parameter
If you need more info how to set go here
etfhq.com/blog/2012/...oving-average-d-ama/
สคริปต์โอเพนซอร์ซ

ด้วยจิตวิญญาณของ TradingView อย่างแท้จริง ผู้เขียนสคริปต์นี้ได้เผยแพร่เป็นโอเพนซอร์ส เพื่อให้ผู้ค้าสามารถเข้าใจและตรวจสอบได้ ไชโยให้กับผู้เขียน! คุณสามารถใช้ได้ฟรี แต่การใช้รหัสนี้ซ้ำในสิ่งพิมพ์อยู่ภายใต้กฎระเบียบการใช้งาน คุณสามารถตั้งเป็นรายการโปรดเพื่อใช้บนชาร์ตได้

คำจำกัดสิทธิ์ความรับผิดชอบ

ข้อมูลและบทความไม่ได้มีวัตถุประสงค์เพื่อก่อให้เกิดกิจกรรมทางการเงิน, การลงทุน, การซื้อขาย, ข้อเสนอแนะ หรือคำแนะนำประเภทอื่น ๆ ที่ให้หรือรับรองโดย TradingView อ่านเพิ่มเติมที่ เงื่อนไขการใช้บริการ

ต้องการที่จะใช้สคริปต์นี้บนชาร์ตใช่ไหม?
//@version=2
study("RSD Fractal Dimension Moving Average",shorttitle="RSD FD",overlay=true)
price=input(hl2)
len=input(defval=80,title="Len Period",minval=1)
fast=input(defval=19,title="Max Range MA(Powered) ", minval=1)
slow=input(defval=3,title="Min Range MA(Powered)",minval=1)
change=abs(price-price[len])
len1 = len/2
H1 = highest(high,len1)
L1 = lowest(low,len1)
N1 = (H1-L1)/len1
H2 = highest(high,len)[len1]
L2 = lowest(low,len)[len1]
N2 = (H2-L2)/len1
H3 = highest(high,len)
L3 = lowest(low,len)
N3 = (H3-L3)/len
dimen1 = (log(N1+N2)-log(N3))/log(len/len1)
diff = iff(N1>0 and N2>0 and N3>0,dimen1,nz(dimen1[1]))
le=input(defval=10,title="Period Rsi,Stch,Adx")
//rsi
rr=rsi(hl2,le)
//stoch
st=stoch(hl2,high,low,le)
//adx
up = change(high)
down = -change(low)
trur = rma(tr, le)
plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, le) / trur)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, le) / trur)
sum = plus + minus 
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), le)

fq=(rr+st+plus)/300
dif=abs(fq[0]-fq[1])
signal=abs(fq-fq[le])
noise=sum(dif, le)
ef=noise!=0 ? signal/noise : 1
ER=abs(dimen1-1)
E=fq*ER
//
fastestSC=2/(fast+1)
slowestSC=2/(slow+1)
SC=pow((E*(fastestSC-slowestSC)+slowestSC),2)
out=nz(out[1])+SC*(price-nz(out[1]))
col=out>close?red :lime
plot(out,color=col,title="RSD-AMA",linewidth=2)