트레이딩뷰 Pine Script 활용 – 볼린저 밴드 & 이동평균선을 이용한 자동매매 전략

🎤 안녕하세요! 오늘은 볼린저 밴드와 이동평균선을 활용한 자동매매 전략을 만들어보겠습니다.
👉 이 강좌에서 배우는 내용:
✅ 볼린저 밴드(Bollinger Bands)와 이동평균선(MA)을 활용한 매매 전략
✅ Pine Script를 이용해 매매 신호를 생성하는 방법
✅ 자동매매 설정 및 백테스트 최적화 방법
그럼 바로 시작해볼까요? 🚀

📌 1. 볼린저 밴드 & 이동평균선이란?
📍 볼린저 밴드 (Bollinger Bands)
- 가격 변동성을 나타내는 지표
- 상단 밴드(저항선), 중앙선(이동평균선), 하단 밴드(지지선)로 구성
- 가격이 하단 밴드를 터치하면 매수 신호, 상단 밴드를 터치하면 매도 신호로 활용
볼린저 밴드 기본 공식:
중앙선=이동평균선(SMA)\text{중앙선} = \text{이동평균선} (SMA)
중앙선=이동평균선(SMA) 상단 밴드=SMA+(표준편차×2)\text{상단 밴드} = \text{SMA} + (표준편차 × 2)
상단 밴드=SMA+(표준편차×2) 하단 밴드=SMA−(표준편차×2)\text{하단 밴드} = \text{SMA} - (표준편차 × 2)
하단 밴드=SMA−(표준편차×2)
(출처: Investopedia – 볼린저 밴드 차트 예제)
📍 이동평균선 (Moving Average)
- 가격 추세를 파악하는 지표
- 단기(7일), 중기(20일), 장기(50~200일) 이동평균선 활용 가능
- 단기선이 장기선을 돌파하면 매수 신호, 하락하면 매도 신호로 활용
💡 볼린저 밴드와 이동평균선을 함께 사용하면 신뢰도가 높은 매매 신호를 만들 수 있습니다!
📌 2. Pine Script로 자동매매 전략 만들기
📢 이제 직접 Pine Script를 작성해서 자동매매 전략을 만들어보겠습니다!
📍 1단계: 볼린저 밴드 & 이동평균선 설정
pinescript
//@version=5 strategy("볼린저 밴드 & 이동평균선 자동매매", overlay=true) // 볼린저 밴드 설정 length = 20 src = close basis = ta.sma(src, length) dev = 2.0 upper = basis + dev * ta.stdev(src, length) lower = basis - dev * ta.stdev(src, length) // 이동평균선 설정 smaShort = ta.sma(close, 9) // 단기 이동평균선 smaLong = ta.sma(close, 50) // 장기 이동평균선 // 차트에 표시 plot(basis, color=color.blue, title="Bollinger SMA") // 중앙선 plot(upper, color=color.red, title="Upper Band") // 상단 밴드 plot(lower, color=color.green, title="Lower Band") // 하단 밴드 plot(smaShort, color=color.orange, title="단기 이동평균선") plot(smaLong, color=color.purple, title="장기 이동평균선")
✅ 볼린저 밴드 (20일 기준) 생성
✅ 단기(9일) & 장기(50일) 이동평균선 설정
✅ 차트에 볼린저 밴드와 이동평균선 표시
💡 이제 트레이딩뷰에서 실행하면 차트에서 지표가 표시됩니다!
📍 2단계: 매매 신호 추가하기
pinescript
//@version=5 strategy("볼린저 밴드 & 이동평균선 자동매매", overlay=true) // 볼린저 밴드 설정 length = 20 src = close basis = ta.sma(src, length) dev = 2.0 upper = basis + dev * ta.stdev(src, length) lower = basis - dev * ta.stdev(src, length) // 이동평균선 설정 smaShort = ta.sma(close, 9) smaLong = ta.sma(close, 50) // 매매 신호 조건 buySignal = (ta.crossover(close, lower) and ta.crossover(smaShort, smaLong)) // 하단 밴드 반등 + 단기선 상승 sellSignal = (ta.crossunder(close, upper) and ta.crossunder(smaShort, smaLong)) // 상단 밴드 터치 + 단기선 하락 // 매매 신호 표시 plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="BUY") plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title="SELL")
✅ 볼린저 밴드 하단 터치 & 단기 이동평균선 상승 → 매수 신호
✅ 볼린저 밴드 상단 터치 & 단기 이동평균선 하락 → 매도 신호
✅ plotshape()를 사용해 차트에 매수·매도 아이콘 표시
💡 이제 차트에서 매매 신호를 직접 확인할 수 있습니다!
📍 3단계: 자동매매 전략 추가하기
pinescript
//@version=5 strategy("볼린저 밴드 & 이동평균선 자동매매", overlay=true) // 볼린저 밴드 설정 length = 20 src = close basis = ta.sma(src, length) dev = 2.0 upper = basis + dev * ta.stdev(src, length) lower = basis - dev * ta.stdev(src, length) // 이동평균선 설정 smaShort = ta.sma(close, 9) smaLong = ta.sma(close, 50) // 매매 신호 조건 longCondition = (ta.crossover(close, lower) and ta.crossover(smaShort, smaLong)) shortCondition = (ta.crossunder(close, upper) and ta.crossunder(smaShort, smaLong)) // 자동매매 실행 strategy.entry("Long", strategy.long, when=longCondition) strategy.close("Long", when=shortCondition)
✅ 매수 신호 발생 시 자동으로 포지션 진입
✅ 매도 신호 발생 시 포지션 정리(매도)
✅ 트레이딩뷰에서 백테스트 진행 가능
💡 이제 트레이딩뷰에서 실행하면 자동으로 매매가 이루어집니다! 🚀
📌 3. 백테스트 및 최적화 방법
📢 트레이딩뷰에서 전략을 실행한 후, "전략 테스터"에서 성과를 확인하세요!
✔ 수익률, 승률, 최대 손실 분석
✔ 볼린저 밴드 및 이동평균선 파라미터 최적화
✔ 위험 관리 기능(스탑로스, 테이크 프로핏) 추가 가능
💡 전략을 최적화하여 더 나은 성과를 얻으세요!
✅ Pine Script를 이용한 매매 신호 및 자동매매 코드 작성
✅ 백테스트를 통해 전략 검증 및 최적화 방법 학습
📌 이제 직접 Pine Script를 활용해 나만의 자동매매 전략을 만들어보세요! 🚀