minimimi

[TradingView] 10. 트레이딩뷰 파인스크립트 반복문 - 지표표시부터 자동매매까지 파인 스크립트와 함께(with pine script) 본문

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

[TradingView] 10. 트레이딩뷰 파인스크립트 반복문 - 지표표시부터 자동매매까지 파인 스크립트와 함께(with pine script)

99mini 2023. 4. 27. 22:51
반응형

1. 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와 같이 사용하면 counter0, 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))

iterablearray에 대해서 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문을 탈출할 수 있는 조건을 만들어줍니다.

ma20 그래프

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

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달러를 지급 받을 수 있습니다!

✅ 공식 문서

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

 

Pine Script Language Reference Manual

 

www.tradingview.com

더 자세한 문법사항은 공식문서를 참고하시면 됩니다!

반응형