RSI와 MACD를 결합한 나만의 커스텀 다중 하단 지표 제작 완벽 가이드

 보조지표를 활용한 기술적 분석 시 가장 흔히 발생하는 문제는 '지표 과다로 인한 차트의 가독성 저하'와 '단일 지표가 유발하는 속임수(False Signal)'입니다.

대표적인 역추세 및 강도 지표인 RSI(Relative Strength Index)와 추세 모멘텀 지표인 MACD(Moving Average Convergence Divergence)를 하나로 융합하면, 차트 하단 영역을 효율적으로 절약하면서 신호의 신뢰도를 획기적으로 높일 수 있습니다.

RSI와 MACD 결합 커스텀 지표 및 Pine Script 코드를 소개하는 트레이딩뷰 차트 분석 썸네일.


1. 개별 지표의 원리와 결합 시너지

① RSI (상대강도지수)

  • 원리: 일정 기간 동안 가격의 상승폭과 하락폭의 상대적 크기를 수치화하여 $0 \sim 100$ 사이로 나타냅니다.

  • 장점: 시장이 불타오르거나(과매수, 보통 70 이상) 침체된 상태(과매도, 보통 30 이하)를 명확하게 포착합니다.

  • 단점: 강한 추세장에서는 RSI가 과매수/과매도 영역에 오랫동안 머물며 조기 진입에 따른 손실을 유발할 수 있습니다.

② MACD (이동평균수렴·다이버전스)

  • 원리: 단기 이동평균선과 장기 이동평균선 사이의 거리를 측정하여 추세의 방향과 모멘텀 변화를 파악합니다.

  • 장점: 추세의 전환 시점을 시각적(MACD 선, Signal 선, Histogram)으로 직관적으로 보여줍니다.

  • 단점: 이동평균 기반이므로 신호가 다소 후행하는 경향이 있습니다.

③ 결합 시너지 효과

RSI와 MACD를 결합하면 "RSI가 극단적 과매도 구간에 도달한 상태에서 MACD의 골든크로스가 발생할 때만 진입"하는 등의 조건부 필터링이 가능해집니다. 이를 통해 RSI의 조기 진입 위험과 MACD의 후행성을 상호 보완할 수 있습니다.



2. 커스텀 지표 설계 구조

하나의 지표 창 내에 RSI와 MACD를 직관적으로 배치하기 위한 설계 알고리즘입니다.

  1. 메인 축 (Y축): RSI의 기본 스케일인 $0 \sim 100$을 메인 축으로 설정합니다.

  2. 기준선 설정: 과매수($70$), 과매도($30$), 그리고 중앙 스위트 스팟($50$) 라인을 배치합니다.

  3. MACD 정규화: MACD의 히스토그램 스케일을 조정하여 RSI 중심선($50$)을 기준으로 위아래로 펼쳐지는 배경 막대그래프(Histogram)로 변환합니다.

  4. 다중 조건 매수/매도 시그널 생성:

    • 강력 매수 (Buy Signal): RSI $\le 30$ (과매도) AND MACD 선이 Signal 선을 위로 돌파(골든크로스).

    • 강력 매도 (Sell Signal): RSI $\ge 70$ (과매수) AND MACD 선이 Signal 선을 아래로 돌파(데드크로스).



3. 트레이딩뷰 파인스크립트(Pine Script v5) 전체 코드

아래 코드는 트레이딩뷰(TradingView)의 Pine Editor 창에 붙여넣어 즉시 사용할 수 있는 완성형 스크립트입니다.


//@version=5

indicator(title="Custom RSI + MACD Hybrid Oscillator", shorttitle="RSI_MACD_Combo", overlay=false)


// ==========================================

// 1. 사용자 설정 입력 (Inputs)

// ==========================================

// RSI 설정

rsiLength     = input.int(14, title="RSI 기간", group="RSI 설정")

rsiOverbought = input.int(70, title="과매수 기준선", group="RSI 설정")

rsiOversold   = input.int(30, title="과매도 기준선", group="RSI 설정")


// MACD 설정

fastLength   = input.int(12, title="MACD 단기 이평", group="MACD 설정")

slowLength   = input.int(26, title="MACD 장기 이평", group="MACD 설정")

signalLength = input.int(9,  title="MACD 시그널 이평", group="MACD 설정")

macdScale    = input.float(3.0, title="MACD 스케일 가중치", group="MACD 설정")


// ==========================================

// 2. 지표 수식 계산 (Calculations)

// ==========================================

// RSI 계산

rsiValue = ta.rsi(close, rsiLength)


// MACD 계산

[macdLine, signalLine, hist] = ta.macd(close, fastLength, slowLength, signalLength)


// ==========================================

// 3. 진입/청산 조건 정의 (Conditions)

// ==========================================

// 강력 매수 조건: RSI 과매도 구간에서 MACD 골든크로스

buySignal = (rsiValue <= rsiOversold) and ta.crossover(macdLine, signalLine)


// 강력 매도 조건: RSI 과매수 구간에서 MACD 데드크로스

sellSignal = (rsiValue >= rsiOverbought) and ta.crossunder(macdLine, signalLine)


// 일반 모멘텀 반전 조건 (보조 신호)

bullishCross = ta.crossover(macdLine, signalLine)

bearishCross = ta.crossunder(macdLine, signalLine)


// ==========================================

// 4. 시각화 및 차트 렌더링 (Plotting)

// ==========================================

// RSI 라인

plot(rsiValue, title="RSI", color=color.white, linewidth=2)


// 기준선 표현 (70, 50, 30)

