본문 바로가기
취미/주식

트레이딩뷰 TradingView의 전략테스터 처음 시작 가이드, 비트코인 투자전략 테스팅까지

by icebear3000 2025. 5. 18.
반응형

트레이딩뷰 전략테스터 완벽 가이드

BTCUSD 활용 예시로 배우기

오늘은 트레이딩뷰(TradingView)의 강력한 도구인 '전략테스터(Strategy Tester)'에 대해 알아보고, 비트코인(BTCUSD)을 활용한 실제 예시를 통해 어떻게 활용할 수 있는지 살펴보겠습니다

 

초보자부터 경험 많은 트레이더까지 모두가 쉽게 이해할 수 있도록 설명해 드리겠습니다


전략테스터란 무엇인가?

전략테스터는 트레이딩뷰에서 제공하는 강력한 백테스팅 도구로, 여러분의 트레이딩 전략이 과거 시장에서 어떻게 작동했을지 시뮬레이션할 수 있게 해줍니다

  • 전략의 수익 곡선을 시각화할 수 있습니다
  • 최대 손실(드로다운)을 모니터링할 수 있습니다
  • 각 거래의 상세 데이터를 분석할 수 있습니다
  • 단순 매수 후 보유 전략과 비교할 수 있습니다

이러한 기능들은 여러분이 실제 자금을 투자하기 전에 전략의 강점과 약점을 파악하고, 시스템을 미세 조정하여 궁극적으로 트레이딩 결정에 대한 자신감을 높이는 데 도움이 됩니다


전략테스터 설정하기

계정 설정

전략테스터를 사용하기 위해서는 먼저 트레이딩뷰 계정이 필요합니다. 무료 계정으로도 기본적인 백테스팅이 가능하지만, 기간별 백테스팅 등 심층적인 분석을 위해서는 Pro, Pro+ 또는 Premium과 같은 유료 구독이 필요합니다

전략테스터 접근 방법

  1. TradingView.com에 로그인하거나 데스크톱 클라이언트를 엽니다
  2. 원하는 차트를 엽니다
  3. 차트 창 하단의 '전략테스터(Strategy Tester)' 탭을 클릭합니다

전략테스터 사용하기: 단계별 가이드

1. 전략 불러오기

전략테스터를 처음 열면, '전략 불러오기(Load Strategy)' 버튼이 표시됩니다. 이 버튼을 클릭하면 팝업 창이 열립니다

  1. 팝업 창에서 '전략(Strategies)' 탭을 클릭합니다
  2. 기존 전략 목록에서 원하는 전략을 선택합니다
  3. 선택한 전략이 차트에 적용되면, 상승/하락 화살표가 표시됩니다
  4. 팝업 창 상단의 화살표를 클릭하여 닫습니다

이제 전략테스터에는 선택한 전략에 대한 개요, 성능 요약, 거래 목록 데이터가 표시됩니다

2. 인터페이스 탐색하기

전략테스터는 세 개의 주요 탭으로 구성되어 있습니다

 

개요(Overview) 탭: 순이익, 총 종료 거래, 수익성 있는 거래의 비율 등 전략의 요약을 보여줍니다

성능 요약(Performance Summary) 탭: 최대 드로다운, 승률, 수익 요소 등 더 깊은 통찰력을 제공합니다

거래 목록(List of Trades) 탭: 전략이 생성한 모든 가상 거래가 진입 날짜, 종료 날짜, 손익, 누적 수익 등과 함께 나열됩니다


 

BTCUSD 트레이딩뷰 전략테스터 활용 예시: 켈트너 채널 전략 실전 분석

켈트너 채널 전략 소개

켈트너 채널(Keltner Channel)은 이동평균선을 중심으로 상하단에 일정 범위의 밴드를 형성하는 기술적 지표입니다. 이 전략은 가격이 채널의 상단을 돌파할 때 매수, 하단을 돌파할 때 매도 신호를 생성합니다


전략 코드 분석

실행결

 

제가 테스트한 켈트너 채널 전략의 핵심 파라미터는 다음과 같습니다, 전체 코드는 글 하단에 작성되어 있습니다!

  • 기준 가격: 종가(close)
  • 이동평균 기간: 20일
  • 범위 계산: 실제 가격 범위(True Range) 사용
  • 승수: 1.0
// 켈트너 채널 전략 핵심 코드
strategy("Keltner Channel Strategy", overlay=true)
source = close
length = input(20, minval=1)
mult = input(1.0)
useTrueRange = input(true)

ma = sma(source, length)
range = useTrueRange ? tr : high - low
rangema = sma(range, length)
upper = ma + rangema * mult
lower = ma - rangema * mult

 

이 코드는 20일 단순이동평균(SMA)을 중심으로 채널을 형성하고, 실제 가격 범위(True Range)의 20일 평균에 승수 1.0을 곱한 값을 상하단 밴드의 폭으로 설정합니다


