커뮤니티
사용자 함수 작성 중 의문 사항
2003-07-11 00:00:00
2480
글번호 361
사용자 함수 작성시 입력변수로 종가나 고가를 넘겨 받을 때 일반적인 함수에서는 상관이 없는데 for문에서는 다르게 연산이 되어 문의드립니다.
<예제1 - 사용자함수식>
input: period(numeric);
tst1 = accumN(c,period);
<예제2 - 사용자합수식>
input: value(numeric),period(numeric);
tst2 = accumN(value,period);
예제 1과 2의 차이: 종가를 입력변수로 받느냐 아니냐의 차이
<예제3 - 사용자함수식>
input: period(numeric);
var: cnt(0);
var1 = 0;
for cnt = 0 to period-1 begin
var1 = var1 + c[cnt];
end;
tst3 = var1;
<예제4 - 사용자함수식>
input: value(numeric),period(numeric);
var: cnt(0);
var1 = 0;
for cnt = 0 to period-1 begin
var1 = var1 + value[cnt];
end;
tst4 = var1;
예제 3과 4의 차이: 1,2와 마찬가지로 종가를 입력변수로 받느냐 아니냐의 차이
<예제5 -지표식>
input: period(14);
plot1(tst1(period),"1");
plot2(tst2(c,period),"2");
plot3(tst3(period),"3");
plot4(tst4(c,period),"4");
지표식으로 테스트 해본 결과 예제 4번의 사용자함수만 다른 값으로 나옴.
for문에서 value[n] 의 연산이 이상합니다.
확인해 주시기 바랍니다.
- 1. snap065.gif (0.02 MB)
답변 1
리서치팀 예스스탁 답변
2003-07-14 00:00:00
안녕하세요..예스스탁입니다.
문의하신 내용 답변드립니다.
<예제4 - 사용자함수식>
input: value(numeric),period(numeric);
var: cnt(0);
var1 = 0;
for cnt = 0 to period-1 begin
var1 = var1 + value[cnt];
end;
tst4 = var1;
위 식에서 for문 때문에 결과가 다르게 나오는게 아니라 for문안에 변수로 사용된 value 때문입니다. input의 변수는 할당이 될 수 없도록 되어 있는 이유로 이전값 참조의 개념을 갖고 있지 않습니다.
위 식의 결과를 정상적으로 나오게 하려면 다음과 같이 수정해서 작성하셔야 됩니다.
input: value(numeric),period(numeric);
var: cnt(0), aa(0);
aa = value;
var1 = 0;
for cnt = 0 to period-1 begin
var1 = var1 + aa[cnt];
end;
tst4 = var1;
즐거운 날 되세요..
> 수식지왕 님이 쓴 글입니다.
> 제목 : 사용자 함수 작성 중 의문 사항
> 사용자 함수 작성시 입력변수로 종가나 고가를 넘겨 받을 때 일반적인 함수에서는 상관이 없는데 for문에서는 다르게 연산이 되어 문의드립니다.
>
> <예제1 - 사용자함수식>
> input: period(numeric);
>
> tst1 = accumN(c,period);
>
> <예제2 - 사용자합수식>
> input: value(numeric),period(numeric);
>
> tst2 = accumN(value,period);
>
> 예제 1과 2의 차이: 종가를 입력변수로 받느냐 아니냐의 차이
>
> <예제3 - 사용자함수식>
> input: period(numeric);
> var: cnt(0);
>
> var1 = 0;
>
> for cnt = 0 to period-1 begin
> var1 = var1 + c[cnt];
> end;
>
> tst3 = var1;
>
> <예제4 - 사용자함수식>
> input: value(numeric),period(numeric);
> var: cnt(0);
>
> var1 = 0;
>
> for cnt = 0 to period-1 begin
> var1 = var1 + value[cnt];
> end;
>
> tst4 = var1;
>
>
> 예제 3과 4의 차이: 1,2와 마찬가지로 종가를 입력변수로 받느냐 아니냐의 차이
>
>
> <예제5 -지표식>
> input: period(14);
>
> plot1(tst1(period),"1");
> plot2(tst2(c,period),"2");
> plot3(tst3(period),"3");
> plot4(tst4(c,period),"4");
>
> 지표식으로 테스트 해본 결과 예제 4번의 사용자함수만 다른 값으로 나옴.
>
> for문에서 value[n] 의 연산이 이상합니다.
>
> 확인해 주시기 바랍니다.
다음글
이전글