hOb = hline(rsiOverbought, "과매수 선", color=color.new(color.red, 30), linestyle=hline.style_dashed)

hOs = hline(rsiOversold,   "과매도 선", color=color.new(color.green, 30), linestyle=hline.style_dashed)

hMid = hline(50,            "중앙 기준선", color=color.new(color.gray, 50), linestyle=hline.style_dotted)


// 과매수/과매도 영역 배경색 칠하기

fill(hOb, hOs, color=color.rgb(126, 87, 194, 93), title="RSI 정상 범위")


// MACD 히스토그램을 RSI 중앙선(50) 기준으로 정규화하여 출력

// 모멘텀 양수: 초록색 계열, 음수: 빨간색 계열

plot(50 + (hist * macdScale), title="MACD 모멘텀 배경", 

     color = hist >= 0 ? (hist > hist[1] ? color.new(color.green, 60) : color.new(color.green, 80)) 

                       : (hist < hist[1] ? color.new(color.red, 60) : color.new(color.red, 80)), 

     style = plot.style_histogram, linewidth = 3)


// MACD 선 및 Signal 선을 변형하여 표현 (RSI 50 중심 오프셋)

plot(50 + (macdLine * macdScale), title="MACD Line", color=color.new(color.blue, 40), linewidth=1)

plot(50 + (signalLine * macdScale), title="Signal Line", color=color.new(color.orange, 40), linewidth=1)


// ==========================================

// 5. 신호 화살표 및 알람 (Shapes & Alerts)

// ==========================================

// 조건 충족 시 차트 하단/상단에 화살표 표시

plotshape(buySignal, title="강력 매수 신호", style=shape.triangleup, location=location.bottom, color=color.green, size=size.normal)

plotshape(sellSignal, title="강력 매도 신호", style=shape.triangledown, location=location.top, color=color.red, size=size.normal)


// 트레이딩뷰 알림 조건 설정

alertcondition(buySignal, title="[매수] RSI+MACD 하단 반전", message="RSI 과매도 구간에서 MACD 골든크로스가 발생했습니다!")

alertcondition(sellSignal, title="[매도] RSI+MACD 상단 반전", message="RSI 과매수 구간에서 MACD 데드크로스가 발생했습니다!")



4. 트레이딩뷰 적용 및 설정 방법

  1. 웹브라우저에서 TradingView에 접속하여 원하는 차트를 엽니다.

  2. 차트 하단 메뉴에서 [Pine Editor] 탭을 클릭합니다.

  3. 기존 입력되어 있는 소스 코드를 모두 지우고, 위 v5 코드를 그대로 복사해서 붙여넣습니다.

  4. 우측 상단의 [저장] 버튼을 누른 후, [차트에 넣기 (Add to Chart)] 버튼을 클릭합니다.

  5. 차트 하단에 새로운 커스텀 다중 오실레이터 패널이 생성됩니다.

1.지표 설정 메뉴 진입:Prerequisite.

차트 하단에 추가된 지표 이름(RSI_MACD_Combo) 옆의 톱니바퀴(설정) 아이콘을 클릭합니다.

2.파라미터 최적화:1 min.

매매하는 종목의 변동성에 따라 MACD 스케일 가중치 값을 조절하여 배경 히스토그램의 크기를 보기 편하게 맞춥니다.

3.알림 설정:Optional.

차트 우측 메뉴의 [시계 모양 아이콘(Alert)]을 누르고, 조건에서 'RSI_MACD_Combo'를 선택해 실시간 매수/매도 알림을 등록합니다.



5. 실전 매매 전략 및 검증 팁

① 장기 이동평균선과의 병행 (추세 필터링)

역추세 신호는 하락장 속의 일시적 반등(데드캣 바운스)에서 손실을 가져올 수 있습니다. 메인 차트에 200일 단순이동평균선(200 SMA)을 설정한 뒤 다음과 같이 필터링하세요.

  • 주가가 200 SMA 위에 있을 때: 매수 신호(Triangle Up)만 채택.

  • 주가가 200 SMA 아래에 있을 때: 매도 신호(Triangle Down)만 채택.

② 다이버전스(Divergence)의 포착

주가는 저점을 낮추고 있으나, 본 커스텀 지표의 RSI 라인 및 MACD 히스토그램이 저점을 높여갈 경우 매우 강력한 상승 다이버전스(Bullish Divergence) 신호로 판단할 수 있습니다.

③ 단계별 진입 검증 규칙

이 커스텀 지표를 사용할 때 매수 타이밍 검증 프로세스는 다음과 같습니다:

  1. RSI 라인(흰색 선)이 30 이하로 내려가는지 확인합니다.

    • 검증: RSI가 과매도 영역에 진입하여 조건 1이 충족되었는지 확인.

  2. 50 기준선 하단에서 MACD 배경 히스토그램이 빨간색에서 초록색으로 반전하는지 확인합니다.

    • 검증: 모멘텀이 하락에서 상승으로 전환되는지 확인.

  3. 초록색 삼각형 매수 화살표 신호가 확정(캔들 종가 완성)되었는지 확인합니다.

    • 검증: 캔들이 닫힐 때 화살표가 사라지지 않고 유지되면 진입 성공.


댓글

이 블로그의 인기 게시물

엔트로픽 상장일 전망과 관련주 총정리: 클로드(Claude) 개발사의 IPO 주식 투자 가이드

[파이썬 자동매매] CCXT 웹소켓(WebSocket)으로 해외 거래소 호가창 실시간 수집 및 DataFrame 재구성