커뮤니티

반복된 긴 문장을 짧게 만들려고 합니다. 고맙습니다..

프로필 이미지
생각하는허수아비
2026-09-29 08:10:34
75
글번호 233754
답변완료

아래 수식과 같이 MaxList,Minlist 함수안에 같은 기간동안의 값을 반복적으로 서술된 값을 구하려 할때 반복문으로

짧게 구현 할려고 합니다 . 어떻게 해야 하나요?

조언 구합니다.



var:cmx1(0),cmx2(0),cmx3(0),cmx4(0),cmx5(0),cmx6(0),

cmn1(0),cmn2(0),cmn3(0),cmn4(0),cmn5(0),cmn6(0),

lmx1(0),lmx2(0),lmx3(0),lmx4(0),lmx5(0),lmx6(0),

lmn1(0),lmn2(0),lmn3(0),lmn4(0),lmn5(0),lmn6(0),

hmx1(0),hmx2(0),hmx3(0),hmx4(0),hmx5(0),hmx6(0),

hmn1(0),hmn2(0),hmn3(0),hmn4(0),hmn5(0),hmn6(0);

cmx1=nthMaxList(1,dayclose(6),dayclose(5),DayClose(4),DayClose(3), DayClose(2),DayClose(1));

cmx2=nthMaxList(2,dayclose(6),dayclose(5),DayClose(4),DayClose(3),DayClose(2),DayClose(1));

cmx3=nthMaxList(3,DayClose(6),dayclose(5),DayClose(4),DayClose(3), DayClose(2),DayClose(1));

cmx4=nthMaxList(4,DayClose(6),dayclose(5),DayClose(4),DayClose(3), DayClose(2),DayClose(1));

cmx5=nthMaxList(5,dayclose(6),dayclose(5),DayClose(4),DayClose(3),DayClose(2),DayClose(1));

cmx6=nthMaxList(6,dayclose(6),dayclose(5),DayClose(4),DayClose(3),DayClose(2),DayClose(1)); //종가상 몇번째 큰값 구현 6개

cmn1=nthMinList(1,dayclose(6),dayclose(5),DayClose(4),DayClose(3),DayClose(2),DayClose(1));

~~~~~ cmn6 ; // 종가상 몇번째 작은값 구현 6개

lmx1= nthMaxList(1,daylow(6),daylow(5),Daylow(4),Daylow(3),Daylow(2),Daylow(1));

~~~~~ lmx6 ; // 저가상 몇번째 큰값 구현 6개

lmn1= nthMinList(1,daylow(6),daylow(5),Daylow(4),Daylow(3),Daylow(2),Daylow(1));

~~~~~ lmn6 ; // 저가상 몇번째 작은값 구현 6개

hmx1=nthMaxList(1,dayhigh(6),dayhigh(5),dayhigh(4),dayhigh(3),dayhigh(2),dayhigh(1));

~~~~~~ hmx6; // 고가상 몇번째 큰값 구현 6개

hmn1=nthMinList(1,dayhigh(6),dayhigh(5),dayhigh(4),dayhigh(3),dayhigh(2),dayhigh(1));

~~~~~~ hmn6; // 고가상 몇번째 작은값 구현 6개


여기서 cmx1 ~ cmx6 까지 cmn1 ~cmn6 까지 lmx1~lmn 6 까지 lmn1 ~ lmn6 까지 hmx1~ hmx6 까지 hmn1 ~ hmn6 까지

총 36개값을 구하려 할때 for 문으로 짧게 구현하는 방법을 문의 드립니다.

감사합니다.

지표
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2026-09-29 15:10:14

안녕하세요 예스스탁입니다. 여러개의 값중 큰값순, 작은값순이 풀어서 작성하면 복잡하고 길기 때문에 내장함수 nthMaxList ,nthMinList로 제공되고 있습니다. 올리신 내용은 현재 작성하신 내용은 가장 짧습니다. for문으로 작성하면 몇배로 길게 됩니다. 즐거운 하루되세요
프로필 이미지

생각하는허수아비

2026-09-29 15:58:43

nthMaxList ,nthMinList 함수안에 질문은 6개로 드렸지만 20봉 값으로 하면 수식길이가 엄청나게 길어져서 질문을 올린 것입니다 ,예로
cmx1=nthMaxList(1,dayclose(19),dayclose(18),dayclose(17),dayclose(16),dayclose(15),dayclose((14),dayclose(13),dayclose(12),dayclose(11),
dayclose(10),dayclose(9),dayclose(8),dayclose(7),dayclose(6),dayclose(5),DayClose(4),DayClose(3), DayClose(2),DayClose(1));

이런 식으로 길게된 문장을 nthMaxList 함수후 괄호안에 반복문을 넣을수 없을까 해서 입니다
프로필 이미지

예스스탁 예스스탁 답변

2026-09-29 17:02:22

안녕하세요 예스스탁입니다. 1 해당 함수안에 값들을 for문으로 처리는 가능하지 않습니다. 2 나열할 값이 많고 유동적이시면 각 값을 배열변수로 처리하고 배열을 내림차순이나 오름차순으로 정렬해서 대체할 수 있습니다. input : N(6); var : cnt(0); Array : CC[100](Nan),HH[100](Nan),LL[100](Nan); var:cmx1(0),cmx2(0),cmx3(0),cmx4(0),cmx5(0),cmx6(0), cmn1(0),cmn2(0),cmn3(0),cmn4(0),cmn5(0),cmn6(0), lmx1(0),lmx2(0),lmx3(0),lmx4(0),lmx5(0),lmx6(0), lmn1(0),lmn2(0),lmn3(0),lmn4(0),lmn5(0),lmn6(0), hmx1(0),hmx2(0),hmx3(0),hmx4(0),hmx5(0),hmx6(0), hmn1(0),hmn2(0),hmn3(0),hmn4(0),hmn5(0),hmn6(0); //0번방부터 1일전 값이 저장됨 For cnt = 0 to N-1 { CC[cnt] = DayClose(cnt+1); HH[cnt] = DayHigh(cnt+1); LL[cnt] = DayLow(cnt+1); } //각배열 내림차순 정렬(가장 큰값이 0번방, 그다음이 1번방 순) //(정렬할 배열은 0번방부터 값이 있어야 함) SortArray(CC,N,1); SortArray(HH,N,1); SortArray(LL,N,1); //NthMaxList는 0번방 부터 지정 cmx1 = CC[0]; cmx2 = CC[1]; cmx3 = CC[2]; cmx4 = CC[3]; cmx5 = CC[4]; cmx6 = CC[5]; //NthMinList는 역순으로 지정 cmn1 = CC[5]; cmn2 = CC[4]; cmn3 = CC[3]; cmn4 = CC[2]; cmn5 = CC[1]; cmn6 = CC[0]; hmx1 = HH[0]; hmx2 = HH[1]; hmx3 = HH[2]; hmx4 = HH[3]; hmx5 = HH[4]; hmx6 = HH[5]; hmn1 = HH[5]; hmn2 = HH[4]; hmn3 = HH[3]; hmn4 = HH[2]; hmn5 = HH[1]; hmn6 = HH[0]; lmx1 = LL[0]; lmx2 = LL[1]; lmx3 = LL[2]; lmx4 = LL[3]; lmx5 = LL[4]; lmx6 = LL[5]; lmn1 = LL[5]; lmn2 = LL[4]; lmn3 = LL[3]; lmn4 = LL[2]; lmn5 = LL[1]; lmn6 = LL[0]; 즐거운 하루되세요