카테고리 없음

트레이딩뷰에서 백테스트 스크립트 수정하는 법 알아보자

리얼타임박스 2025. 4. 15. 02:30
반응형

트레이딩뷰(TradingView)는 단순한 차트 분석 툴을 넘어, Pine Script(파인스크립트)를 통해 자신만의 매매 전략을 백테스트(Backtest)할 수 있는 강력한 기능을 제공합니다.
하지만 처음에는 기본 전략 템플릿만 제공되기 때문에, 원하는 진입 조건, 청산 조건, 수익률 조건에 맞춰 스크립트를 직접 수정하는 법을 익히는 것이 중요합니다.

이번 포스팅에서는 트레이딩뷰에서 기본 제공되는 전략 스크립트를 수정하는 방법과 실전 예시, 주의할 점까지 백테스트 실력 업그레이드를 위한 핵심 포인트를 정리해봤습니다.


1. 백테스트 스크립트란? (전략과 지표의 차이)

트레이딩뷰에서 사용하는 스크립트는 크게 두 종류로 나뉩니다:

종류 설명 목적

인디케이터(indicator) 단순한 시각적 지표 (예: RSI, MA 등) 보조지표로 참고
전략(strategy) 실제 매수/매도 조건을 포함 백테스트, 자동 매매 기반

📌 백테스트를 하려면 반드시 strategy() 함수가 포함된 스크립트를 사용해야 합니다. 지표로는 수익률 테스트가 불가능합니다.


2. 기본 백테스트 스크립트 불러오기

트레이딩뷰는 예제로 사용할 수 있는 기본 전략을 제공합니다.

✅ 불러오는 방법:

  1. 차트 상단 메뉴 > [Pine Editor] 클릭
  2. 아래쪽 코드 창 열림
  3. 우측 상단 > New 클릭
  4. 예제에서 "Moving Average Cross Strategy" 선택
  5. 코드 편집 후 상단 ‘Add to Chart’ 클릭 → 전략이 차트에 적용됨
  6. 하단의 Strategy Tester 탭에서 수익률, 승률 확인 가능

3. 자주 수정하는 조건별 스크립트 예시

📈 진입 조건 수정 (예: EMA 9 > EMA 21일 때 매수)

longCondition = ta.ema(close, 9) > ta.ema(close, 21)
if (longCondition)
    strategy.entry("Long", strategy.long)

📉 청산 조건 추가 (예: RSI > 70일 때 익절)

exitCondition = ta.rsi(close, 14) > 70
if (exitCondition)
    strategy.close("Long")

💡 시간 조건 필터링 (예: 09:00 ~ 15:00 사이만 진입)

inSession = (hour >= 9 and hour < 15)
if (longCondition and inSession)
    strategy.entry("Long", strategy.long)

이처럼 스크립트에 조건을 직접 추가 또는 변경함으로써, 나만의 전략 백테스트가 가능합니다.


4. 전략 파라미터를 슬라이더로 조절하는 법

하드코딩 대신 유연하게 테스트할 수 있도록 파라미터를 변수화해보세요.

ema1 = input.int(9, title="Fast EMA")
ema2 = input.int(21, title="Slow EMA")

emaFast = ta.ema(close, ema1)
emaSlow = ta.ema(close, ema2)

if (emaFast > emaSlow)
    strategy.entry("Buy", strategy.long)

🔧 이렇게 하면, 차트에서 매개변수를 슬라이더로 쉽게 조정하면서 다양한 시나리오를 실시간 비교할 수 있습니다.


5. 백테스트에 수수료, 슬리피지 반영하기

현실적인 전략 테스트를 위해서는 거래 비용도 함께 반영해야 합니다.

strategy("My Strategy", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=2)
  • commission_value: 거래당 수수료 (%)
  • slippage: 체결 시 가격 미끄러짐 (틱 단위)

🧠 이것만 반영해도 과도한 백테스트 성과 과신을 줄일 수 있습니다.


6. 전략 테스트 결과 확인 – 무엇을 봐야 할까?

차트 하단의 Strategy Tester 탭에서는 아래 항목들을 확인할 수 있습니다:

항목 설명

Net Profit 순이익
Max Drawdown 최대 손실 구간
Win Rate 승률
Avg Trade 평균 수익/손실
Number of Trades 총 트레이드 횟수
Sharpe Ratio 수익 대비 리스크 효율

✅ 중요한 포인트: 수익률보다 ‘MDD(최대낙폭)’과 '승률 대비 리스크 관리'를 함께 고려해야 합니다.


Q&A

Q. 백테스트 결과는 실전과 얼마나 일치하나요?

A. 100% 일치는 불가능합니다. 백테스트는 시장의 과거 데이터를 기반으로 하므로, 실시간 체결 가격, 슬리피지, 유동성 등을 완벽히 반영하지 못합니다.
👉 그래서 반드시 수수료, 슬리피지 반영 + 거래 조건 필터링을 통해 현실과 유사하게 설정해야 합니다.


Q. 전략 코드를 수정해도 반영이 안 될 때는?

A. 코드를 수정한 후 반드시 ‘Add to chart’ 버튼을 다시 눌러야 차트에 적용됩니다.
또한, 기존에 차트에 적용된 다른 전략이 있다면 먼저 제거 후 다시 적용하세요.


Q. Pine Script를 처음 배우는데 어렵지 않나요?

A. 파인스크립트는 초보자도 쉽게 접근할 수 있도록 설계된 언어입니다.
if, input, plot, strategy.entry, strategy.close 등 몇 가지 기본 구문만 익히면 웬만한 전략은 직접 구현 가능합니다.
👉 트레이딩뷰에서 기본 제공하는 스크립트 예제와 설명 주석을 활용하는 것이 최고의 학습법입니다.


트레이딩뷰에서 백테스트 스크립트를 자유롭게 수정할 수 있게 되면, 단순한 분석이 아닌 실제 수익으로 이어질 수 있는 전략 수립이 가능해집니다. 코딩이 처음이라도, 예제를 복사하고 수정하는 것부터 시작해보세요.
나만의 전략 → 수치 검증 → 실전 적용
이 과정을 반복하면, 어느새 여러분도 데이터 기반 트레이더가 되어 있을 거예요. 📈🧠💻

반응형