커뮤니티

수식작성 부탁드립니다.

프로필 이미지
고박사122
2024-01-22 19:38:16
1239
글번호 175961
답변완료
안녕하세요. 운영자님 이번에 꼭좀 부탁드릴 사항은 다음의 트레이딩뷰 지표를 예스트레이더로 변환을 해주십사합니다. Bollinger Bands Percentile + Stdev Channels (BBPct) [AlgoAlpha] //@version=5 indicator(shorttitle="&#9709; BBPCT% [AlgoAlpha]", title="&#9709; Bollinger Bands Percent", overlay=false) //Symmetrical Standard Deviation Channels neon = input.bool(title = 'Neon Color Theme', defval = true) upper1 = close + 0.05 * close lower1 = close - 0.05 * close stdL = close > lower1 stdS = close < upper1 //BBPCT length = input.int(20, minval=1, group='Bollinger Band') src = input(close, title="Source", group='Bollinger Band') mult = input.float(2.0, minval=0.001, maxval=50, title="Multiplier", group='Bollinger Band') lookback = 750 showStdev = input.bool(false, title='Show Bollinger Band Stdev %', group='Settings') var stdevArray = array.new_float(lookback,0.0) basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev positionBetweenBands = 100 * (src - lower)/(upper - lower) array.push(stdevArray, dev/close) if array.size(stdevArray)>=lookback array.remove(stdevArray, 0) rank = array.percentrank(stdevArray, lookback-1) hist = 100*dev/close bullcolor = neon ? #00ffbb : #00b712 bearcolor = neon ? #ff1100 : #c30010 //PLOTS plot1 = plot(positionBetweenBands, color = color.new(color.white, 100)) obupper = plot(130, color = color.new(bearcolor, 0), display = display.none) oblower = plot(110, color = color.new(bearcolor, 0), display = display.none) obmid = plot(95, display = display.none) osupper = plot(-10, color = color.new(bullcolor, 30), display = display.none) oslower = plot(-30, color = color.new(bullcolor, 30), display = display.none) osmid = plot(5, color = color.new(bullcolor, 70), display = display.none) hline(50) z = plot(positionBetweenBands, "Z", positionBetweenBands > 50 ? bullcolor : bearcolor) mid = plot(50, display = display.none, editable = false) fill(z, mid, positionBetweenBands > 50 ? positionBetweenBands : 50, positionBetweenBands > 50 ? 50 : positionBetweenBands, positionBetweenBands > 50 ? bullcolor : #00000000, positionBetweenBands > 50 ? #00000000 : bearcolor) fill(obupper, oblower, color.new(bearcolor, 80)) fill (oblower, obmid, color.new(bearcolor, 87)) fill(osupper, oslower, color.new(bullcolor, 87)) fill(osupper, osmid, color.new(bullcolor, 93)) plotshape(ta.crossover(positionBetweenBands,-8) and stdL, style = shape.triangleup, color = bullcolor, location = location.bottom, size = size.tiny) plotshape(ta.crossunder(positionBetweenBands,108) and stdS, style = shape.triangledown, color = bearcolor, location = location.top, size = size.tiny) plot(showStdev ? hist : na, style=plot.style_columns, color=(hist[1] < hist ? #26A69A : #B2DFDB) , title='Stdev %') //Alerts alertcondition(ta.crossover(positionBetweenBands,-10), title="Bullish Reversal", message="Bullish Reversal {{exchange}}:{{ticker}}") alertcondition(ta.crossunder(positionBetweenBands,110), title="Bearish Reversal", message="Bearish Reversal {{exchange}}:{{ticker}}") alertcondition(ta.crossover(positionBetweenBands,50), title="Bullish Trend", message="Bullish Trend {{exchange}}:{{ticker}}") alertcondition(ta.crossunder(positionBetweenBands,50), title="Bearish Trend", message="Bearish Trend {{exchange}}:{{ticker}}")
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-01-23 14:50:12

