커뮤니티

다시 문의드립니다.

프로필 이미지
해암
2025-05-22 14:03:43
270
글번호 191084
답변완료

첨부 이미지

문의드린 이전 수식변환에서 아래와 같이 답을 주셨습니다. 1분봉 차트에, 같은 기간(50)과 승수(5)를 적용해서 트레이딩뷰와 비교했더니 첨부된 그림처럼 다르게 나옵니다. heikinashi supertrend 라기보다 그냥 supertrend 처럼 구현됩니다. 왜 다르게 나오는지 번거로우시겠지만 다시한번 검토부탁드립니다. 그리고 녹색선과 빨강선의 바뀌는 부분을 연결부탁드립니다. 감사합니다. ========================= 안녕하세요 예스스탁입니다. input : upertrendAtrPeriod(10); input : supertrendAtrMultiplier(2.7); var : haClose(0),haOpen(0),haHigh(0),haLow(0),haTR(0),alpha(0),haTrueRange(0); var : haSupertrendUp(0),haSupertrendDown(0),trendingUp(Nan),trendingDown(Nan); var : direction(0),supertrend(0),supertrendUp(False),supertrendDown(False); if index == 0 then { haClose = (O+H+L+C)/4; haOpen = open; haHigh = MaxList( high, haOpen, haClose); haLow = MinList( low, haOpen,haClose); } else { haClose = (O+H+L+C)/4; haOpen = (haOpen [1] + haClose [1])/2 ; haHigh = MaxList(High, haOpen, haClose) ; haLow = MinList(Low, haOpen, haClose) ; } haTR = iff(IsNan(haOpen[1]) == true, haOpen-haLow, max(max(haOpen - haLow, abs(haOpen - haClose[1])), abs(haLow - haClose[1]))); alpha = 1 / upertrendAtrPeriod ; haTrueRange = IFf(IsNan(haTrueRange[1]) == true, ma(haTR,upertrendAtrPeriod) , alpha * haTR + (1 - alpha) * IFf(isnan(haTrueRange[1])==true,0,haTrueRange[1])); haSupertrendUp =((haHigh +haLow )/2 )-(supertrendAtrMultiplier *haTrueRange ); haSupertrendDown =((haHigh +haLow )/2 )+(supertrendAtrMultiplier *haTrueRange ); direction = 0; trendingUp = iff(haClose[1]>trendingUp[1] , max (haSupertrendUp ,trendingUp[1]) , haSupertrendUp); trendingDown = iff(haClose[1]<trendingDown[1] , min (haSupertrendDown ,trendingDown[1]) , haSupertrendDown); direction = iff(haClose > trendingDown[1] , 1 , iff(haClose < trendingUp[1], -1 , IFf(IsNan(direction[1]) == true,1,direction[1]))); supertrend = iff(direction == 1 , trendingUp , trendingDown); if direction == 1 Then { plot1(supertrend,"supertrendUp", Green); NoPlot(2); } Else { plot2(supertrend,"supertrendDow", Red); NoPlot(1); } =========================
지표
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2025-05-23 10:22:03

