α Alphaware
MARKET

TradingView Pine Script로 퀀트 전략 지표 만들기

TradingView의 Pine Script로 커스텀 지표와 전략을 만들고, 백테스트 결과를 Python으로 넘기는 워크플로를 정리합니다.

TradingView Pine Script로 퀀트 전략 지표 만들기

왜 TradingView인가

차트 분석 도구는 많지만, TradingView를 쓰는 이유는 두 가지입니다.

첫째, Pine Script. 프로그래밍 언어로 커스텀 지표와 전략을 직접 만들 수 있습니다. 코드를 모르는 트레이더도 쓸 수 있을 정도로 문법이 단순하면서, 복잡한 조건부 로직과 멀티 타임프레임 분석까지 가능합니다.

둘째, 데이터 커버리지. 전 세계 주식, 암호화폐, 외환, 선물, 지수 데이터를 하나의 플랫폼에서 봅니다. BTC와 DXY를 나란히 놓고 상관관계를 확인하는 게 클릭 몇 번이면 됩니다.


Pine Script 기초: 커스텀 지표 만들기

이동평균 크로스오버 지표

가장 기본적인 전략 신호입니다. 단기 이동평균이 장기 이동평균을 상향 돌파하면 매수, 하향 돌파하면 매도.

//@version=6
indicator("MA Crossover Signal", overlay=true)

fast = ta.sma(close, 20)
slow = ta.sma(close, 50)

plot(fast, color=color.blue, linewidth=2)
plot(slow, color=color.orange, linewidth=2)

buySignal = ta.crossover(fast, slow)
sellSignal = ta.crossunder(fast, slow)

plotshape(buySignal, title="Buy", location=location.belowbar, 
          color=color.green, style=shape.triangleup, size=size.small)
plotshape(sellSignal, title="Sell", location=location.abovebar, 
          color=color.red, style=shape.triangledown, size=size.small)

BTC + DXY 상관관계 대시보드

BTC 가격과 DXY를 한 차트에 겹쳐보는 지표입니다. 역상관이 뚜렷할 때 매매 시점을 잡는 데 씁니다.

//@version=6
indicator("BTC vs DXY Correlation", overlay=false)

btc = request.security("BINANCE:BTCUSDT", timeframe.period, close)
dxy = request.security("TVC:DXY", timeframe.period, close)

// 20일 상관계수
corr = ta.correlation(btc, dxy, 20)

plot(corr, color=corr > 0 ? color.red : color.green, linewidth=2)
hline(0, color=color.gray, linestyle=hline.style_dashed)
hline(0.5, color=color.new(color.red, 80))
hline(-0.5, color=color.new(color.green, 80))

Pine Script 전략 → Python 백테스트 연결

Pine Script의 strategy 모드로 간단한 백테스트가 가능하지만, 복잡한 검증(Walk-forward, 거래 비용 반영 등)은 Python에서 하는 게 맞습니다.

워크플로

  1. TradingView에서 전략 아이디어를 Pine Script로 빠르게 프로토타이핑
  2. 결과가 유망하면 같은 로직을 Python(Backtrader/QuantConnect)으로 이식
  3. Python에서 Walk-forward, Purged K-Fold 등 엄밀한 검증 수행
  4. 검증 통과 시 실전 연결 (IBKR API 등)

Pine Script → Python 이식 예시

import pandas as pd
import numpy as np

def ma_crossover_signal(df: pd.DataFrame, fast: int = 20, slow: int = 50):
    """Pine Script MA Crossover를 Python으로 이식"""
    df['fast_ma'] = df['close'].rolling(fast).mean()
    df['slow_ma'] = df['close'].rolling(slow).mean()
    
    df['signal'] = 0
    df.loc[df['fast_ma'] > df['slow_ma'], 'signal'] = 1   # 매수
    df.loc[df['fast_ma'] < df['slow_ma'], 'signal'] = -1  # 매도
    
    # 크로스오버 시점만 추출
    df['trade'] = df['signal'].diff().abs() > 0
    return df

TradingView 무료 vs 유료

기능무료Essential ($12.95/월)Plus ($24.95/월)Premium ($49.95/월)
차트당 지표 수2개5개10개25개
타임프레임기본만초 단위 추가동일동일
알림5개20개100개400개
레이아웃 저장1개5개10개무제한
서버 사이드 알림
Pine Script 전략기본동일동일동일

퀀트 리서처 기준: Essential이면 충분합니다. 지표 5개로 대부분의 분석이 가능하고, 서버 사이드 알림으로 자동 통지를 받을 수 있습니다.

Premium이 필요한 경우: 동시에 여러 전략을 모니터링하거나, 초 단위 데이터 분석이 필요한 경우.


BTC 분석 레이아웃 세팅

저는 BTC 분석할 때 4분할 레이아웃을 씁니다:

  1. 왼쪽 상단: BTC/USDT 4시간봉 — 하모닉 패턴 + MA 크로스오버
  2. 오른쪽 상단: DXY 일봉 — 달러 강약 추세
  3. 왼쪽 하단: BTC 펀딩레이트 (Bybit/Binance)
  4. 오른쪽 하단: BTC vs DXY 상관계수 지표

이 레이아웃이면 한 화면에서 가격, 매크로, 파생상품, 상관관계를 동시에 봅니다.


정리

TradingView는 아이디어를 빠르게 시각화하고 검증하는 도구로 쓰고, 엄밀한 백테스트와 실전 연결은 Python으로 넘기세요.

Pine Script → Python 이식 → Walk-forward 검증 → 실전 연결이 퀀트 개발자에게 가장 현실적인 워크플로입니다.


TradingView 가입하기 — 이 링크로 유료 플랜 가입 시 할인이 적용됩니다.

#tradingview #pine-script #indicator #backtest #btc

Newsletter

주간 퀀트·마켓 인사이트 구독

시장 분석, 퀀트 전략 아이디어, AI·데이터 도구 인사이트를 이메일로 받아보세요.

구독하기 →
같은 카테고리 더 보기 MARKET →