커뮤니티

부탁합니다

프로필 이미지
as8282
2020-04-22 21:50:40
481
글번호 138252
답변완료
하기 수식을 지표식만 예스로 부탁드립니다. study(title="Normalized smoothed MACD", shorttitle = "NSM", overlay=false) // inpFastPeriod = input(defval=12, title="MACD fast period", minval=1, type=input.integer) inpSlowPeriod = input(defval=26, title="MACD slow period", minval=1, type=input.integer) inpMacdSignal = input(defval=9, title="Signal period", minval=1, type=input.integer) inpSmoothPeriod = input(defval=5, title="Smoothing period", minval=1, type=input.integer) inpNormPeriod = input(defval=20, title="Normalization period", minval=1, type=input.integer) price = input(close, title="Price Source",type=input.source) // emaf = 0.0 emas = 0.0 val = 0.0 nval = 0.0 sig = 0.0 // red =color.new(#FF0000, 0) green=color.new(#32CD32, 0) black=color.new(#000000, 0) if bar_index > inpSlowPeriod alphaf = 2.0/(1.0+max(inpFastPeriod,1)) alphas = 2.0/(1.0+max(inpSlowPeriod,1)) alphasig = 2.0/(1.0+max(inpMacdSignal,1)) alphasm = 2.0/(1.0+max(inpSmoothPeriod,1)) emaf := emaf[1]+alphaf*(price-emaf[1]) emas := emas[1]+alphas*(price-emas[1]) imacd = emaf-emas mmax = highest(imacd,inpNormPeriod) mmin = lowest(imacd,inpNormPeriod) if mmin != mmax nval := 2.0*(imacd-mmin)/(mmax-mmin)-1.0 else nval := 0 val := val[1] + alphasm*(nval-val[1]) sig := sig[1] + alphasig*(val-sig[1]) // plot(val, color=val>val[1]?green:red, style=plot.style_line, linewidth=2, title="Reg smooth MACD") plot(sig, color=black, style=plot.style_cross, linewidth=1, title="Signal line") hline(0, title='0', color=color.gray, linestyle=hline.style_dotted, linewidth=1) // alertcondition(crossunder(val,sig),title="Sell",message="Sell") alertcondition(crossover(val,sig),title="Buy",message="Buy") alertcondition(crossunder(val,sig) or crossover(val,sig) ,title="Sell/Buy",message="Sell/Buy")
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-04-23 10:38:32

안녕하세요 예스스탁입니다. input : inpFastPeriod(12),inpSlowPeriod(26),inpMacdSignal(9),inpSmoothPeriod(5),inpNormPeriod(20); var : alphaf(0),alphas(0),alphasig(0),alphasm(0); var : price(0),emaf(0),emas(0),val(0),nval(0),sig(0),imacd(0),mmax(0),mmin(0); price = close; if index > inpSlowPeriod then { alphaf = 2.0/(1.0+max(inpFastPeriod,1)); alphas = 2.0/(1.0+max(inpSlowPeriod,1)); alphasig = 2.0/(1.0+max(inpMacdSignal,1)); alphasm = 2.0/(1.0+max(inpSmoothPeriod,1)); emaf = emaf[1]+alphaf*(price-emaf[1]); emas = emas[1]+alphas*(price-emas[1]); imacd= emaf-emas; mmax = highest(imacd,inpNormPeriod); mmin = lowest(imacd,inpNormPeriod); if mmin != mmax then nval = 2.0*(imacd-mmin)/(mmax-mmin)-1.0; else nval = 0; val = val[1] + alphasm*(nval-val[1]); sig = sig[1] + alphasig*(val-sig[1]); } plot1(val,"Reg smooth MACD",iff(val>val[1],green,red)); plot2(sig,"Signal line",black); plot3(0, "0",gray); 즐거운 하루되세요 > as8282 님이 쓴 글입니다. > 제목 : 부탁합니다 > 하기 수식을 지표식만 예스로 부탁드립니다. study(title="Normalized smoothed MACD", shorttitle = "NSM", overlay=false) // inpFastPeriod = input(defval=12, title="MACD fast period", minval=1, type=input.integer) inpSlowPeriod = input(defval=26, title="MACD slow period", minval=1, type=input.integer) inpMacdSignal = input(defval=9, title="Signal period", minval=1, type=input.integer) inpSmoothPeriod = input(defval=5, title="Smoothing period", minval=1, type=input.integer) inpNormPeriod = input(defval=20, title="Normalization period", minval=1, type=input.integer) price = input(close, title="Price Source",type=input.source) // emaf = 0.0 emas = 0.0 val = 0.0 nval = 0.0 sig = 0.0 // red =color.new(#FF0000, 0) green=color.new(#32CD32, 0) black=color.new(#000000, 0) if bar_index > inpSlowPeriod alphaf = 2.0/(1.0+max(inpFastPeriod,1)) alphas = 2.0/(1.0+max(inpSlowPeriod,1)) alphasig = 2.0/(1.0+max(inpMacdSignal,1)) alphasm = 2.0/(1.0+max(inpSmoothPeriod,1)) emaf := emaf[1]+alphaf*(price-emaf[1]) emas := emas[1]+alphas*(price-emas[1]) imacd = emaf-emas mmax = highest(imacd,inpNormPeriod) mmin = lowest(imacd,inpNormPeriod) if mmin != mmax nval := 2.0*(imacd-mmin)/(mmax-mmin)-1.0 else nval := 0 val := val[1] + alphasm*(nval-val[1]) sig := sig[1] + alphasig*(val-sig[1]) // plot(val, color=val>val[1]?green:red, style=plot.style_line, linewidth=2, title="Reg smooth MACD") plot(sig, color=black, style=plot.style_cross, linewidth=1, title="Signal line") hline(0, title='0', color=color.gray, linestyle=hline.style_dotted, linewidth=1) // alertcondition(crossunder(val,sig),title="Sell",message="Sell") alertcondition(crossover(val,sig),title="Buy",message="Buy") alertcondition(crossunder(val,sig) or crossover(val,sig) ,title="Sell/Buy",message="Sell/Buy")