커뮤니티

부탁드립니다.

프로필 이미지
다올
2023-12-01 15:04:13
1181
글번호 174512
답변완료
건강 조심하시고 적용 가능하도록 간절히 부탁 드립니다. indicator("ALMA Smoothed Gaussian Moving Average", shorttitle = "ASGMA", overlay=true) //ALMA Smoothing src = input(close, title='Source', group = "ALMA Smoothing") smooth = input.int(1, title='Smoothing', minval=1, group = "ALMA Smoothing") length1 = input.int(25, title='Lookback', minval=1, group = "ALMA Smoothing") offset = 0.85 sigma1 = 7 pchange = ta.change(src, smooth) / src * 100 avpchange = ta.alma(pchange, length1, offset, sigma1) //RSI rsi = ta.rsi(close, 14) rsiL = rsi > rsi[1] rsiS = rsi < rsi[1] //Chande Momentum length11 = 9 src1 = close momm = ta.change(src1) f1(m) => m >= 0.0 ? m : 0.0 f2(m) => m >= 0.0 ? 0.0 : -m m1 = f1(momm) m2 = f2(momm) sm1 = math.sum(m1, length11) sm2 = math.sum(m2, length11) percent(nom, div) => 100 * nom / div chandeMO = percent(sm1-sm2, sm1+sm2) cL = chandeMO > chandeMO[1] cS = chandeMO < chandeMO[1] //GAMA credit to author: &#169; LeafAlgo https://www.tradingview.com/v/th7NZUPM/ length = input.int(14, minval=1, title="Length", group = "Gaussian Adaptive Moving Average") adaptive = input.bool(true, title="Adaptive Parameters", group = "Gaussian Adaptive Moving Average") volatilityPeriod = input.int(20, minval=1, title="Volatility Period", group = "Gaussian Adaptive Moving Average") // Calculate Gaussian Moving Average gma = 0.0 sumOfWeights = 0.0 sigma = adaptive ? ta.stdev(close, volatilityPeriod) : input.float(1.0, minval=0.1, title="Standard Deviation", group = "Gaussian Adaptive Moving Average") for i = 0 to length - 1 weight = math.exp(-math.pow(((i - (length - 1)) / (2 * sigma)), 2) / 2) value = ta.highest(avpchange, i + 1) + ta.lowest(avpchange, i + 1) gma := gma + (value * weight) sumOfWeights := sumOfWeights + weight gma := (gma / sumOfWeights) / 2 gma:= ta.ema(gma, 7) gmaColor = avpchange >= gma ? color.rgb(0, 161, 5) : color.rgb(215, 0, 0) // Color bars based on signals until the next signal occurs var int currentSignal = 0 currentSignal := avpchange >= gma ? 1 : -1//le_final ? -1 : currentSignal var color barColor = na if currentSignal == 1 barColor := color.rgb(0, 186, 6) else if currentSignal == -1 barColor := color.rgb(176, 0, 0) barcolor(barColor) plotcandle(open, high, low, close, "Bar Color", barColor, barColor, bordercolor = barColor) //Plotting ema = ta.ema(close, 7) plot(ema, color=gmaColor, linewidth=3, title="Gaussian Moving Average") plotshape(ta.crossover(avpchange,gma) and barstate.isconfirmed, "Buy Signal", text = "B", textcolor = color.white, style = shape.labelup, location = location.belowbar, color = color.rgb(0, 161, 5), offset = -1) plotshape(ta.crossunder(avpchange,gma) and barstate.isconfirmed, "Sell Signal", text = "S", textcolor = color.white, style = shape.labeldown, location = location.abovebar, color = color.rgb(215, 0, 0), offset = -1) bgcolor(ta.crossover(avpchange,gma) and barstate.isconfirmed and rsiL and cL ? color.rgb(0, 162, 5, 85): na, offset = -1) bgcolor(ta.crossunder(avpchange,gma) and barstate.isconfirmed and rsiS and cS ? color.rgb(207, 0, 0, 85): na, offset = -1) barcolor(gmaColor) alertcondition(ta.crossover(avpchange,gma) and barstate.isconfirmed, title="Buy Signal", message="Go Long! {{exchange}}:{{ticker}}") alertcondition(ta.crossunder(avpchange,gma) and barstate.isconfirmed, title="Sell Signal", message="Go Short! {{exchange}}:{{ticker}}")
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-12-01 16:02:47

