커뮤니티

지표 수식 수정 부탁드립니다.

프로필 이미지
만경
2026-10-10 18:09:51
66
글번호 233847
답변완료

Vars: A(0), 지난주값(0), 이번주값(0);


// 요일 계산 (앞서 만든 사용자 함수 호출)

A = 요일(sDate);


// 지난주 계산식

지난주값 = (ValueWhen(1, A[1] >= A, C[1]) +

ValueWhen(2, A[1] >= A, C[1]) +

ValueWhen(3, A[1] >= A, C[1]) +

ValueWhen(3, A[1] >= A, C[1])) / 4;


// 이번주 계산식

이번주값 = (C +

ValueWhen(1, A[1] >= A, C[1]) +

ValueWhen(2, A[1] >= A, C[1]) +

ValueWhen(3, A[1] >= A, C[1])) / 4;


// 차트에 선으로 출력

Plot1(지난주값, "지난주");

Plot2(이번주값, "이번주");








함수명:: 요일


Inputs: D(Numeric);

Vars: vM(0), YY(0), MM(0), DD(0), A(0);


vM = Floor(D / 100) % 100;


If vM == 1 or vM == 2 Then

YY = Floor(D / 10000) - 1;

Else

YY = Floor(D / 10000);


If vM == 1 Then

MM = 13;

Else If vM == 2 Then

MM = 14;

Else

MM = vM;


DD = D % 100;


A = (DD + Floor((13 * MM + 8) / 5) + Floor(YY / 400) + Floor(YY / 100) + YY) % 7 + 2;


If A > 7 Then

요일1 = A - 7;

Else

요일1 = A;



에러가 뜨네요. 부탁드립니다.

지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-10-12 13:22:59

안녕하세요 예스스탁입니다. If A > 7 Then 요일1 = A - 7; Else 요일1 = A; 작성하신 사용자함수에 에러가 발생하는 이유는 함수의 최종값은 함수이름에 저장이 되어야 합니다. 함수명은 요일인데 요일1에 저장되게 작성이 되어 있었습니다. 1 DayOfWeek(날짜) 예스랭귀지에 요일을 반환하는 함수가 있습니다. 해당 함수를 사용하면 아래와 같습니다. var : A(0),지난주값(Nan),이번주값(nan); // 요일 계산 (앞서 만든 사용자 함수 호출) A = DayOfWeek(sDate); // 지난주 계산식 if A[1] >= A Then { var1 = C[1]; var2 = C[1]; var3 = C[1]; var4 = C[1]; } if var4 > 0 Then 지난주값 = (var1+var2+var3+var4) / 4; // 이번주 계산식 if var3 > 0 Then 이번주값 = (C + var1+var2+var3) / 4; // 차트에 선으로 출력 Plot1(지난주값, "지난주"); Plot2(이번주값, "이번주"); 2 올리신 사용자함수로 작성하면 아래와 같습니다. 별로돌 사용자함수를 만드실 필요는 없고 아래와 같이 수식내 인라인함수로 만들어 사용하시면 됩니다. var : A(0),지난주값(Nan),이번주값(nan); Function 요일 { Inputs: D(Numeric); Vars: vM(0), YY(0), MM(0), DD(0), A(0); vM = Floor(D / 100) % 100; If vM == 1 or vM == 2 Then YY = Floor(D / 10000) - 1; Else YY = Floor(D / 10000); If vM == 1 Then MM = 13; Else If vM == 2 Then MM = 14; Else MM = vM; DD = D % 100; A = (DD + Floor((13 * MM + 8) / 5) + Floor(YY / 400) + Floor(YY / 100) + YY) % 7 + 2; If A > 7 Then 요일 = A - 7; Else 요일 = A; } EndFunction // 요일 계산 (앞서 만든 사용자 함수 호출) A = 요일(sDate); // 지난주 계산식 if A[1] >= A Then { var1 = C[1]; var2 = C[1]; var3 = C[1]; var4 = C[1]; } if var4 > 0 Then 지난주값 = (var1+var2+var3+var4) / 4; // 이번주 계산식 if var3 > 0 Then 이번주값 = (C + var1+var2+var3) / 4; // 차트에 선으로 출력 Plot1(지난주값, "지난주"); Plot2(이번주값, "이번주"); 즐거운 하루되세요