커뮤니티

사용자 함수 작성 중 의문 사항

프로필 이미지
수식지왕
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
프로필 이미지

리서치팀 예스스탁 답변

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] 의 연산이 이상합니다. > > 확인해 주시기 바랍니다.