커뮤니티

Array

프로필 이미지
짱짱해야지
2021-02-09 00:37:57
668
글번호 146200
답변완료
input : Dwdate(20210107); Array :ARs[99](0), AIdx[99](0), MxRs[99](0), MxIdx[99](0); var :MxV(0), MxId(0), DwRsi(0); DwRsi = Highest(h, 10); if DwRsi <> DwRsi[1] && Sdate >= DwDate then{ ARs[0] = DwRsi[1]; AIdx[0] = Barindex; for i = 1 to 99{ ARs[i] = ARs[i-1][1]; AIdx[i] = AIdx[i-1][1]; } } 위의 결과에서 Array내의 99개중에서 가장큰값과 해당 Barindex를 0번방, 2번째 큰값과 Barindex를 2번방 등으로 순차적 99개를 정리하고 싶는데 여러가지로 시도해봐도 어렵습니다. 도와주시면 감사하겠습니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-02-09 15:58:29

안녕하세요 예스스탁입니다. ARs에 높은값 순으로 MxRs 배열변수와 MxIdx 배열변수에 순차적으로 값저장되게 작성해 드립니다. input : Dwdate(20210107); var : DwRsi(0),i(0),count(0); var : Tempi1(0),Tempi2(0),tempmax(0),tempIndex(0); Array : ARs[100](0), AIdx[100](0),Temp[100](0), MxRs[100](0), MxIdx[100](0); DwRsi = Highest(h, 10); if DwRsi <> DwRsi[1] && Sdate >= DwDate then { count = count+1; ARs[0] = DwRsi[1]; AIdx[0] = Barindex; for i = 0 to min(count-1,99) { if i >= 1 Then { ARs[i] = ARs[i-1][1]; AIdx[i] = AIdx[i-1][1]; } Temp[i] = ARs[i]; } For tempi2 = 0 to min(count-1,99) { tempmax = 0; For tempi1 = 0 to min(count-1,99) { if (Temp[tempi1] >= tempmax) then { tempmax = Temp[tempi1]; tempIndex = tempi1; } } MxRs[tempi2] = tempmax; MxIdx[tempi2] = AIdx[tempIndex]; Temp[tempIndex] = 0; } } 즐거운 하루되세요 > 짱짱해야지 님이 쓴 글입니다. > 제목 : Array > input : Dwdate(20210107); Array :ARs[99](0), AIdx[99](0), MxRs[99](0), MxIdx[99](0); var :MxV(0), MxId(0), DwRsi(0); DwRsi = Highest(h, 10); if DwRsi <> DwRsi[1] && Sdate >= DwDate then{ ARs[0] = DwRsi[1]; AIdx[0] = Barindex; for i = 1 to 99{ ARs[i] = ARs[i-1][1]; AIdx[i] = AIdx[i-1][1]; } } 위의 결과에서 Array내의 99개중에서 가장큰값과 해당 Barindex를 0번방, 2번째 큰값과 Barindex를 2번방 등으로 순차적 99개를 정리하고 싶는데 여러가지로 시도해봐도 어렵습니다. 도와주시면 감사하겠습니다.