안녕하세요 예스스탁입니다. ATR계산에 차이가 있었습니다. 수정한 식입니다. input : upertrendAtrPeriod(10); input : supertrendAtrMultiplier(2.7); var : haClose(0),haOpen(0),haHigh(0),haLow(0),haTR(0),alpha(0),haTrueRange(0); var : haSupertrendUp(0),haSupertrendDown(0),trendingUp(Nan),trendingDown(Nan); var : direction(0),supertrend(0),supertrendUp(False),supertrendDown(False); if index == 0 then { haClose = (O+H+L+C)/4; haOpen = open; haHigh = MaxList( high, haOpen, haClose); haLow = MinList( low, haOpen,haClose); } else { haClose = (O+H+L+C)/4; haOpen = (haOpen [1] + haClose [1])/2 ; haHigh = MaxList(High, haOpen, haClose) ; haLow = MinList(Low, haOpen, haClose) ; } haTR = max(haHigh - haLow, abs(haHigh - haClose[1]), abs(haLow - haClose[1])); alpha = 1 / upertrendAtrPeriod ; haTrueRange = IFf(IsNan(haTrueRange[1]) == true, ma(haTR,upertrendAtrPeriod) , alpha * haTR + (1 - alpha) * IFf(isnan(haTrueRange[1])==true,0,haTrueRange[1])); haSupertrendUp =((haHigh +haLow )/2 )-(supertrendAtrMultiplier *haTrueRange ); haSupertrendDown =((haHigh +haLow )/2 )+(supertrendAtrMultiplier *haTrueRange ); direction = 0; trendingUp = iff(haClose[1]>trendingUp[1] , max (haSupertrendUp ,trendingUp[1]) , haSupertrendUp); trendingDown = iff(haClose[1]<trendingDown[1] , min (haSupertrendDown ,trendingDown[1]) , haSupertrendDown); direction = iff(haClose > trendingDown[1] , 1 , iff(haClose < trendingUp[1], -1 , IFf(IsNan(direction[1]) == true,1,direction[1]))); supertrend = iff(direction == 1 , trendingUp , trendingDown); if direction == 1 Then { plot1(supertrend,"supertrendUp", Green); NoPlot(2); } Else { plot2(supertrend,"supertrendDow", Red); NoPlot(1); } 즐거운 하루되세요 > 해암 님이 쓴 글입니다. > 제목 : 다시 문의드립니다. > 문의드린 이전 수식변환에서 아래와 같이 답을 주셨습니다. 1분봉 차트에, 같은 기간(50)과 승수(5)를 적용해서 트레이딩뷰와 비교했더니 첨부된 그림처럼 다르게 나옵니다. heikinashi supertrend 라기보다 그냥 supertrend 처럼 구현됩니다. 왜 다르게 나오는지 번거로우시겠지만 다시한번 검토부탁드립니다. 그리고 녹색선과 빨강선의 바뀌는 부분을 연결부탁드립니다. 감사합니다. ========================= 안녕하세요 예스스탁입니다. input : upertrendAtrPeriod(10); input : supertrendAtrMultiplier(2.7); var : haClose(0),haOpen(0),haHigh(0),haLow(0),haTR(0),alpha(0),haTrueRange(0); var : haSupertrendUp(0),haSupertrendDown(0),trendingUp(Nan),trendingDown(Nan); var : direction(0),supertrend(0),supertrendUp(False),supertrendDown(False); if index == 0 then { haClose = (O+H+L+C)/4; haOpen = open; haHigh = MaxList( high, haOpen, haClose); haLow = MinList( low, haOpen,haClose); } else { haClose = (O+H+L+C)/4; haOpen = (haOpen [1] + haClose [1])/2 ; haHigh = MaxList(High, haOpen, haClose) ; haLow = MinList(Low, haOpen, haClose) ; } haTR = iff(IsNan(haOpen[1]) == true, haOpen-haLow, max(max(haOpen - haLow, abs(haOpen - haClose[1])), abs(haLow - haClose[1]))); alpha = 1 / upertrendAtrPeriod ; haTrueRange = IFf(IsNan(haTrueRange[1]) == true, ma(haTR,upertrendAtrPeriod) , alpha * haTR + (1 - alpha) * IFf(isnan(haTrueRange[1])==true,0,haTrueRange[1])); haSupertrendUp =((haHigh +haLow )/2 )-(supertrendAtrMultiplier *haTrueRange ); haSupertrendDown =((haHigh +haLow )/2 )+(supertrendAtrMultiplier *haTrueRange ); direction = 0; trendingUp = iff(haClose[1]>trendingUp[1] , max (haSupertrendUp ,trendingUp[1]) , haSupertrendUp); trendingDown = iff(haClose[1]<trendingDown[1] , min (haSupertrendDown ,trendingDown[1]) , haSupertrendDown); direction = iff(haClose > trendingDown[1] , 1 , iff(haClose < trendingUp[1], -1 , IFf(IsNan(direction[1]) == true,1,direction[1]))); supertrend = iff(direction == 1 , trendingUp , trendingDown); if direction == 1 Then { plot1(supertrend,"supertrendUp", Green); NoPlot(2); } Else { plot2(supertrend,"supertrendDow", Red); NoPlot(1); } =========================
프로필 이미지

해암

2025-05-23 10:49:51

