minimimi

[TradingView] 06.파인 스크립트 자료구조 - 지표표시부터 자동매매까지 파인 스크립트와 함께(with pine script) 본문

프로그래밍 공부/금융&주식

[TradingView] 06.파인 스크립트 자료구조 - 지표표시부터 자동매매까지 파인 스크립트와 함께(with pine script)

99mini 2023. 4. 16. 22:42
반응형

자료구조는 여러 변수를 한 번에 관리하기 위한 구조입니다. 예를 들어 비트 코인의 최근 종가를 변수 하나씩에 담는 다면 매우 비효율적일것입니다.

//@version=5
indicator("내 스크립트")

btc1 = 1000000
btc2 = 2000000
btc3 = 3000000
btc4 = 4000000
btc5 = 5000000

위 코드는 5개라서 가능할 수 있겠지만 최근 20개 봉을 사용하고자 한다거나 혹은 극단적으로 2만개의 봉을 보고 싶다고 할 때 모두 변수에 저장하는 것을 불가능할 것입니다. 자료구조는 여러개의 변수를 담을 수 있는 하나의 큰 바구니, 컨테이너 박스라고 생각하면 됩니다.

1. 시리즈(Series)

앞의 예제에서 close라는 내정 변수를 사용했었습니다. close는 하나의 변수가 아닌 여러 개의 변수를 담고있는 자료구조(series float)입니다. 파인 스크립트는 close라고만 사용했을 때 가장 최근의 값을 반환하도록 도와줍니다. 가장 최근 종가가 아니라 5개 이전 봉의 종가를 구하고 싶으면 다음과 같이 사용하면 됩니다.

//@version=5
indicator("내 스크립트")
plot(close[5])

1.1. 시리즈 연산

//@version=5
indicator("내 스크립트")
diff = high - low
plot(diff)

시리즈 자료형 역시 다른 자료형과 마찬가지로 연산을 수행할 수 있습니다. diff변수에 high시리즈와 low시리즈의 차이를 담을려고 합니다. diff는 고가와 저가의 차이를 나타내는 시리즈 자료형이 될 것입니다.

2. array

array는 동일한 타입의 여러 데이터를 저장할 수 있는 자료구조입니다.

//@version=5
indicator("내 스크립트")
my_array = array.new_int(3)
array.set(my_array, 0, 1)
array.set(my_array, 1, 2)
array.set(my_array, 2, 3)

val = array.get(my_array, 0)
plot(val)

my_array = array.new_int(3): int자료형의 크기가 3arraymy_array라는 변수명으로 생성합니다.
array.set(my_array, 0, 1): my_array 변수에 0번 째 순서의 값을 1로 세팅합니다.
array.get(my_array, 0): my_array라는 배열 변수의 0번 째 순서의 값을 가져옵니다.
val = array.get(my_array, 0): val변수에 my_array라는 배열 변수의 0번 째 순서의 값을 세팅합니다.

일반적이 프로그램 언어와 동일하게 인덱스의 순서는 0부터 시작합니다.

array 자료형의 원소 추가 및 삭제 함수

구문 설명
array.push(name, value) array의 마지막에 값 추가
array.unshift(name, value) array의 시작에 값 추가
array.insert(name, index, value) array의 특정 위치에 값 추가
array.shift(name) array의 시작 부분의 원소 제거
array.pop(name) array의 마지막 부분의 원소 제거
array.remove(name, index) array의 특정 위치의 원소 제거
array.clear(name) array의 모든 원소 제거

✅ 트레이딩 뷰 파인 스트립트 공식 레퍼런스

https://kr.tradingview.com/pine-script-reference/v5/

 

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

 

kr.tradingview.com

 

✅ 트레이딩 뷰 유료플랜을 원하신다면 아래의 링크로 가입해주세요.

https://kr.tradingview.com/gopro/?share_your_love=itman390

 

Join me on TradingView, this place is awesome.

If you eventually grab a paid plan, we each get $30 as a bonus!

kr.tradingview.com

저와 여러분 모두 최대 30달러를 지급 받을 수 있습니다!

 

반응형