에르노트

파인스크립트 시작하기 본문

Dev/PineScript

파인스크립트 시작하기

두콩 2024. 12. 16. 19:53

파인스크립트(Pine Script)는 트레이딩뷰(TradingView)에서 제공하는 차트 전용 스크립트 언어다. 트레이딩뷰라는 강력한 플랫폼 위에서 구동되기 때문에, 파이썬 등 다른 언어로 퀀트 전략을 설계하고 테스트하는 것보다 백만 배 더 쉽고 간편하다. 덕분에 파인스크립트를 쓰면 자잘한 구현 이슈를 최소화하고 매매 로직에 더 집중할 수 있다.

 

언어 구조는 자바스크립트 + 파이썬이기 때문에, 대중적인 현대 프로그래밍 언어를 한가지 이상 써봤다면 쉽게 적응할 수 있다. 현재 글 작성 시점 기준 최신 버전은 v6이고 공식 문서도 잘 갖춰져있다.

 

Pine 스크립트 언어 레퍼런스 매뉴얼

 

kr.tradingview.com


 

pinescript

 

파인에디터

코딩은 그냥 트레이딩뷰에서 Pine 에디터를 열어서 하면 된다. VS Code 기반이라 편리하다. 아래 코드는 아주 간단하게 이동평균선을 구현한 예제이다.

//@version=6
indicator("HelloWorld", overlay=true)

// 이동 평균 계산
length = input(14, "Length") //이평선 길이는 유저 인풋으로,, 기본값은 14일
src = close //종가 기준
sma_value = ta.sma(src, length) //빌트인 함수로 single moving average가 제공됨

// 차트에 표시
plot(sma_value, color=color.blue, title="SMA")

지표 적용!

 

이평선이 예쁘게 그려지는 것을 곧바로 차트에서 확인할 수 있고, 인풋으로 길이를 받는 것도 잘 된다.


조건문

당연히 프로그래밍 언어이므로 조건문을 쓸 수 있다. if else 키워드를 쓸 수도 있고 삼항 연산자도 가능하다.

//@version=6

is_up = close > open
bar_color = if is_up
    color.yellow
else
    color.purple

plot(close, color=bar_color, title="Close with Color")
//@version=6

is_up = close > open
bar_color = is_up ? color.yellow : color.purple
plot(close, color=bar_color, title="Close with Color")

현재가가 시가보다 높으면(양봉이면) 노란색으로
현재가가 시가보다 낮으면(음봉이면) 보라색으로

 

반복문

역시 반복문도 파이썬 느낌 그대로 쓰면 된다. 처음에는 ta 내장함수 sma()를 사용했지만 for 반복문을 돌리면 직접 이동평균을 계산할 수도 있고 당연히 결과는 똑같이 나온다.

//@version=6
indicator("HelloWorld", overlay=true)

// 범위에서 데이터 처리
sum = 0.0
for i = 1 to 14
    sum := sum + close[i]  // 최근 14개의 종가 합산

average = sum / 14

plot(average, title="Average of Last 14 Bars", color=color.purple)

이평선


vs code style

+ 자동 완성도 잘 되고 흡사 VS Code를 쓰는 느낌이다. 일례로 일목 구름으로 유명한 ichimoku 지표도 내장 함수로 제공되고 있다.

 

Comments