안녕하세요 예스스탁입니다. input : src(close); input : smooth(1); input : length1(25); var : offset(0),sigma1(0),pchange(0); var : mm(0),s(0),norm(0),sum(0),i(0),weight(0),avpchange(0); //GAMA credit to author: &#169; LeafAlgo https://www.tradingview.com/v/th7NZUPM/ input : length(14); input : adaptive(true); input : volatilityPeriod(20); var : Gma(0),sumOfWeights(0),sigma(0),value(0),gmaColor(0),currentSignal(0),emav(0); var : tx(0); offset = 0.85; sigma1 = 7; pchange = (src-src[smooth]) / src * 100; mm = offset * (length1 - 1); s = length1 / sigma1; norm = 0.0; sum = 0.0; for i = 0 to length1 - 1 { weight = exp(-1 * pow(i - mm, 2) / (2 * pow(s, 2))); norm = norm + weight; sum = sum + pchange[length1 - i - 1] * weight; } avpchange = sum / norm; var : RSIv(0),rsil(False),rsis(False); var : length11(0),src1(0),momm(0); var : m1(0),m2(0),sm1(0),sm2(0); var : chandeMO(0),cl(False),cs(False); //RSI rsiv = rsi(14); rsiL = rsiv > rsiv[1]; rsiS = rsiv < rsiv[1]; //Chande Momentum length11 = 9; src1 = close; momm = src1-src1[1]; m1 = iff(momm >= 0.0 , momm , 0.0); m2 = iff(momm >= 0.0 , 0.0 , -momm); sm1 = AccumN(m1, length11); sm2 = AccumN(m2, length11); chandeMO = 100 * (sm1-sm2) / (sm1+sm2); cL = chandeMO > chandeMO[1]; cS = chandeMO < chandeMO[1]; // Calculate Gaussian Moving Average gma = 0.0 ; sumOfWeights = 0.0; sigma = iff(adaptive , std(close, volatilityPeriod) , 1); for i = 0 to length - 1 { weight = exp(-pow(((i - (length - 1)) / (2 * sigma)), 2) / 2); value = highest(avpchange, i + 1) + lowest(avpchange, i + 1); gma = gma + (value * weight); sumOfWeights = sumOfWeights + weight; } gma = (gma / sumOfWeights) / 2; gma = ema(gma, 7); gmaColor = iff(avpchange >= gma , rgb(0, 161, 5) , rgb(215, 0, 0)); currentSignal = iff(avpchange >= gma , 1 , -1); //Plotting emav = ema(close, 7); plot1(emav, "Gaussian Moving Average",gmaColor); if CrossUp(avpchange,gma) Then { tx = Text_New(sDate,sTime,L,"▲"); Text_SetStyle(tx,2,0); Text_SetColor(tx,Red); } if CrossDown(avpchange,gma) Then { tx = Text_New(sDate,sTime,H,"▼"); Text_SetStyle(tx,2,1); Text_SetColor(tx,Blue); } 즐거운 하루되세요 > 다올 님이 쓴 글입니다. > 제목 : 부탁드립니다. > 건강 조심하시고 적용 가능하도록 간절히 부탁 드립니다. indicator("ALMA Smoothed Gaussian Moving Average", shorttitle = "ASGMA", overlay=true) //ALMA Smoothing src = input(close, title='Source', group = "ALMA Smoothing") smooth = input.int(1, title='Smoothing', minval=1, group = "ALMA Smoothing") length1 = input.int(25, title='Lookback', minval=1, group = "ALMA Smoothing") offset = 0.85 sigma1 = 7 pchange = ta.change(src, smooth) / src * 100 avpchange = ta.alma(pchange, length1, offset, sigma1) //RSI rsi = ta.rsi(close, 14) rsiL = rsi > rsi[1] rsiS = rsi < rsi[1] //Chande Momentum length11 = 9 src1 = close momm = ta.change(src1) f1(m) => m >= 0.0 ? m : 0.0 f2(m) => m >= 0.0 ? 0.0 : -m m1 = f1(momm) m2 = f2(momm) sm1 = math.sum(m1, length11) sm2 = math.sum(m2, length11) percent(nom, div) => 100 * nom / div chandeMO = percent(sm1-sm2, sm1+sm2) cL = chandeMO > chandeMO[1] cS = chandeMO < chandeMO[1] //GAMA credit to author: &#169; LeafAlgo https://www.tradingview.com/v/th7NZUPM/ length = input.int(14, minval=1, title="Length", group = "Gaussian Adaptive Moving Average") adaptive = input.bool(true, title="Adaptive Parameters", group = "Gaussian Adaptive Moving Average") volatilityPeriod = input.int(20, minval=1, title="Volatility Period", group = "Gaussian Adaptive Moving Average") // Calculate Gaussian Moving Average gma = 0.0 sumOfWeights = 0.0 sigma = adaptive ? ta.stdev(close, volatilityPeriod) : input.float(1.0, minval=0.1, title="Standard Deviation", group = "Gaussian Adaptive Moving Average") for i = 0 to length - 1 weight = math.exp(-math.pow(((i - (length - 1)) / (2 * sigma)), 2) / 2) value = ta.highest(avpchange, i + 1) + ta.lowest(avpchange, i + 1) gma := gma + (value * weight) sumOfWeights := sumOfWeights + weight gma := (gma / sumOfWeights) / 2 gma:= ta.ema(gma, 7) gmaColor = avpchange >= gma ? color.rgb(0, 161, 5) : color.rgb(215, 0, 0) // Color bars based on signals until the next signal occurs var int currentSignal = 0 currentSignal := avpchange >= gma ? 1 : -1//le_final ? -1 : currentSignal var color barColor = na if currentSignal == 1 barColor := color.rgb(0, 186, 6) else if currentSignal == -1 barColor := color.rgb(176, 0, 0) barcolor(barColor) plotcandle(open, high, low, close, "Bar Color", barColor, barColor, bordercolor = barColor) //Plotting ema = ta.ema(close, 7) plot(ema, color=gmaColor, linewidth=3, title="Gaussian Moving Average") plotshape(ta.crossover(avpchange,gma) and barstate.isconfirmed, "Buy Signal", text = "B", textcolor = color.white, style = shape.labelup, location = location.belowbar, color = color.rgb(0, 161, 5), offset = -1) plotshape(ta.crossunder(avpchange,gma) and barstate.isconfirmed, "Sell Signal", text = "S", textcolor = color.white, style = shape.labeldown, location = location.abovebar, color = color.rgb(215, 0, 0), offset = -1) bgcolor(ta.crossover(avpchange,gma) and barstate.isconfirmed and rsiL and cL ? color.rgb(0, 162, 5, 85): na, offset = -1) bgcolor(ta.crossunder(avpchange,gma) and barstate.isconfirmed and rsiS and cS ? color.rgb(207, 0, 0, 85): na, offset = -1) barcolor(gmaColor) alertcondition(ta.crossover(avpchange,gma) and barstate.isconfirmed, title="Buy Signal", message="Go Long! {{exchange}}:{{ticker}}") alertcondition(ta.crossunder(avpchange,gma) and barstate.isconfirmed, title="Sell Signal", message="Go Short! {{exchange}}:{{ticker}}")