[TradingView] Pine Script v5로 나만의 보조지표 만드는 법: 기초 가이드

"기본으로 깔려있는 지표들만 쓰다 보면 묘하게 내 입맛에 안 맞고 2% 부족한 느낌, 다들 받으셨죠?"

차트 분석을 조금 하다 보면 "이동평균선 기간을 조금만 다르게 해보고 싶다", "나만의 조건이 맞을 때 화살표가 떴으면 좋겠다" 같은 아쉬움이 생기기 마련입니다. 하지만 트레이딩뷰에서 제공하는 기본 지표만으로는 한계가 명확하죠.

"그럼 코딩을 배워야 하나?" 하고 겁부터 먹으실 수 있지만, 걱정 마세요! 트레이딩뷰가 제공하는 **Pine Script(파인 스크립트)**라는 마법 같은 언어만 알면 생각보다 엄청 쉽고 간단하게 내 손으로 직접 나만의 지표를 뚝딱 만들 수 있거든요.

이번 가이드에서는 복잡한 프로그래밍 지식은 싹 빼고, 가장 최신 버전인 Pine Script v5의 기본 구조부터 초간단 이동평균선 커스텀 지표를 직접 짜보는 법까지 아주 재미있고 친절하게 알려드릴게요. 나만의 무기를 장착하러 출발해볼까요?

1. Pine Script란 무엇인가?

Pine Script는 트레이딩뷰 전용의 경량화된 언어로, 다음과 같은 주요 특징을 가집니다.

  • 고성능 및 가벼운 실행: 서버 측에서 직접 지표 수식을 계산하므로 별도의 프로그램 설치가 필요 없습니다.

  • 시계열 데이터 처리: 가격, 거래량 등 시간의 흐름에 따른 시계열(Series) 데이터를 내장 함수 형태로 쉽게 다룰 수 있습니다.

  • 버전 관리: 현재 최신 버전은 v5로, 이전 버전(v4 이하)에 비해 변수 선언 방식과 함수 라이브러리가 훨씬 엄격하고 체계적으로 업그레이드되었습니다.

2. Pine Script v5 기본 코드 구조

모든 Pine Script 코드의 최상단에는 스크립트 버전과 지표(또는 전략)의 속성을 정의하는 선언문이 포함되어야 합니다.

//@version=5

indicator("나만의 이동평균선 지표", overlay=true)


// 1. 입력값 설정

length = input.int(20, title="기간 설정")


// 2. 지표 계산

smaValue = ta.sma(close, length)


// 3. 차트 출력

plot(smaValue, color=color.blue, linewidth=2, title="20일 SMA")


코드 주요 구성 요소 해설

  1. //@version=5: 현재 스크립트가 버전 5 규격을 따르고 있음을 컴파일러에 전달합니다.

  2. indicator(): 지표의 이름과 표시 방식을 지정합니다. overlay=true 옵션을 설정하면 메인 캔들 차트 위에 지표가 겹쳐서 표시됩니다.

  3. input.int(): 사용자가 차트 설정창에서 직접 기간 값을 수정할 수 있도록 인터페이스를 생성합니다.

  4. ta.sma(): 트레이딩뷰 내장 기술적 분석(Technical Analysis) 라이브러리 함수로, 단순 이동평균(Simple Moving Average)을 계산합니다.

  5. plot(): 계산된 시계열 데이터를 차트에 시각적 선으로 시각화합니다.

3. 실전 응용: 조건부 색상 변경 지표 만들기

단순히 선만 그리는 것을 넘어, 종가가 이동평균선 위에 있을 때와 아래에 있을 때 색상이 바뀌는 지표를 만들 수 있습니다.

//@version=5

indicator("조건부 색상 이동평균선", overlay=true)


// 사용자 입력값

len = input.int(50, "이동평균 기간")

ma = ta.sma(close, len)


// 조건식 및 색상 지정 (삼항 연산자 활용)

lineColor = close >= ma ? color.green : color.red


// 차트 출력

plot(ma, title="Dynamic MA", color=lineColor, linewidth=3)


이 코드는 종가(close)가 50일 이동평균선(ma)보다 높거나 같으면 녹색, 낮으면 적색으로 선 색상을 실시간 변환해 줍니다. 이는 추세 전환 시점을 직관적으로 파악하는 데 유용합니다.

4. Pine Script 작성 시 주의사항

  1. 대소문자 구분: 변수명과 내장 함수는 대소문자를 엄격히 구분합니다. (ta.sma와 TA.SMA는 다름)

  2. 들여쓰기(Indentation): 조건문이나 함수 블록 내부를 작성할 때 스페이스 4칸 또는 탭을 이용해 정확한 들여쓰기를 유지해야 오류가 발생하지 않습니다.

  3. v5 버전 변수 선언 규칙: v5에서는 변수 재할당 시 = 대신 := 연산자를 사용해야 하는 점을 유의해야 합니다.

참고 및 참조 자료

  • TradingView Official Documentation: Pine Script v5 User Manual

  • Technical Analysis Library Reference: TradingView Language Reference Manual

댓글

이 블로그의 인기 게시물

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

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

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