커뮤니티

부탁드립니다

프로필 이미지
파생돌이
2025-09-26 17:07:26.0
61
글번호 194324
답변완료
수고하십니다 예스로 부탁드립니다 //@version=4 study("Generalized SSL by Vts", shorttitle="GSSL", overlay=true) // Generalized SSL: // This is the very first time the SSL indicator, whose acronym I ignore, is on Tradingview. // It is based on moving averages of the highs and lows. // Similar channel indicators can be found, whereas // this one implements the persistency inside the channel, which is rather tricky. // The green line is the base line which decides entries and exits, possibly with trailing stops. // With respect to the original version, here one can play with different moving averages. // The default settings are (10,SMA) // // Vitelot/Yanez/Vts March 2019 // // April 2019: added colored cloud (red=bearish, green=bullish) // // September 2019: increased number of MA available; converted to Pine V4 lb = input(10, title="Lb", minval=1) maType = input(type=input.string, defval="SMA", title="Baseline Type", options=["SMA", "EMA", "HMA", "McG", "WMA", "Tenkan", "DEMA", "TEMA", "Smoothed", "SuperSmoothed"]) // MA definitions hma(sig, n) => // Hull moving average definition wma(2 * wma(sig, round(n / 2)) - wma(sig, n), round(sqrt(n))) mcg(sig, length) => // Mc Ginley MA definition mg = 0.0 ema_1 = ema(sig, length) mg := na(mg[1]) ? ema_1 : mg[1] + (sig - mg[1]) / (length * pow(sig / mg[1], 4)) mg tenkan(sig, len) => 0.5 * (highest(sig, len) + lowest(sig, len)) // SuperSmoother filter // © 2013 John F. Ehlers ssma(src, len) => a1 = exp(-1.414 * 3.14159 / len) b1 = 2 * a1 * cos(1.414 * 3.14159 / len) c2 = b1 c3 = -a1 * a1 c1 = 1 - c2 - c3 v = 0.0 v := c1 * (src + nz(src[1])) / 2 + c2 * nz(v[1]) + c3 * nz(v[2]) v // smoothed MA smma(src, len) => v = 0.0 sma_1 = sma(src, len) v := na(v[1]) ? sma_1 : (v[1] * (len - 1) + src) / len v // double ema == zero lag ma dema(src, len) => v1 = ema(src, len) v = 2 * v1 - ema(v1, len) v // triple ema tema(src, len) => v2 = ema(src, len) v = 3 * (v2 - ema(v2, len)) + ema(ema(v2, len), len) // Triple Exponential v ma(t, sig, len) => sss = float(na) if t == "SMA" sss := sma(sig, len) if t == "EMA" sss := ema(sig, len) if t == "HMA" sss := hma(sig, len) if t == "McG" sss := mcg(sig, len) // Mc Ginley if t == "Tenkan" sss := tenkan(sig, len) if t == "WMA" sss := wma(sig, len) if t == "TEMA" sss := tema(sig, len) if t == "DEMA" sss := dema(sig, len) if t == "Smoothed" sss := smma(sig, len) if t == "SuperSmoothed" sss := ssma(sig, len) sss base(mah, mal) => bbb = int(na) inChannel = close < mah and close > mal belowChannel = close < mah and close < mal bbb := inChannel ? bbb[1] : belowChannel ? -1 : 1 uuu = bbb == 1 ? mal : mah ddd = bbb == 1 ? mah : mal [uuu, ddd] maH = ma(maType, high, lb) maL = ma(maType, low, lb) maM = ma(maType, close, lb) [up, dn] = base(maH, maL) plot(maM, title="Baseline MA", color=#FFFF00FF, linewidth=2) pu = plot(up, title="High MA", color=color.lime, linewidth=3) pd = plot(dn, title="Low MA", color=color.orange, linewidth=3) fill(pu, pd, color=up > dn ? color.red : color.green, title="Cloud", transp=65) ///////////////////
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-09-29 09:00:35.0

