커뮤니티

수식 수정좀 부탁드려요

프로필 이미지
oni
2025-06-05 03:26:52
237
글번호 191424
답변완료
안녕하세요. 아래 수식이 원하는대로 작동은 하는데, 박스가 그려질때 세로줄이 생기는게 신경쓰여서 수정을 해보려고 해도 잘안돼네요. 세로줄이 생기지 않도록 수정좀 부탁드려요. 공부를 위해 왜 세로줄이 생겼는지, 해결은 어떻게 되는건지 주석좀 남겨주시면 감사드립니다. input : st(240),sel(1); var : cnt(0),ut(0),dt(0),uv(0),dv(0),calcu(0),calcd(0),calcu1(0); var : uth(0),utl(0),dth(0),dtl(0),ccu(0),ccd(0),sdte(0),sdtt(0),edte(0),edtt(0); var : ubox1(0),ubox2(0),ubox3(0),ubox4(0),ubox5(0),dbox1(0),dbox2(0),dbox3(0),dbox4(0),dbox5(0); array : uh[20](0),ul[20](0),dh[20](0),dl[20](0),uc[20](0);; ut = Upticks; dt = Downticks; uv = Upvol; dv = DownVol; if sel == 1 Then { calcu = ut * uv; } if sel == 2 Then { calcu = Ticks * Volume; } calcd = dt * dv; if BarIndex%st == 0 Then { uth = 0; utl = 0; ccu = 0; //dte = 0; //dtt = 0; uh[0] = h; ul[0] = l; edte = sdate; edtt = stime; } if calcu > ccu Then { uth = h; utl = l; ccu = calcu; sdte = sdate; sdtt = stime; For cnt = 1 to 19 { uh[cnt] = uh[cnt-1][1]; ul[cnt] = ul[cnt-1][1]; uc[cnt] = uc[cnt-1][1]; } } Else { if ccu > uc[0] Then uh[0] = uth; ul[0] = utl; uc[0] = ccu; //sortArray(uc,19,1); //SortArray(ul,20,1); } ubox1 = Box_New(sdate,stime,uh[0],NextBarSdate,NextBarStime,ul[0]); Box_SetColor(ubox1,Red); Box_SetFill(ubox1,true); ubox2 = Box_New(sdate,stime,uh[1],NextBarSdate,NextBarStime,ul[1]); Box_SetColor(ubox2,Blue); Box_SetFill(ubox2,true); ubox3 = Box_New(sdate,stime,uh[2],NextBarSdate,NextBarStime,ul[2]); Box_SetColor(ubox3,Black); Box_SetFill(ubox3,true);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-06-05 13:13:31

안녕하세요 예스스탁입니다. 현재 작성하신 수식에서 매봉 새박스를 그리게 작성되어 있습니다. 최초 조건만족시 박스를 한번 그리고 해당 박스를 우측으로 연장하게 작성하시면 됩니다. input : st(240),sel(1); var : cnt(0),ut(0),dt(0),uv(0),dv(0),calcu(0),calcd(0),calcu1(0); var : uth(0),utl(0),dth(0),dtl(0),ccu(0),ccd(0),sdte(0),sdtt(0),edte(0),edtt(0); var : ubox1(0),ubox2(0),ubox3(0),ubox4(0),ubox5(0),dbox1(0),dbox2(0),dbox3(0),dbox4(0),dbox5(0); array : uh[20](0),ul[20](0),dh[20](0),dl[20](0),uc[20](0); var : T(0); ut = Upticks; dt = Downticks; uv = Upvol; dv = DownVol; if sel == 1 Then { calcu = ut * uv; } if sel == 2 Then { calcu = Ticks * Volume; } calcd = dt * dv; if BarIndex%st == 0 Then { uth = 0; utl = 0; ccu = 0; //dte = 0; //dtt = 0; uh[0] = h; ul[0] = l; edte = sdate; edtt = stime; TL_New(sDate,sTime,0,sDate,sTime,999999999); } if calcu > ccu Then { uth = h; utl = l; ccu = calcu; sdte = sdate; sdtt = stime; For cnt = 1 to 19 { uh[cnt] = uh[cnt-1][1]; ul[cnt] = ul[cnt-1][1]; uc[cnt] = uc[cnt-1][1]; } T = 1; } Else { if ccu > uc[0] Then uh[0] = uth; ul[0] = utl; uc[0] = ccu; //sortArray(uc,19,1); //SortArray(ul,20,1); T = 0; } if T == 0 and T != T[1] Then { ubox1 = Box_New(sdate,stime,uh[0],NextBarSdate,NextBarStime,ul[0]); Box_SetColor(ubox1,Red); Box_SetFill(ubox1,true); } if T == 1 and T != T[1] Then { ubox2 = Box_New(sdate,stime,uh[1],NextBarSdate,NextBarStime,ul[1]); Box_SetColor(ubox2,Blue); Box_SetFill(ubox2,true); ubox3 = Box_New(sdate,stime,uh[2],NextBarSdate,NextBarStime,ul[2]); Box_SetColor(ubox3,Black); Box_SetFill(ubox3,true); } Box_SetEnd(ubox1,NextBarSdate,NextBarStime,ul[0]); Box_SetEnd(ubox2,NextBarSdate,NextBarStime,ul[1]); Box_SetEnd(ubox3,NextBarSdate,NextBarStime,ul[2]); 즐거운 하루되세요 > oni 님이 쓴 글입니다. > 제목 : 수식 수정좀 부탁드려요 > 안녕하세요. 아래 수식이 원하는대로 작동은 하는데, 박스가 그려질때 세로줄이 생기는게 신경쓰여서 수정을 해보려고 해도 잘안돼네요. 세로줄이 생기지 않도록 수정좀 부탁드려요. 공부를 위해 왜 세로줄이 생겼는지, 해결은 어떻게 되는건지 주석좀 남겨주시면 감사드립니다. input : st(240),sel(1); var : cnt(0),ut(0),dt(0),uv(0),dv(0),calcu(0),calcd(0),calcu1(0); var : uth(0),utl(0),dth(0),dtl(0),ccu(0),ccd(0),sdte(0),sdtt(0),edte(0),edtt(0); var : ubox1(0),ubox2(0),ubox3(0),ubox4(0),ubox5(0),dbox1(0),dbox2(0),dbox3(0),dbox4(0),dbox5(0); array : uh[20](0),ul[20](0),dh[20](0),dl[20](0),uc[20](0);; ut = Upticks; dt = Downticks; uv = Upvol; dv = DownVol; if sel == 1 Then { calcu = ut * uv; } if sel == 2 Then { calcu = Ticks * Volume; } calcd = dt * dv; if BarIndex%st == 0 Then { uth = 0; utl = 0; ccu = 0; //dte = 0; //dtt = 0; uh[0] = h; ul[0] = l; edte = sdate; edtt = stime; } if calcu > ccu Then { uth = h; utl = l; ccu = calcu; sdte = sdate; sdtt = stime; For cnt = 1 to 19 { uh[cnt] = uh[cnt-1][1]; ul[cnt] = ul[cnt-1][1]; uc[cnt] = uc[cnt-1][1]; } } Else { if ccu > uc[0] Then uh[0] = uth; ul[0] = utl; uc[0] = ccu; //sortArray(uc,19,1); //SortArray(ul,20,1); } ubox1 = Box_New(sdate,stime,uh[0],NextBarSdate,NextBarStime,ul[0]); Box_SetColor(ubox1,Red); Box_SetFill(ubox1,true); ubox2 = Box_New(sdate,stime,uh[1],NextBarSdate,NextBarStime,ul[1]); Box_SetColor(ubox2,Blue); Box_SetFill(ubox2,true); ubox3 = Box_New(sdate,stime,uh[2],NextBarSdate,NextBarStime,ul[2]); Box_SetColor(ubox3,Black); Box_SetFill(ubox3,true);