커뮤니티
문의드립니다.
아래의 트레이딩뷰수식을 변환부탁드립니다. 가능하다면 볼린저밴드의 기간값과 슈퍼트렌드1, 2, 3의 조건값 그리고 밴드선의 굵기 슈퍼트렌드3개의 선굵기는 변수로 따로 빼서 변경가능하게 부탁드립니다. 도와주시는 것에 항상 감사드립니다. 수고하세요 !!!
//@version=5 indicator("BB + Triple Supertrend Regime Signals", overlay=true)
// // ① Bollinger Bands // bb_len = 2 bb_mult = 2.0 src_bb = open
basis = ta.sma(src_bb, bb_len) dev = ta.stdev(src_bb, bb_len) upperBB = basis + bb_mult * dev lowerBB = basis - bb_mult * dev
plot(upperBB, "BB Upper", color=color.red) plot(basis, "BB Basis", color=color.orange) plot(lowerBB, "BB Lower", color=color.blue)
sellBB = high >= upperBB buyBB = low <= lowerBB
// // ② Supertrend 계산 함수 // f_supertrend(_period, _mult) => _atr = ta.atr(_period) _hl2 = hl2
_up = _hl2 - _mult * _atr _dn = _hl2 + _mult * _atr
var float _finalUp = na var float _finalDn = na _finalUp := close[1] > nz(_finalUp[1]) ? math.max(_up, nz(_finalUp[1])) : _up _finalDn := close[1] < nz(_finalDn[1]) ? math.min(_dn, nz(_finalDn[1])) : _dn
var int _trend = 1 _trend := close > nz(_finalDn[1]) ? 1 : close < nz(_finalUp[1]) ? -1 : _trend
[_finalUp, _finalDn, _trend]
// // ③ Supertrend 1, 2, 3 실행 // [up1, dn1, tr1] = f_supertrend(4, 0.2) [up2, dn2, tr2] = f_supertrend(6, 1.0) [up3, dn3, tr3] = f_supertrend(7, 1.4)
st1 = tr1 == 1 ? up1 : dn1 st2 = tr2 == 1 ? up2 : dn2 st3 = tr3 == 1 ? up3 : dn3
plot(st1, "ST1", color=tr1 == 1 ? color.green : color.red) plot(st2, "ST2", color=tr2 == 1 ? color.green : color.red) plot(st3, "ST3", color=tr3 == 1 ? color.green : color.red)
// // ④ Supertrend 기반의 추세 레짐 // allAbove = close > st1 and close > st2 and close > st3 allBelow = close < st1 and close < st2 and close < st3
var int regime = 0 var int prevRegime = 0 // (추가) 이전 레짐 저장
prevRegime := regime // 레짐 변경 감지를 위해 저장
if allAbove regime := 1 else if allBelow regime := -1 // 유지 시 regime 변경 없음
// // 🔥 레짐 시작 시 표시 (bull / bear) // bullStart = regime == 1 and prevRegime != 1 bearStart = regime == -1 and prevRegime != -1
plotshape(bullStart, title="Bull Regime Start", text="bull", style=shape.labelup, color=color.green, textcolor=color.white, location=location.belowbar, size=size.tiny)
plotshape(bearStart, title="Bear Regime Start", text="bear", style=shape.labeldown, color=color.red, textcolor=color.white, location=location.abovebar, size=size.tiny)
// // ⑤ 최종 매수/매도 신호 // buySignal = (regime == 1) and buyBB sellSignal = (regime == -1) and sellBB
// // ⑥ 화살표 표시 // plotshape(buySignal, title="BUY", style=shape.arrowup, color=color.green, location=location.belowbar, size=size.small, text="BUY") plotshape(sellSignal, title="SELL", style=shape.arrowdown, color=color.red, location=location.abovebar, size=size.small, text="SELL")
// // ⑦ 알림 // alertcondition(buySignal, "BUY", "Regime Up + BB Lower Touch") alertcondition(sellSignal, "SELL", "Regime Down + BB Upper Touch")
답변 1
예스스탁 예스스탁 답변
2025-12-16 14:49:18