커뮤니티

Super Trend 구현

프로필 이미지
다니엘87
2025-01-21 15:14:07
424
글번호 187442
답변완료
Super Trend 라는 지표 알게 되어 예스 스탁으로 구현해 보려고 하는데 제가 만들어 보니 그냥 직선으로만 나오네요. ㅠㅠ 제대로 나오도록 수정 부탁드립니다. Inputs : ATR_P(10), Mul(3); Variables : UpperBand(0), LowerBand(0), SuperTrend(0), Direction(1); UpperBand = Close + (Mul*ATR(ATR_P)); LowerBand = Close - (Mul*ATR(ATR_P)); If Direction = 1 Then { If Close < LowerBand Then { Direction = -1; SuperTrend = UpperBand; } Else SuperTrend = Max(LowerBand, SuperTrend); } Else { If Close > UpperBand Then { Direction = 1; SuperTrend = LowerBand; } Else SuperTrend = Min(UpperBand, SuperTrend); } If Direction = 1 Then Plot1(SuperTrend, "SuperTrend", Red); Else Plot1(SuperTrend, "SuperTrend", Blue);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-01-21 15:17:03

안녕하세요 예스스탁입니다. input : period(10),multiplier(3); var : src(0), AtrV(0),upperBand(0),lowerBand(0), prevLowerBand(0), prevUpperBand(0); var : prevSuperTrend(0), direction(0),alpha(0),source(0),SuperTrend(C); if CurrentBar > 1 Then { src = (H+L)/2; alpha = 1 / period ; source = max(high - low, abs(high - close[1]), abs(low - close[1])); ATrV = alpha * source + (1 - alpha) * ATrV[1]; //지수가중이평방식 //ATrV = ma(source,AtrPeriod); //단순이평방식 upperBand = src + multiplier * AtrV; lowerBand = src - multiplier * AtrV; prevLowerBand = lowerBand[1]; prevUpperBand = upperBand[1]; if lowerBand > prevLowerBand or close[1] < prevLowerBand Then lowerBand = lowerBand; Else lowerBand = prevLowerBand; if upperBand < prevUpperBand or close[1] > prevUpperBand Then upperBand = upperBand; Else upperBand = prevUpperBand; if C > UpperBand Then direction = 1; if C < LowerBand Then direction = -1; if direction == 1 Then SuperTrend = lowerband; Else SuperTrend = upperband; Plot1(SuperTrend,"SuperTrend",IFF(direction==1,Red,Blue)); } 즐거운 하루되세요 > 다니엘87 님이 쓴 글입니다. > 제목 : Super Trend 구현 > Super Trend 라는 지표 알게 되어 예스 스탁으로 구현해 보려고 하는데 제가 만들어 보니 그냥 직선으로만 나오네요. ㅠㅠ 제대로 나오도록 수정 부탁드립니다. Inputs : ATR_P(10), Mul(3); Variables : UpperBand(0), LowerBand(0), SuperTrend(0), Direction(1); UpperBand = Close + (Mul*ATR(ATR_P)); LowerBand = Close - (Mul*ATR(ATR_P)); If Direction = 1 Then { If Close < LowerBand Then { Direction = -1; SuperTrend = UpperBand; } Else SuperTrend = Max(LowerBand, SuperTrend); } Else { If Close > UpperBand Then { Direction = 1; SuperTrend = LowerBand; } Else SuperTrend = Min(UpperBand, SuperTrend); } If Direction = 1 Then Plot1(SuperTrend, "SuperTrend", Red); Else Plot1(SuperTrend, "SuperTrend", Blue);