안녕하세요 예스스탁입니다. 지표사이의 색을 채우기는 수식안에서 설정이 가능하지 않습니다. input : neon(true); var : upper1(0),lower1(0),stdL(False),stdS(False),tx(0); upper1 = close + 0.05 * close; lower1 = close - 0.05 * close; stdL = close > lower1; stdS = close < upper1; //BBPCT input : length(20); input : src(close); input : mult(2.0); var : lookback(750); input : showStdev(false); Array : stdevArray[750](0); var : basis(0),dev(0),upper(0),lower(0),positionBetweenBands(0); basis = ma(src, length); dev = mult * std(src, length); upper = basis + dev; lower = basis - dev; positionBetweenBands = 100 * (src - lower)/(upper - lower); //PLOTS plot1(positionBetweenBands,"Z",IFf(positionBetweenBands > 50 , Red , Green)); PlotBaseLine1(130,"obupper"); PlotBaseLine2(110,"oblower"); PlotBaseLine3(95,"obmid"); PlotBaseLine4(-10,"osupper"); PlotBaseLine5(-30,"oslower"); PlotBaseLine6(5,"osmid"); PlotBaseLine7(50,"mid"); if CrossUp(positionBetweenBands,-8) and stdL Then { tx = Text_New_Self(sDate,sTime,positionBetweenBands,NewLine+"▲"); Text_SetStyle(tx,2,0); Text_SetColor(tx,Cyan); } if CrossDown(positionBetweenBands,108) and stdS Then { tx = Text_New_Self(sDate,sTime,positionBetweenBands,"▼"+NewLine); Text_SetStyle(tx,2,1); Text_SetColor(tx,Magenta); } 즐거운 하루되세요 > 고박사122 님이 쓴 글입니다. > 제목 : 수식작성 부탁드립니다. > 안녕하세요. 운영자님 이번에 꼭좀 부탁드릴 사항은 다음의 트레이딩뷰 지표를 예스트레이더로 변환을 해주십사합니다. Bollinger Bands Percentile + Stdev Channels (BBPct) [AlgoAlpha] //@version=5 indicator(shorttitle="&#9709; BBPCT% [AlgoAlpha]", title="&#9709; Bollinger Bands Percent", overlay=false) //Symmetrical Standard Deviation Channels neon = input.bool(title = 'Neon Color Theme', defval = true) upper1 = close + 0.05 * close lower1 = close - 0.05 * close stdL = close > lower1 stdS = close < upper1 //BBPCT length = input.int(20, minval=1, group='Bollinger Band') src = input(close, title="Source", group='Bollinger Band') mult = input.float(2.0, minval=0.001, maxval=50, title="Multiplier", group='Bollinger Band') lookback = 750 showStdev = input.bool(false, title='Show Bollinger Band Stdev %', group='Settings') var stdevArray = array.new_float(lookback,0.0) basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev positionBetweenBands = 100 * (src - lower)/(upper - lower) array.push(stdevArray, dev/close) if array.size(stdevArray)>=lookback array.remove(stdevArray, 0) rank = array.percentrank(stdevArray, lookback-1) hist = 100*dev/close bullcolor = neon ? #00ffbb : #00b712 bearcolor = neon ? #ff1100 : #c30010 //PLOTS plot1 = plot(positionBetweenBands, color = color.new(color.white, 100)) obupper = plot(130, color = color.new(bearcolor, 0), display = display.none) oblower = plot(110, color = color.new(bearcolor, 0), display = display.none) obmid = plot(95, display = display.none) osupper = plot(-10, color = color.new(bullcolor, 30), display = display.none) oslower = plot(-30, color = color.new(bullcolor, 30), display = display.none) osmid = plot(5, color = color.new(bullcolor, 70), display = display.none) hline(50) z = plot(positionBetweenBands, "Z", positionBetweenBands > 50 ? bullcolor : bearcolor) mid = plot(50, display = display.none, editable = false) fill(z, mid, positionBetweenBands > 50 ? positionBetweenBands : 50, positionBetweenBands > 50 ? 50 : positionBetweenBands, positionBetweenBands > 50 ? bullcolor : #00000000, positionBetweenBands > 50 ? #00000000 : bearcolor) fill(obupper, oblower, color.new(bearcolor, 80)) fill (oblower, obmid, color.new(bearcolor, 87)) fill(osupper, oslower, color.new(bullcolor, 87)) fill(osupper, osmid, color.new(bullcolor, 93)) plotshape(ta.crossover(positionBetweenBands,-8) and stdL, style = shape.triangleup, color = bullcolor, location = location.bottom, size = size.tiny) plotshape(ta.crossunder(positionBetweenBands,108) and stdS, style = shape.triangledown, color = bearcolor, location = location.top, size = size.tiny) plot(showStdev ? hist : na, style=plot.style_columns, color=(hist[1] < hist ? #26A69A : #B2DFDB) , title='Stdev %') //Alerts alertcondition(ta.crossover(positionBetweenBands,-10), title="Bullish Reversal", message="Bullish Reversal {{exchange}}:{{ticker}}") alertcondition(ta.crossunder(positionBetweenBands,110), title="Bearish Reversal", message="Bearish Reversal {{exchange}}:{{ticker}}") alertcondition(ta.crossover(positionBetweenBands,50), title="Bullish Trend", message="Bullish Trend {{exchange}}:{{ticker}}") alertcondition(ta.crossunder(positionBetweenBands,50), title="Bearish Trend", message="Bearish Trend {{exchange}}:{{ticker}}")