매매 로직 설명

이 전략의 매매 로직은 다음과 같습니다:

  1. 매수 조건: 가격이 상단 채널을 상향 돌파할 때 스탑 주문으로 진입
  2. if (crossUpper) strategy.entry("KltChLE", strategy.long, stop=bprice, comment="KltChLE")
  3. 매도 조건: 가격이 하단 채널을 하향 돌파할 때 스탑 주문으로 진입
  4. if (crossLower) strategy.entry("KltChSE", strategy.short, stop=sprice, comment="KltChSE")
  5. 주문 취소 조직
    • 매수 주문 취소: 가격이 중앙선 아래로 내려가거나 엔트리 가격에 도달했을 때
    • 매도 주문 취소: 가격이 중앙선 위로 올라가거나 엔트리 가격에 도달했을 때

백테스팅 결과 분석

이미지에서 확인할 수 있는 백테스팅 결과는 다음과 같습니다

  • 총 손익: +55,115.21 USD (+51.08%)
  • 최대 자본 감소(드로다운): 41,403.60 USD (24.44%)
  • 총 거래 횟수: 128회
  • 수익성 거래 비율: 44.53% (57/128)
  • 수익 비율: 1.253

이 결과는 상당히 흥미롭습니다. 전체 승률은 44.53%로 절반 이하이지만, 총 수익은 51.08%에 달합니다. 이는 이 전략이 손실 거래보다 이익 거래에서 더 큰 수익을 냈다는 것을 의미합니다


결과 해석 및 전체코드

  1. 비대칭적 수익 구조
    승률이 절반 이하임에도 불구하고 수익이 나는 이유는 수익비율(Profit Ratio)이 1.253으로, 손실보다 이익이 더 큰 비대칭적 수익 구조를 가지고 있기 때문입니다. 이는 트레이딩에서 매우 중요한 요소입니다
  2. 높은 드로다운
    24.44%의 최대 드로다운은 상당히 큰 편입니다. 실제 트레이딩에서는 이러한 큰 폭의 가치 하락을 감내할 수 있는 자금 관리 전략이 필요할 것입니다
  3. 이퀴티 커브 분석
    이미지에서 보이는 이퀴티 커브는 꾸준한 상승과 함께 몇 번의 큰 하락을 보여줍니다. 특히 후반부에 큰 하락이 있는 것으로 보이는데, 이는 최근 시장 조건에서 전략의 효과가 감소했을 가능성을 시사합니다
//@version=3
strategy("Keltner Channel Strategy", overlay=true)
source = close

useTrueRange = input(true)
length = input(20, minval=1)
mult = input(1.0)

ma = sma(source, length)
range = useTrueRange ? tr : high - low
rangema = sma(range, length)
upper = ma + rangema * mult
lower = ma - rangema * mult

crossUpper = crossover(source, upper)
crossLower = crossunder(source, lower)

bprice = 0.0
bprice := crossUpper ? high+syminfo.mintick : nz(bprice[1])

sprice = 0.0
sprice := crossLower ? low -syminfo.mintick : nz(sprice[1]) 

crossBcond = false
crossBcond := crossUpper ? true 
 : na(crossBcond[1]) ? false : crossBcond[1]

crossScond = false
crossScond := crossLower ? true 
 : na(crossScond[1]) ? false : crossScond[1]

cancelBcond = crossBcond and (source < ma or high >= bprice )
cancelScond = crossScond and (source > ma or low <= sprice )

if (cancelBcond)
    strategy.cancel("KltChLE")

if (crossUpper)
    strategy.entry("KltChLE", strategy.long, stop=bprice, comment="KltChLE")

if (cancelScond)
    strategy.cancel("KltChSE")

if (crossLower)
    strategy.entry("KltChSE", strategy.short, stop=sprice, comment="KltChSE")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

결론

켈트너 채널 전략은 BTCUSD와 같은 변동성이 큰 자산에서 상당한 수익 가능성을 보여주지만, 큰 드로다운을 감수할 준비가 되어있다면 시도해볼 만한 전략입니다. 51%의 수익률과 44.53%의 승률은 자금 관리와 결합했을 때 장기적으로 유리한 기대값을 제공할 수 있습니다

 

트레이딩뷰의 전략테스터는 이처럼 여러분의 전략을 세밀하게 분석하고 최적화하는 데 큰 도움이 됩니다. 코드를 이해하고 결과를 해석하는 능력을 키우면, 더욱 효과적인 트레이딩 시스템을 구축할 수 있을 것입니다

 

본 게시글은 투자참고용 정보로, 그 어떠한 경우에도 투자 손익에 대한 책임을 지지 않습니다. 투자 결정은 개인의 책임이며, 구체적인 상담이 필요하다면 금융 전문가의 조언을 받으시는 것을 권장드립니다

반응형

댓글