수정해주신 식은 잘 작동됩니다. 한가지 더 추가로 첨부된 그림처럼 녹색선과 빨강선의 바뀌는 부분을 연결할 수 있을까요? 부탁드립니다. 도움에 대단히 감사합니다. 수고하세요!!! ======================== > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 다시 문의드립니다. > 안녕하세요 예스스탁입니다. ATR계산에 차이가 있었습니다. 수정한 식입니다. input : upertrendAtrPeriod(10); input : supertrendAtrMultiplier(2.7); var : haClose(0),haOpen(0),haHigh(0),haLow(0),haTR(0),alpha(0),haTrueRange(0); var : haSupertrendUp(0),haSupertrendDown(0),trendingUp(Nan),trendingDown(Nan); var : direction(0),supertrend(0),supertrendUp(False),supertrendDown(False); if index == 0 then { haClose = (O+H+L+C)/4; haOpen = open; haHigh = MaxList( high, haOpen, haClose); haLow = MinList( low, haOpen,haClose); } else { haClose = (O+H+L+C)/4; haOpen = (haOpen [1] + haClose [1])/2 ; haHigh = MaxList(High, haOpen, haClose) ; haLow = MinList(Low, haOpen, haClose) ; } haTR = max(haHigh - haLow, abs(haHigh - haClose[1]), abs(haLow - haClose[1])); alpha = 1 / upertrendAtrPeriod ; haTrueRange = IFf(IsNan(haTrueRange[1]) == true, ma(haTR,upertrendAtrPeriod) , alpha * haTR + (1 - alpha) * IFf(isnan(haTrueRange[1])==true,0,haTrueRange[1])); haSupertrendUp =((haHigh +haLow )/2 )-(supertrendAtrMultiplier *haTrueRange ); haSupertrendDown =((haHigh +haLow )/2 )+(supertrendAtrMultiplier *haTrueRange ); direction = 0; trendingUp = iff(haClose[1]>trendingUp[1] , max (haSupertrendUp ,trendingUp[1]) , haSupertrendUp); trendingDown = iff(haClose[1]<trendingDown[1] , min (haSupertrendDown ,trendingDown[1]) , haSupertrendDown); direction = iff(haClose > trendingDown[1] , 1 , iff(haClose < trendingUp[1], -1 , IFf(IsNan(direction[1]) == true,1,direction[1]))); supertrend = iff(direction == 1 , trendingUp , trendingDown); if direction == 1 Then { plot1(supertrend,"supertrendUp", Green); NoPlot(2); } Else { plot2(supertrend,"supertrendDow", Red); NoPlot(1); } 즐거운 하루되세요 > 해암 님이 쓴 글입니다. > 제목 : 다시 문의드립니다. > 문의드린 이전 수식변환에서 아래와 같이 답을 주셨습니다. 1분봉 차트에, 같은 기간(50)과 승수(5)를 적용해서 트레이딩뷰와 비교했더니 첨부된 그림처럼 다르게 나옵니다. heikinashi supertrend 라기보다 그냥 supertrend 처럼 구현됩니다. 왜 다르게 나오는지 번거로우시겠지만 다시한번 검토부탁드립니다. 그리고 녹색선과 빨강선의 바뀌는 부분을 연결부탁드립니다. 감사합니다. ========================= 안녕하세요 예스스탁입니다. input : upertrendAtrPeriod(10); input : supertrendAtrMultiplier(2.7); var : haClose(0),haOpen(0),haHigh(0),haLow(0),haTR(0),alpha(0),haTrueRange(0); var : haSupertrendUp(0),haSupertrendDown(0),trendingUp(Nan),trendingDown(Nan); var : direction(0),supertrend(0),supertrendUp(False),supertrendDown(False); if index == 0 then { haClose = (O+H+L+C)/4; haOpen = open; haHigh = MaxList( high, haOpen, haClose); haLow = MinList( low, haOpen,haClose); } else { haClose = (O+H+L+C)/4; haOpen = (haOpen [1] + haClose [1])/2 ; haHigh = MaxList(High, haOpen, haClose) ; haLow = MinList(Low, haOpen, haClose) ; } haTR = iff(IsNan(haOpen[1]) == true, haOpen-haLow, max(max(haOpen - haLow, abs(haOpen - haClose[1])), abs(haLow - haClose[1]))); alpha = 1 / upertrendAtrPeriod ; haTrueRange = IFf(IsNan(haTrueRange[1]) == true, ma(haTR,upertrendAtrPeriod) , alpha * haTR + (1 - alpha) * IFf(isnan(haTrueRange[1])==true,0,haTrueRange[1])); haSupertrendUp =((haHigh +haLow )/2 )-(supertrendAtrMultiplier *haTrueRange ); haSupertrendDown =((haHigh +haLow )/2 )+(supertrendAtrMultiplier *haTrueRange ); direction = 0; trendingUp = iff(haClose[1]>trendingUp[1] , max (haSupertrendUp ,trendingUp[1]) , haSupertrendUp); trendingDown = iff(haClose[1]<trendingDown[1] , min (haSupertrendDown ,trendingDown[1]) , haSupertrendDown); direction = iff(haClose > trendingDown[1] , 1 , iff(haClose < trendingUp[1], -1 , IFf(IsNan(direction[1]) == true,1,direction[1]))); supertrend = iff(direction == 1 , trendingUp , trendingDown); if direction == 1 Then { plot1(supertrend,"supertrendUp", Green); NoPlot(2); } Else { plot2(supertrend,"supertrendDow", Red); NoPlot(1); } =========================
프로필 이미지

