minimimi
[TradingView] 10. 트레이딩뷰 파인스크립트 반복문 - 지표표시부터 자동매매까지 파인 스크립트와 함께(with pine script) 본문
[TradingView] 10. 트레이딩뷰 파인스크립트 반복문 - 지표표시부터 자동매매까지 파인 스크립트와 함께(with pine script)
99mini 2023. 4. 27. 22:511. for 반복문
//@version=5
indicator("내 스크립트")
var len= 20 // 길이
acc = 0.0 // 누적합을 나타낼 변수
for i=0 to len-1 // i는 0부터 len-1까지 반복하게 된다. (0, 1, 2, 3, 4,...,19)
acc := acc + close[i] // acc에 현재부터 19개봉전까지의 종가가 모두 더해진다.
ma20 = acc / len
plot(ma20)
for counter=from_num to to_num [by step_num]
statements | continue | break
return_expression
for
문은 counter
의 초기값인 from_num
부터 to_num
까지 1씩 증가하면서 반복한다. 옵션으로 by step_num
을 이용하면 각 스텝의 증감을 정할 수 있다. 예를 들어 for counter=0 to 10 by 2
와 같이 사용하면 counter
는 0, 2, 4, 6, 8
씩 증가하면서 반복하게 된다.
for ... in
//@version=5
indicator("for...in")
// Here we determine on each bar how many of the bar's OHLC values are greater than the SMA of 'close' values
float[] ohlcValues = array.from(open, high, low, close)
qtyGreaterThan(value, array) =>
int result = 0
for currentElement in array
if currentElement > value
result += 1
result
plot(qtyGreaterThan(ta.sma(close, 20), ohlcValues))
iterable
한 array
에 대해서 for item in array
문을 사용할 수 있다. array
를 순회하며 차례대로 item
에 접근하게 된다.
위 예에서 20이평선 위에 시가, 고가, 저가, 종가 중에서 몇 개가 위치해 있는지 그래프를 그려준다. for currentElement in array
를 이용하여 array
변수의 요소에 접근하게 된다. 여기서 매개변수로 array.from(open, high, low, close)
를 넘겨주었기 때문에 반복이 진행될 때 마다 차례로 open
, high
, low
, close
에 접근하게 된다.
//@version=5
indicator("for...in")
var valuesArray = array.from(4, -8, 11, 78, -16, 34, 7, 99, 0, 55)
var isPos = array.new_bool(10, false)
for [index, value] in valuesArray
if value > 0
array.set(isPos, index, true)
if barstate.islastconfirmedhistory
label.new(bar_index, high, str.tostring(isPos))
for ... in
문을 이용할 때 인덱스와 값에 동시에 접근할 수 있다. for [index, value] in valuesArray
와 같은 형식으로 대괄호([]
)를 이용하면 된다.
2. while 반복문
//@version=5
indicator("내 스크립트")
len= 20
acc = 0.0
i = 0
while i < len
acc := acc + close[i]
i := i + 1
ma20 = acc / len
plot(ma20)
while
반복문을 이용하여 조건문이 참을 만족할 때까지 계속 반복할 수 있습니다.i := i + 1
문을 통해서 while
문을 탈출할 수 있는 조건을 만들어줍니다.
✅ 트레이딩 뷰 유료플랜을 원하신다면 아래의 링크로 가입해주세요.
https://kr.tradingview.com/gopro/?share_your_love=itman390
저와 여러분 모두 최대 30달러를 지급 받을 수 있습니다!
✅ 공식 문서
https://www.tradingview.com/pine-script-reference/v5
더 자세한 문법사항은 공식문서를 참고하시면 됩니다!