변수 재할당과 시계열 다루기: Pine Script의 := 연산자 및 History Referencing ([]) 활용법
안녕하세요, 여러분! 👋 트레이딩뷰로 나만의 멋진 전략 지표를 만들려고 파인스크립트(Pine Script)를 처음 켜셨다가, 어딘가 익숙한 듯 묘하게 달라서 멈칫하셨던 적 없으신가요? 아마 일반적인 파이썬이나 자바스크립트 생각하고 a = 10 처럼 변수 값을 바꿨는데, 조건문만 지나면 감쪽같이 원래 값으로 되돌아와 있어서 당황하셨거나, "도대체 바로 전 봉의 가격은 어떻게 불러오지?" 하며 머리를 싸매신 분들이 정말 많으실 겁니다. (저도 처음엔 그랬답니다! 😅) 그 이유는 일반 프로그래밍 언어와 달리, 파인스크립트는 차트의 캔들(봉) 하나하나를 차례대로 순회하며 실행되는 독특한 시계열(Series) 구조 를 가졌기 때문인데요. 이 성질을 정확히 모르면 내가 원하지 않는 방향으로 지표가 엉뚱하게 그려지기 십상입니다. 그래서 이번 글에서는 파인스크립트 정복의 필수 관문이자, 시계열 데이터를 내 뜻대로 주무를 수 있게 해주는 두 가지 치트키! 재할당 연산자( := )와 과거 참조 연산자( [] )의 모든 것을 알기 쉽게 싹 정리해 드리겠습니다. 이것만 딱 짚고 넘어가시면 여러분의 코딩 실력이 한 차원 훌쩍 뛰어오를 거예요. 자, 그럼 가볍게 출발해 볼까요? 🚀 1. 변수 선언( = )과 변수 재할당( := )의 차이 파인스크립트에서 변수를 다룰 때 = 과 := 의 차이를 구분하는 것은 매우 중요합니다. = (선언 및 최초 할당): 새로운 변수를 생성할 때 사용합니다. := (재할당): 이미 선언된 기존 변수의 값을 새로운 값으로 업데이트할 때 사용합니다. 왜 := 연산자가 필요할까요? 파인스크립트는 새로운 봉(Bar)이 시작될 때마다 스크립트 전체를 위에서 아래로 다시 실행합니다. 만약 조건문( if ) 내에서 = 으로 변수를 다시 작성하면, 파인스크립트는 기존 변수를 수정하는 것이 아니라 새로운 지역 변수(Local Variable)를 선언하는 것으로 받아들이거나 구문 오류(Syntax Error)를 발생시킵니다.