커뮤니티

슈퍼트렌드 박스

프로필 이미지
고성
2022-11-29 12:31:12
977
글번호 164240
답변완료
input : Factor(7),Pd(10),highPd(1),lowPd(5); var : sp(0),th(0),ll(0),myh(0),myl(0),up(0),dn(0),ii(0),Trendup(0),trenddown(0),Trend(0); var : Tsl(0),linecolor(0); sp = (H+L+c)/3; th = high; for ii = 1 to Pd*highPd { if th < high[ii] Then th = high[ii]; } ll = low; for ii=1 to Pd*lowPd { if ll > low[ii] Then ll = low[ii]; } myh = ma(high,Pd)*0.4+th*0.6; myl = (ma(sp,Pd)*0.5+ll*0.5); Up = myl-(Factor*atr(Pd)*0.8 ); Dn = (myh+(Factor*atr(Pd) )); TrendUp = iff(sp[1]>TrendUp[1], max(Up,TrendUp[1]) , Up); TrendDown = iff(sp[1]<TrendDown[1], min(Dn,TrendDown[1]) , Dn); Trend = iff(sp > TrendDown[1] , 1, iff(sp< TrendUp[1] , -1, Trend[1])); Tsl = IFF(Trend==1, TrendUp, TrendDown); linecolor = IFF(Trend == 1 , Red , Blue); plot1(Tsl,"SuperTrend",linecolor); 1.방향이 전환되면 박스를 표시하고, 그 시점의 박스 크기를 박스를 따라가며 큰 글씨로 표기. 계속 커지면 계속 수정 변경하면서 끝날 때까지 크기를 표기. 2.방향이 역으로 전환되면 색상과 글자 크기를 작게 변경하여 0.5p이하는 지우고 0.5p 이상만 표기하여 저장. 하락시 - 부호는 생략. 감사합니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-11-29 16:12:30

안녕하세요 예스스탁입니다. input : Factor(7),Pd(10),highPd(1),lowPd(5); var : sp(0),th(0),ll(0),myh(0),myl(0),up(0),dn(0),ii(0),Trendup(0),trenddown(0),Trend(0); var : Tsl(0),linecolor(0); var : hv(0),lv(0),dv(0),tv(0),box(0),tx(0); sp = (H+L+c)/3; th = high; for ii = 1 to Pd*highPd { if th < high[ii] Then th = high[ii]; } ll = low; for ii=1 to Pd*lowPd { if ll > low[ii] Then ll = low[ii]; } myh = ma(high,Pd)*0.4+th*0.6; myl = (ma(sp,Pd)*0.5+ll*0.5); Up = myl-(Factor*atr(Pd)*0.8 ); Dn = (myh+(Factor*atr(Pd) )); TrendUp = iff(sp[1]>TrendUp[1], max(Up,TrendUp[1]) , Up); TrendDown = iff(sp[1]<TrendDown[1], min(Dn,TrendDown[1]) , Dn); Trend = iff(sp > TrendDown[1] , 1, iff(sp< TrendUp[1] , -1, Trend[1])); Tsl = IFF(Trend==1, TrendUp, TrendDown); linecolor = IFF(Trend == 1 , Red , Blue); plot1(Tsl,"SuperTrend",linecolor); if Trend == 1 Then { if Trend != Trend[1] Then { if hv-lv < 0.5 Then Text_Delete(tx); Else Text_SetSize(tx,15); hv = Tsl; lv = Tsl; dv = sDate; tv = sTime; box = Box_New(sDate,sTime,hv,NextBarSdate,NextBarStime,lv); tx = Text_New(NextBarSdate,NextBarStime,hv,NumToStr(hv-lv,2)); Text_SetStyle(tx,2,1); Text_SetSize(tx,20); } Else { if Tsl > hv Then hv = Tsl; if Tsl < lv Then lv = Tsl; Box_SetBegin(box,dv,tv,hv); Box_SetEnd(box,NextBarSdate,NextBarStime,lv); Box_SetColor(box,Red); Box_SetFill(box,true); Text_SetString(tx,NumToStr(hv-lv,2)); Text_SetLocation(tx,NextBarSdate,NextBarStime,hv); } } if Trend == -1 Then { if Trend != Trend[1] Then { if hv-lv < 0.5 Then Text_Delete(tx); Else Text_SetSize(tx,15); hv = Tsl; lv = Tsl; dv = sDate; tv = sTime; box = Box_New(sDate,sTime,hv,NextBarSdate,NextBarStime,lv); tx = Text_New(NextBarSdate,NextBarStime,hv,NumToStr(hv-lv,2)); Box_SetColor(box,Blue); Box_SetFill(box,true); Text_SetStyle(tx,2,1); Text_SetSize(tx,20); } Else { if Tsl > hv Then hv = Tsl; if Tsl < lv Then lv = Tsl; Box_SetBegin(box,dv,tv,hv); Box_SetEnd(box,NextBarSdate,NextBarStime,lv); Text_SetString(tx,NumToStr(hv-lv,2)); Text_SetLocation(tx,NextBarSdate,NextBarStime,hv); } } 즐거운 하루되세요 > 고성 님이 쓴 글입니다. > 제목 : 슈퍼트렌드 박스 > input : Factor(7),Pd(10),highPd(1),lowPd(5); var : sp(0),th(0),ll(0),myh(0),myl(0),up(0),dn(0),ii(0),Trendup(0),trenddown(0),Trend(0); var : Tsl(0),linecolor(0); sp = (H+L+c)/3; th = high; for ii = 1 to Pd*highPd { if th < high[ii] Then th = high[ii]; } ll = low; for ii=1 to Pd*lowPd { if ll > low[ii] Then ll = low[ii]; } myh = ma(high,Pd)*0.4+th*0.6; myl = (ma(sp,Pd)*0.5+ll*0.5); Up = myl-(Factor*atr(Pd)*0.8 ); Dn = (myh+(Factor*atr(Pd) )); TrendUp = iff(sp[1]>TrendUp[1], max(Up,TrendUp[1]) , Up); TrendDown = iff(sp[1]<TrendDown[1], min(Dn,TrendDown[1]) , Dn); Trend = iff(sp > TrendDown[1] , 1, iff(sp< TrendUp[1] , -1, Trend[1])); Tsl = IFF(Trend==1, TrendUp, TrendDown); linecolor = IFF(Trend == 1 , Red , Blue); plot1(Tsl,"SuperTrend",linecolor); 1.방향이 전환되면 박스를 표시하고, 그 시점의 박스 크기를 박스를 따라가며 큰 글씨로 표기. 계속 커지면 계속 수정 변경하면서 끝날 때까지 크기를 표기. 2.방향이 역으로 전환되면 색상과 글자 크기를 작게 변경하여 0.5p이하는 지우고 0.5p 이상만 표기하여 저장. 하락시 - 부호는 생략. 감사합니다.