커뮤니티

슈퍼 트렌드

프로필 이미지
fighter
2022-12-03 15:53:43
1105
글번호 164326
답변완료
안녕하세요? 게시판 검색을 통해보니 슈퍼트렌드 지표가 있어 사용해보려고 합니다. 그런데 수식 자체가 상당히 길어서 지표하나를 쓰려고 하면 그런데로 사용하겠지만 다중이동평균선처럼 여러개 사용하려면 난감합니다. 그래서 이 지표식을 함수화하여 주시면 감사하겠습니다. 예를들어 ma(c,10) 처럼 supertrend(factor, AtrPeriod) 이렇게만 표현해도 supertrend 지표를 사용할 수 있도록 해 주세요 관련 지표수식 (게시판 내용 78035) [지표식] input : factor(3), AtrPeriod(10); var : src(0), AtrV(0),upperBand(0),lowerBand(0), prevLowerBand(0), prevUpperBand(0); var : prevSuperTrend(0), superTrend(C), direction(0),alpha(0),source(0); if CurrentBar > 1 Then { src = (H+L)/2; // ATR계산(ATR 계산시 지수가중이동평균(rma)이용) alpha = 1 / AtrPeriod ; source = max(high - low, abs(high - close[1]), abs(low - close[1])); ATrV = alpha * source + (1 - alpha) * ATrV[1]; upperBand = src + factor * AtrV; lowerBand = src - factor * 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; } if C > superTrend Then { Plot1(superTrend,"UpTrend", Pink, 0, 5); NoPlot(2); } Else { Plot2(superTrend,"DnTrend", green, 0, 5); NoPlot(1); } 이상입니다.
지표
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2022-12-05 09:48:08

안녕하세요 예스스탁입니다. 사용자함수명 : SuperTrend 반환값형 : 숫자형 input : factor(Numeric), AtrPeriod(Numeric); var : src(0), AtrV(0),upperBand(0),lowerBand(0), prevLowerBand(0), prevUpperBand(0); var : prevSuperTrend(0), ST(C), direction(0),alpha(0),source(0); if CurrentBar > 1 Then { src = (H+L)/2; // ATR계산(ATR 계산시 지수가중이동평균(rma)이용) alpha = 1 / AtrPeriod ; source = max(high - low, abs(high - close[1]), abs(low - close[1])); ATrV = alpha * source + (1 - alpha) * ATrV[1]; upperBand = src + factor * AtrV; lowerBand = src - factor * 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 ST = lowerband; Else ST = upperband; SuperTrend = ST; } 즐거운 하루되세요 > fighter 님이 쓴 글입니다. > 제목 : 슈퍼 트렌드 > 안녕하세요? 게시판 검색을 통해보니 슈퍼트렌드 지표가 있어 사용해보려고 합니다. 그런데 수식 자체가 상당히 길어서 지표하나를 쓰려고 하면 그런데로 사용하겠지만 다중이동평균선처럼 여러개 사용하려면 난감합니다. 그래서 이 지표식을 함수화하여 주시면 감사하겠습니다. 예를들어 ma(c,10) 처럼 supertrend(factor, AtrPeriod) 이렇게만 표현해도 supertrend 지표를 사용할 수 있도록 해 주세요 관련 지표수식 (게시판 내용 78035) [지표식] input : factor(3), AtrPeriod(10); var : src(0), AtrV(0),upperBand(0),lowerBand(0), prevLowerBand(0), prevUpperBand(0); var : prevSuperTrend(0), superTrend(C), direction(0),alpha(0),source(0); if CurrentBar > 1 Then { src = (H+L)/2; // ATR계산(ATR 계산시 지수가중이동평균(rma)이용) alpha = 1 / AtrPeriod ; source = max(high - low, abs(high - close[1]), abs(low - close[1])); ATrV = alpha * source + (1 - alpha) * ATrV[1]; upperBand = src + factor * AtrV; lowerBand = src - factor * 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; } if C > superTrend Then { Plot1(superTrend,"UpTrend", Pink, 0, 5); NoPlot(2); } Else { Plot2(superTrend,"DnTrend", green, 0, 5); NoPlot(1); } 이상입니다.
프로필 이미지

fighter

2022-12-06 02:30:01

안녕하세요? 답변주신 식을 사용자함수작성에서 그대로 붙여 넣었는데 검증(f4)이 진행되지 않고 첨부그림과 같은 오류 메세지가 뜹니다. 방법을 알려주시면 감사하겠습니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 슈퍼 트렌드 > 안녕하세요 예스스탁입니다. 사용자함수명 : SuperTrend 반환값형 : 숫자형 input : factor(Numeric), AtrPeriod(Numeric); var : src(0), AtrV(0),upperBand(0),lowerBand(0), prevLowerBand(0), prevUpperBand(0); var : prevSuperTrend(0), ST(C), direction(0),alpha(0),source(0); if CurrentBar > 1 Then { src = (H+L)/2; // ATR계산(ATR 계산시 지수가중이동평균(rma)이용) alpha = 1 / AtrPeriod ; source = max(high - low, abs(high - close[1]), abs(low - close[1])); ATrV = alpha * source + (1 - alpha) * ATrV[1]; upperBand = src + factor * AtrV; lowerBand = src - factor * 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 ST = lowerband; Else ST = upperband; SuperTrend = ST; } 즐거운 하루되세요 > fighter 님이 쓴 글입니다. > 제목 : 슈퍼 트렌드 > 안녕하세요? 게시판 검색을 통해보니 슈퍼트렌드 지표가 있어 사용해보려고 합니다. 그런데 수식 자체가 상당히 길어서 지표하나를 쓰려고 하면 그런데로 사용하겠지만 다중이동평균선처럼 여러개 사용하려면 난감합니다. 그래서 이 지표식을 함수화하여 주시면 감사하겠습니다. 예를들어 ma(c,10) 처럼 supertrend(factor, AtrPeriod) 이렇게만 표현해도 supertrend 지표를 사용할 수 있도록 해 주세요 관련 지표수식 (게시판 내용 78035) [지표식] input : factor(3), AtrPeriod(10); var : src(0), AtrV(0),upperBand(0),lowerBand(0), prevLowerBand(0), prevUpperBand(0); var : prevSuperTrend(0), superTrend(C), direction(0),alpha(0),source(0); if CurrentBar > 1 Then { src = (H+L)/2; // ATR계산(ATR 계산시 지수가중이동평균(rma)이용) alpha = 1 / AtrPeriod ; source = max(high - low, abs(high - close[1]), abs(low - close[1])); ATrV = alpha * source + (1 - alpha) * ATrV[1]; upperBand = src + factor * AtrV; lowerBand = src - factor * 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; } if C > superTrend Then { Plot1(superTrend,"UpTrend", Pink, 0, 5); NoPlot(2); } Else { Plot2(superTrend,"DnTrend", green, 0, 5); NoPlot(1); } 이상입니다.