멀티 타임 프레임 (MTF) 기능을 쓰려면?

MTF 기능은 인풋에서 타임프레임 드롭다운을 써서 단 두번 클릭으로 인디케이터의 타임프레임을 바꿀 수 있도록 해 주는 피처입니다.

파인에서도 빌트인 인디케이터를 쓸 때와 똑같이 타임프레임  파라미터를 쓸 수 있습니다. 간단히 스크립트의 인디케이터 선언에 레졸루션 파라미터를 넣음으로써 스크립트에 MTF 기능을 쉽게 넣을 수 있게 되어 유저가 바라는 타임프레임으로 인디케이터를 걸 수 있게 되었습니다.

타임프레임 파라미터를 쓰면 스크립트의 인풋에 타임프레임 인풋 필드가 저절로 들어가게 됩니다. 타임프레임 파라미터 디폴트값은 유효한 타임프레임 스트링이면 됩니다. 하지만 그 스트링이 필드 드롭다운 메뉴에 없는 거라면 그 필드에 "심볼과 같음" 이 디폴트 밸류로 나옵니다. 빈 스트링 ("") 을 넣으면 그 차트의 타임프레임을 가져다 쓰게 됩니다. 

보기로, 5분 차트에 1D 타임프레임의 무빙 애버리지를 넣고 싶을 때, 예전에는 아래와 같이 request.security 펑크션을 써서 할 수 있었습니다:

//@version=5indicator(title="Moving Average", shorttitle="MA with security", overlay=true)len = input.int(9, minval=1, title="Length")src = input.source(close, title="Source")out = ta.sma(src, len)tf = input.timeframe(title="Timeframe", defval="1D")s1 = request.security(syminfo.tickerid, tf, out, gaps=barmerge.gaps_on)plot(s1, color=color.red)
Java


하지만 이제는 간단히 indicator 콜에 timeframe="D" 만 넣으면 됩니다:

//@version=5indicator(title="Moving Average", shorttitle="MA with timeframe", overlay=true, timeframe="D", timeframe_gaps=true)len = input.int(9, minval=1, title="Length")src = input.source(close, title="Source")offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)out = ta.sma(src, len)plot(out, color=color.blue, title="MA", offset=offset)
Java

타임프레임 파라미터를 쓰면 비교적 심플한 스크립트에 MTF 기능을 쉽게 넣을 수 있습니다.  더 높은 타임프레임 인포메이션을 써야 하는 파인 스크립트는 여전히 request.security를 필요로 합니다.

timeframe.*  값은 스트립트 인풋에 나오는 타임프레임 필드의 값으로 정해진대로 그 스크립트가 돌아가고 있는 타임프레임을 나타냅니다.  이는 차트 타임프레임과는 무관합니다. 그리고 타임프레임 파라미터를 스크립트에 쓰게 되면 타임 프레임이 높을수록 갭이 생기므로 timeframe.* 는 타임이 옮겨갈 때 n/a 가 나오게 됩니다. 이러한 현상에 대한 자세한 것은 당사 헬프 센터에서 알아 보십시오.