커뮤니티

box에서 높이 찾기

프로필 이미지
짱짱해야지
2025-07-28 19:13:55
150
글번호 192817
답변완료

첨부 이미지

더운데 수고 많으시죠! 틱 봉에서 위 그림과 같이 5분봉의 높낮이를 찾아 보고 싶습니다. 1. 첫 번째 왼쪽의 노란색 번호 같이 이전 봉들에서 최초의 음봉box과 현재의 음봉box중 낮을 경우 이를 더 진하게 표시하고자 합니다 2. 중앙에 보이는 붉은색 번호와 같이 이전 봉의 양봉box와 현재 양봉box가 높을 경우 더 진하게 표시하고자 합니다. 1번의 완전 반대되는 내용입니다. 3. 오른쪽의 노란색 연속 번호에서 연속으로 표시된 경우 1번은 음봉box의 최고 음봉box인데 이후 양봉box이후 나타난 음봉box의 높이가 최고봉 음봉box보다 낮을 경우를 표시해보고 싶습니다. -> 양봉box의 경우도 이것의 반대로 만들 수 있음 좋겠습니다. 항상 감사드립니다! input : ntime1(5); var : SS1(0),DD1(0),TTM(0),TTF(0); var : SM1(0),m3var(0), m3L(0), cnt(0); Array : Mb30[100](0); var : M3date(0),M3time(0), StrtV(0), m3UD(0), mrCl(0); var : idx2(0), HH(0),LL(0),HTL(0),LTL(0),bb(0),box(0); if Bdate != Bdate[1] Then { SS1 = TimeToMinutes(0); DD1 = sdate; } if DD1 > 0 then { if sdate == DD1 Then TTM = TimeToMinutes(stime)-SS1; Else TTM = TimeToMinutes(stime)+1440-SS1; TTF = TTM%ntime1; if Bdate != Bdate[1] or sTime == 90000 or // 90000 (Bdate == Bdate[1] && ntime1 > 1 && TTF < TTF[1]) or (Bdate == Bdate[1] && ntime1 > 1 && TTM >= TTM[1]+ntime1) or (Bdate == Bdate[1] && ntime1 == 1 && TTM > TTM[1]) Then { m3L = 1; } else m3L = 0; if m3L == 1 Then { idx2 = 0; StrtV = O; M3date = sdate; M3time = stime; HH = H; LL = L; HTL = TL_New(sDate,sTime,max(C,StrtV),sDate,sTime,HH); LTL = TL_New(sDate,sTime,min(C,StrtV),sDate,sTime,LL); box = Box_New(sDate,sTime,StrtV,NextBarSdate,NextBarStime,C); Box_SetFill(box,true); } else { idx2 = idx2+1; if H > HH Then HH = H; if L < LL Then LL = L; bb = Floor(idx2/2); TL_SetBegin(HTL,sDate[bb],sTime[bb],max(C,StrtV)); TL_SetEnd(HTL,sDate[bb],sTime[bb],HH); TL_SetBegin(LTL,sDate[bb],sTime[bb],min(C,StrtV)); TL_SetEnd(LTL,sDate[bb],sTime[bb],LL); Box_SetEnd(Box,sDate,sTime,C); } if C > StrtV Then { box_SetColor(box,RGB(235,000,000)); TL_SetColor(HTL,RGB(235,000,000)); TL_SetColor(LTL,RGB(235,000,000)); } Else { box_SetColor(box,RGB(000,000,235)); TL_SetColor(HTL,RGB(000,000,235)); TL_SetColor(LTL,RGB(000,000,235)); } }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-07-29 12:17:30

안녕하세요 예스스탁입니다. 5분봉으로 음봉/양봉이 진행중인 봉에서 조건판단해 바로 색상 변경은 가능하지 않을것 같습니다. 값을 저장하면 봉색상 변경시 계산값 환원이 어려워 5분봉으로 봉완성시에 최종 진하게 표시됩니다. input : ntime1(5); var : SS1(0),DD1(0),TTM(0),TTF(0); var : SM1(0),m3var(0), m3L(0), cnt(0); Array : Mb30[100](0); var : M3date(0),M3time(0), StrtV(0), m3UD(0), mrCl(0); var : idx2(0), HH(0),LL(0),HTL(0),LTL(0),bb(0),box(0); var : T(0),T1(0),T2(0),clr(0),clr1(0); var : PLO(0),PLO1(0),PL(0); var : NHO(0),NHO1(0),NH(0); if Bdate != Bdate[1] Then { SS1 = TimeToMinutes(0); DD1 = sdate; } if DD1 > 0 then { if sdate == DD1 Then TTM = TimeToMinutes(stime)-SS1; Else TTM = TimeToMinutes(stime)+1440-SS1; TTF = TTM%ntime1; if Bdate != Bdate[1] or sTime == 90000 or // 90000 (Bdate == Bdate[1] && ntime1 > 1 && TTF < TTF[1]) or (Bdate == Bdate[1] && ntime1 > 1 && TTM >= TTM[1]+ntime1) or (Bdate == Bdate[1] && ntime1 == 1 && TTM > TTM[1]) Then { T1 = T[1]; T2 = T1[1]; clr1 = clr[1]; if T1 == 1 and T1 != T2 Then { PLO = StrtV[1]; PLO1 = PLO[1]; if PLO <= PLO1 Then { PL = PLO; } Else { Box_SetFill(box,true,120); } } if T1 == -1 and T1 != T2 Then { NHO = StrtV[1]; NHO1 = NHO[1]; if NHO >= NHO1 Then NH = NHO; Else { Box_SetFill(box,true,120); } } idx2 = 0; StrtV = O; M3date = sdate; M3time = stime; HH = H; LL = L; HTL = TL_New(sDate,sTime,max(C,StrtV),sDate,sTime,HH); LTL = TL_New(sDate,sTime,min(C,StrtV),sDate,sTime,LL); box = Box_New(sDate,sTime,StrtV,NextBarSdate,NextBarStime,C); Box_SetFill(box,true); } else { idx2 = idx2+1; if H > HH Then HH = H; if L < LL Then LL = L; bb = Floor(idx2/2); TL_SetBegin(HTL,sDate[bb],sTime[bb],max(C,StrtV)); TL_SetEnd(HTL,sDate[bb],sTime[bb],HH); TL_SetBegin(LTL,sDate[bb],sTime[bb],min(C,StrtV)); TL_SetEnd(LTL,sDate[bb],sTime[bb],LL); Box_SetEnd(Box,sDate,sTime,C); } if C > StrtV Then { T = 1; clr = RGB(235,000,000); box_SetColor(box,clr); TL_SetColor(HTL,clr); TL_SetColor(LTL,clr); } Else { T = -1; clr = RGB(000,000,235); box_SetColor(box,clr); TL_SetColor(HTL,clr); TL_SetColor(LTL,clr); } } 즐거운 하루되세요 > 짱짱해야지 님이 쓴 글입니다. > 제목 : box에서 높이 찾기 > 더운데 수고 많으시죠! 틱 봉에서 위 그림과 같이 5분봉의 높낮이를 찾아 보고 싶습니다. 1. 첫 번째 왼쪽의 노란색 번호 같이 이전 봉들에서 최초의 음봉box과 현재의 음봉box중 낮을 경우 이를 더 진하게 표시하고자 합니다 2. 중앙에 보이는 붉은색 번호와 같이 이전 봉의 양봉box와 현재 양봉box가 높을 경우 더 진하게 표시하고자 합니다. 1번의 완전 반대되는 내용입니다. 3. 오른쪽의 노란색 연속 번호에서 연속으로 표시된 경우 1번은 음봉box의 최고 음봉box인데 이후 양봉box이후 나타난 음봉box의 높이가 최고봉 음봉box보다 낮을 경우를 표시해보고 싶습니다. -> 양봉box의 경우도 이것의 반대로 만들 수 있음 좋겠습니다. 항상 감사드립니다! input : ntime1(5); var : SS1(0),DD1(0),TTM(0),TTF(0); var : SM1(0),m3var(0), m3L(0), cnt(0); Array : Mb30[100](0); var : M3date(0),M3time(0), StrtV(0), m3UD(0), mrCl(0); var : idx2(0), HH(0),LL(0),HTL(0),LTL(0),bb(0),box(0); if Bdate != Bdate[1] Then { SS1 = TimeToMinutes(0); DD1 = sdate; } if DD1 > 0 then { if sdate == DD1 Then TTM = TimeToMinutes(stime)-SS1; Else TTM = TimeToMinutes(stime)+1440-SS1; TTF = TTM%ntime1; if Bdate != Bdate[1] or sTime == 90000 or // 90000 (Bdate == Bdate[1] && ntime1 > 1 && TTF < TTF[1]) or (Bdate == Bdate[1] && ntime1 > 1 && TTM >= TTM[1]+ntime1) or (Bdate == Bdate[1] && ntime1 == 1 && TTM > TTM[1]) Then { m3L = 1; } else m3L = 0; if m3L == 1 Then { idx2 = 0; StrtV = O; M3date = sdate; M3time = stime; HH = H; LL = L; HTL = TL_New(sDate,sTime,max(C,StrtV),sDate,sTime,HH); LTL = TL_New(sDate,sTime,min(C,StrtV),sDate,sTime,LL); box = Box_New(sDate,sTime,StrtV,NextBarSdate,NextBarStime,C); Box_SetFill(box,true); } else { idx2 = idx2+1; if H > HH Then HH = H; if L < LL Then LL = L; bb = Floor(idx2/2); TL_SetBegin(HTL,sDate[bb],sTime[bb],max(C,StrtV)); TL_SetEnd(HTL,sDate[bb],sTime[bb],HH); TL_SetBegin(LTL,sDate[bb],sTime[bb],min(C,StrtV)); TL_SetEnd(LTL,sDate[bb],sTime[bb],LL); Box_SetEnd(Box,sDate,sTime,C); } if C > StrtV Then { box_SetColor(box,RGB(235,000,000)); TL_SetColor(HTL,RGB(235,000,000)); TL_SetColor(LTL,RGB(235,000,000)); } Else { box_SetColor(box,RGB(000,000,235)); TL_SetColor(HTL,RGB(000,000,235)); TL_SetColor(LTL,RGB(000,000,235)); } }