여러 파인 펑크션에서 다이내믹 렝쓰 아규먼트를 지원합니다

Sep 9, 2020

다음 펑크션에서 다이내믹 렝쓰를 쓸 수 있습니다:

alma()
change()
highest()
highestbars()
linreg()
lowest()
lowestbars()
mom()
sma()
sum()
vwma()
wma()

시리즈 렝쓰를 쓰면 베어리어블 피어리어드 기반 계산으로 어댑티브 파인 인디케이터를 더 쉽게 만들 수 있습니다. 아래 보기에 볼래틸리티를 써서 두터운 라인에서 ALMA 피어리어드를 줄이거나 늘리고 그것을 얇은 라인의 스태틱 ALAM 와 견줍니다:

//@version=4
study("Adaptive ALMA", "AALMA", true)
i_minLen    = input(10, minval = 1)
i_maxLen    = input(60, minval = 1)
i_adaptPct  = input(3., minval = 0, maxval = 100) / 100.0

startingLen = avg(i_minLen, i_maxLen)
var float dynamicLen = startingLen
highVolatility = atr(10) > atr(40)
if highVolatility
    dynamicLen := max(i_minLen, dynamicLen * (1 - i_adaptPct))
else
    dynamicLen := min(i_maxLen, dynamicLen * (1 + i_adaptPct))
dynamicAlma = alma(close, int(dynamicLen),  0.85, 6)
staticAlma  = alma(close, int(startingLen), 0.85, 6)

maColor(_ma) => close > _ma ? highVolatility ? #40FF00ff : #40FF0060 : highVolatility ? #FF0080ff : #FF008060
plot(dynamicAlma, "Dynamic Alma", maColor(dynamicAlma), 3)
plot(staticAlma,  "Static Alma",  maColor(staticAlma),  1)
// Follow the calculated Length in the Data Window.
plotchar(dynamicLen, "dynamicLength", "")

플로우트를 써서 렝쓰를 다이내믹하게 셈하는 것이 간편하기는 하지만 위 보기처럼 펑크션콜에 쓰기 앞서 “int” 로 캐스트해 쓰도록 하십시오. 그리고 이들 펑크션은 매 바마다 셈을 합니다. 따라서 for 루프 밖에서 쓰도록 하고 if 블록이 매 바마다 실행되지 않도록 하십시오.

더 나은 트레이딩뷰를 만들 수 있도록 여러분의 피드백을 부탁드립니다.

 

Look first Then leap

트레이딩뷰는 여러분을 위해 만들어졌으므로 트레이딩뷰의 멋진 기능을 최대한 활용하세요
차트 시작