예스스탁 예스스탁 답변

2025-05-23 10:57:14

안녕하세요 예스스탁입니다. input : upertrendAtrPeriod(10); input : supertrendAtrMultiplier(2.7); var : haClose(0),haOpen(0),haHigh(0),haLow(0),haTR(0),alpha(0),haTrueRange(0); var : haSupertrendUp(0),haSupertrendDown(0),trendingUp(Nan),trendingDown(Nan); var : direction(0),supertrend(0),supertrendUp(False),supertrendDown(False); if index == 0 then { haClose = (O+H+L+C)/4; haOpen = open; haHigh = MaxList( high, haOpen, haClose); haLow = MinList( low, haOpen,haClose); } else { haClose = (O+H+L+C)/4; haOpen = (haOpen [1] + haClose [1])/2 ; haHigh = MaxList(High, haOpen, haClose) ; haLow = MinList(Low, haOpen, haClose) ; } haTR = max(haHigh - haLow, abs(haHigh - haClose[1]), abs(haLow - haClose[1])); alpha = 1 / upertrendAtrPeriod ; haTrueRange = IFf(IsNan(haTrueRange[1]) == true, ma(haTR,upertrendAtrPeriod) , alpha * haTR + (1 - alpha) * IFf(isnan(haTrueRange[1])==true,0,haTrueRange[1])); haSupertrendUp =((haHigh +haLow )/2 )-(supertrendAtrMultiplier *haTrueRange ); haSupertrendDown =((haHigh +haLow )/2 )+(supertrendAtrMultiplier *haTrueRange ); direction = 0; trendingUp = iff(haClose[1]>trendingUp[1] , max (haSupertrendUp ,trendingUp[1]) , haSupertrendUp); trendingDown = iff(haClose[1]<trendingDown[1] , min (haSupertrendDown ,trendingDown[1]) , haSupertrendDown); direction = iff(haClose > trendingDown[1] , 1 , iff(haClose < trendingUp[1], -1 , IFf(IsNan(direction[1]) == true,1,direction[1]))); supertrend = iff(direction == 1 , trendingUp , trendingDown); if direction == 1 Then plot1(supertrend,"supertrend", Green); Else plot1(supertrend,"supertrend", Red); 즐거운 하루되세요 > 해암 님이 쓴 글입니다. > 제목 : Re : Re : 다시 문의드립니다. > 수정해주신 식은 잘 작동됩니다. 한가지 더 추가로 첨부된 그림처럼 녹색선과 빨강선의 바뀌는 부분을 연결할 수 있을까요? 부탁드립니다. 도움에 대단히 감사합니다. 수고하세요!!! ======================== > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 다시 문의드립니다. > 안녕하세요 예스스탁입니다. ATR계산에 차이가 있었습니다. 수정한 식입니다. input : upertrendAtrPeriod(10); input : supertrendAtrMultiplier(2.7); var : haClose(0),haOpen(0),haHigh(0),haLow(0),haTR(0),alpha(0),haTrueRange(0); var : haSupertrendUp(0),haSupertrendDown(0),trendingUp(Nan),trendingDown(Nan); var : direction(0),supertrend(0),supertrendUp(False),supertrendDown(False); if index == 0 then { haClose = (O+H+L+C)/4; haOpen = open; haHigh = MaxList( high, haOpen, haClose); haLow = MinList( low, haOpen,haClose); } else { haClose = (O+H+L+C)/4; haOpen = (haOpen [1] + haClose [1])/2 ; haHigh = MaxList(High, haOpen, haClose) ; haLow = MinList(Low, haOpen, haClose) ; } haTR = max(haHigh - haLow, abs(haHigh - haClose[1]), abs(haLow - haClose[1])); alpha = 1 / upertrendAtrPeriod ; haTrueRange = IFf(IsNan(haTrueRange[1]) == true, ma(haTR,upertrendAtrPeriod) , alpha * haTR + (1 - alpha) * IFf(isnan(haTrueRange[1])==true,0,haTrueRange[1])); haSupertrendUp =((haHigh +haLow )/2 )-(supertrendAtrMultiplier *haTrueRange ); haSupertrendDown =((haHigh +haLow )/2 )+(supertrendAtrMultiplier *haTrueRange ); direction = 0; trendingUp = iff(haClose[1]>trendingUp[1] , max (haSupertrendUp ,trendingUp[1]) , haSupertrendUp); trendingDown = iff(haClose[1]<trendingDown[1] , min (haSupertrendDown ,trendingDown[1]) , haSupertrendDown); direction = iff(haClose > trendingDown[1] , 1 , iff(haClose < trendingUp[1], -1 , IFf(IsNan(direction[1]) == true,1,direction[1]))); supertrend = iff(direction == 1 , trendingUp , trendingDown); if direction == 1 Then { plot1(supertrend,"supertrendUp", Green); NoPlot(2); } Else { plot2(supertrend,"supertrendDow", Red); NoPlot(1); } 즐거운 하루되세요 > 해암 님이 쓴 글입니다. > 제목 : 다시 문의드립니다. > 문의드린 이전 수식변환에서 아래와 같이 답을 주셨습니다. 1분봉 차트에, 같은 기간(50)과 승수(5)를 적용해서 트레이딩뷰와 비교했더니 첨부된 그림처럼 다르게 나옵니다. heikinashi supertrend 라기보다 그냥 supertrend 처럼 구현됩니다. 왜 다르게 나오는지 번거로우시겠지만 다시한번 검토부탁드립니다. 그리고 녹색선과 빨강선의 바뀌는 부분을 연결부탁드립니다. 감사합니다. ========================= 안녕하세요 예스스탁입니다. input : upertrendAtrPeriod(10); input : supertrendAtrMultiplier(2.7); var : haClose(0),haOpen(0),haHigh(0),haLow(0),haTR(0),alpha(0),haTrueRange(0); var : haSupertrendUp(0),haSupertrendDown(0),trendingUp(Nan),trendingDown(Nan); var : direction(0),supertrend(0),supertrendUp(False),supertrendDown(False); if index == 0 then { haClose = (O+H+L+C)/4; haOpen = open; haHigh = MaxList( high, haOpen, haClose); haLow = MinList( low, haOpen,haClose); } else { haClose = (O+H+L+C)/4; haOpen = (haOpen [1] + haClose [1])/2 ; haHigh = MaxList(High, haOpen, haClose) ; haLow = MinList(Low, haOpen, haClose) ; } haTR = iff(IsNan(haOpen[1]) == true, haOpen-haLow, max(max(haOpen - haLow, abs(haOpen - haClose[1])), abs(haLow - haClose[1]))); alpha = 1 / upertrendAtrPeriod ; haTrueRange = IFf(IsNan(haTrueRange[1]) == true, ma(haTR,upertrendAtrPeriod) , alpha * haTR + (1 - alpha) * IFf(isnan(haTrueRange[1])==true,0,haTrueRange[1])); haSupertrendUp =((haHigh +haLow )/2 )-(supertrendAtrMultiplier *haTrueRange ); haSupertrendDown =((haHigh +haLow )/2 )+(supertrendAtrMultiplier *haTrueRange ); direction = 0; trendingUp = iff(haClose[1]>trendingUp[1] , max (haSupertrendUp ,trendingUp[1]) , haSupertrendUp); trendingDown = iff(haClose[1]<trendingDown[1] , min (haSupertrendDown ,trendingDown[1]) , haSupertrendDown); direction = iff(haClose > trendingDown[1] , 1 , iff(haClose < trendingUp[1], -1 , IFf(IsNan(direction[1]) == true,1,direction[1]))); supertrend = iff(direction == 1 , trendingUp , trendingDown); if direction == 1 Then { plot1(supertrend,"supertrendUp", Green); NoPlot(2); } Else { plot2(supertrend,"supertrendDow", Red); NoPlot(1); } =========================