안녕하세요 예스스탁입니다. input : lb(10); input : maType(1);#1:SMA, 2:EMA, 3:HMA", 4:McG, 5:WMA", 6:Tenkan, 7:DEMA, 8:TEMA", 9:Smoothed, 10:SuperSmoothed var : maH(0),maL(0),maM(0); var : hema(0),Lema(0),Mema(0); var : hsma(0),Lsma(0),Msma(0); var : a1(0),b1(0),c1(0),c2(0),c3(0); if matype == 1 Then { maH = ma(high,Lb); maL = ma(low,Lb); maM = ma(close,Lb); } if matype == 2 Then { maH = ema(high,Lb); maL = ema(low,Lb); maM = ema(close,Lb); } if matype == 3 Then { maH = wma(2 * wma(high, round(lb / 2,0)) - wma(high, lb), round(sqrt(lb),0)); maL = wma(2 * wma(low, round(lb / 2,0)) - wma(low, lb), round(sqrt(lb),0)); maM = wma(2 * wma(close, round(lb / 2,0)) - wma(close, lb), round(sqrt(lb),0)); } if matype == 4 Then { hema = ema(high, lb); maH = iff(IsNan(maH[1])==true, hema , maH[1] + (high - maH[1]) / (lb * pow(high / maH[1], 4))); lema = ema(low, lb); maL = iff(IsNan(maL[1])==true, lema , maL[1] + (low - maL[1]) / (lb * pow(Low / maL[1], 4))); Mema = ema(close, lb); maM = iff(IsNan(maM[1])==true, Mema , maM[1] + (close - maM[1]) / (lb * pow(Low / maM[1], 4))); } if matype == 5 Then { maH = wma(high,Lb); maL = wma(low,Lb); maM = wma(close,Lb); } if matype == 6 Then { maH = 0.5 * (highest(high, lb) + lowest(high, lb)); maL = 0.5 * (highest(low, lb) + lowest(low, lb)); maM = 0.5 * (highest(close, lb) + lowest(close, lb)); } if matype == 7 Then { maH = 2 * ema(high, lb) - ema(ema(high, lb), lb); maL = 2 * ema(low, lb) - ema(ema(low, lb), lb); maM = 2 * ema(close, lb) - ema(ema(close, lb), lb); } if matype == 8 Then { maH = 3 * (ema(high, lb) - ema(ema(high, lb), lb)) + ema(ema(ema(high, lb), lb), lb); maL = 3 * (ema(low, lb) - ema(ema(low, lb), lb)) + ema(ema(ema(low, lb), lb), lb); maM = 3 * (ema(close, lb) - ema(ema(close, lb), lb)) + ema(ema(ema(close, lb), lb), lb); } if matype == 9 Then { Hsma = ma(high, lb); maH = iff(isnan(maH[1])==true,Hsma, (maH[1] * (lb - 1) + high) / lb); Lsma = ma(low, lb); maL = iff(isnan(maL[1])==true,Lsma, (maL[1] * (lb - 1) + low) / lb); Msma = ma(close, lb); maM = iff(isnan(maM[1])==true,Msma, (maM[1] * (lb - 1) + close) / lb); } if matype == 10 Then { a1 = exp(-1.414 * 3.14159 / lb); b1 = 2 * a1 * cos(1.414 * 3.14159 / lb); c2 = b1; c3 = -a1 * a1; c1 = 1 - c2 - c3; maH = c1 * (high + iff(IsNan(high[1])== true,0,high[1])) / 2 + c2 * iff(IsNan(maH[1])== true,0,maH[1]) + c3 * iff(IsNan(maH[2])== true,0,maH[2]); maL = c1 * (low + iff(IsNan(low[1])== true,0,low[1])) / 2 + c2 * iff(IsNan(maL[1])== true,0,maL[1]) + c3 * iff(IsNan(maL[2])== true,0,maL[2]); maM = c1 * (close + iff(IsNan(close[1])== true,0,close[1])) / 2 + c2 * iff(IsNan(maM[1])== true,0,maM[1]) + c3 * iff(IsNan(maM[2])== true,0,maM[2]); } var : bbb(nan),inChannel(False),belowChannel(False); var : up(0),dn(0); inChannel = close < mah and close > mal; belowChannel = close < mah and close < mal; bbb = iff(inChannel , bbb[1] , iff(belowChannel , -1 , 1)); up = iff(bbb == 1 , mal , mah); dn = iff(bbb == 1 , mah , mal); plot1(maM, "Baseline MA", Pink); plot2(up, "High MA", lime); plot3(dn, "Low MA", orange); 즐거운 하루되세요 > 파생돌이 님이 쓴 글입니다. > 제목 : 부탁드립니다 > 수고하십니다 예스로 부탁드립니다 //@version=4 study("Generalized SSL by Vts", shorttitle="GSSL", overlay=true) // Generalized SSL: // This is the very first time the SSL indicator, whose acronym I ignore, is on Tradingview. // It is based on moving averages of the highs and lows. // Similar channel indicators can be found, whereas // this one implements the persistency inside the channel, which is rather tricky. // The green line is the base line which decides entries and exits, possibly with trailing stops. // With respect to the original version, here one can play with different moving averages. // The default settings are (10,SMA) // // Vitelot/Yanez/Vts March 2019 // // April 2019: added colored cloud (red=bearish, green=bullish) // // September 2019: increased number of MA available; converted to Pine V4 lb = input(10, title="Lb", minval=1) maType = input(type=input.string, defval="SMA", title="Baseline Type", options=["SMA", "EMA", "HMA", "McG", "WMA", "Tenkan", "DEMA", "TEMA", "Smoothed", "SuperSmoothed"]) // MA definitions hma(sig, n) => // Hull moving average definition wma(2 * wma(sig, round(n / 2)) - wma(sig, n), round(sqrt(n))) mcg(sig, length) => // Mc Ginley MA definition mg = 0.0 ema_1 = ema(sig, length) mg := na(mg[1]) ? ema_1 : mg[1] + (sig - mg[1]) / (length * pow(sig / mg[1], 4)) mg tenkan(sig, len) => 0.5 * (highest(sig, len) + lowest(sig, len)) // SuperSmoother filter // © 2013 John F. Ehlers ssma(src, len) => a1 = exp(-1.414 * 3.14159 / len) b1 = 2 * a1 * cos(1.414 * 3.14159 / len) c2 = b1 c3 = -a1 * a1 c1 = 1 - c2 - c3 v = 0.0 v := c1 * (src + nz(src[1])) / 2 + c2 * nz(v[1]) + c3 * nz(v[2]) v // smoothed MA smma(src, len) => v = 0.0 sma_1 = sma(src, len) v := na(v[1]) ? sma_1 : (v[1] * (len - 1) + src) / len v // double ema == zero lag ma dema(src, len) => v1 = ema(src, len) v = 2 * v1 - ema(v1, len) v // triple ema tema(src, len) => v2 = ema(src, len) v = 3 * (v2 - ema(v2, len)) + ema(ema(v2, len), len) // Triple Exponential v ma(t, sig, len) => sss = float(na) if t == "SMA" sss := sma(sig, len) if t == "EMA" sss := ema(sig, len) if t == "HMA" sss := hma(sig, len) if t == "McG" sss := mcg(sig, len) // Mc Ginley if t == "Tenkan" sss := tenkan(sig, len) if t == "WMA" sss := wma(sig, len) if t == "TEMA" sss := tema(sig, len) if t == "DEMA" sss := dema(sig, len) if t == "Smoothed" sss := smma(sig, len) if t == "SuperSmoothed" sss := ssma(sig, len) sss base(mah, mal) => bbb = int(na) inChannel = close < mah and close > mal belowChannel = close < mah and close < mal bbb := inChannel ? bbb[1] : belowChannel ? -1 : 1 uuu = bbb == 1 ? mal : mah ddd = bbb == 1 ? mah : mal [uuu, ddd] maH = ma(maType, high, lb) maL = ma(maType, low, lb) maM = ma(maType, close, lb) [up, dn] = base(maH, maL) plot(maM, title="Baseline MA", color=#FFFF00FF, linewidth=2) pu = plot(up, title="High MA", color=color.lime, linewidth=3) pd = plot(dn, title="Low MA", color=color.orange, linewidth=3) fill(pu, pd, color=up > dn ? color.red : color.green, title="Cloud", transp=65) ///////////////////