커뮤니티
한번 참조된 변수는,,
2003-12-10 17:12:39
3001
글번호 1595
var:x(1);
var1=NthHighest(x,v,5);
x=2;
var2=NthHighest(x,v,5);
//x=1;
plot1(var1);
plot2(var2);
위식대로라면 하나는 최근 5일동안 가장큰거래량을 표시해주고
또하나는 두번째로 큰 거래량을 표시해주어야 된다고 생각했는데 아니더군요..
5번째줄의 슬래쉬를 지우면 원하던대로 표시를 해줍니다.
이럴경우
var: xx(0);
xx=0; <- 사실 이부분도 이해가 안갑니다만. 이렇게도 해보고 저렇게도 해보다
알아냈습니다만,,
for x=1 to 5
xx=xx+NthHighest(x,v,5);
이경우 제대로 누적값이 안들어갑니다..
그래서 위의 식으로 확인을 해본결과 아무래도 위의식에서 나타나는 문제인것 같습니다.
변수가 한번 참조된뒤에 다시 다른값을 넣으면 왜 안되는겁니까??
이런경우 어떻게 해야합니까???
부탁드립니다..
답변 1
예스스탁 예스스탁 답변
2003-12-11 10:38:59
안녕하세요..예스스탁입니다.
문의하신 내용 답변드립니다.
var:x(1);
var1=NthHighest(x,v,5);
x=2;
var2=NthHighest(x,v,5);
//x=1;
plot1(var1);
plot2(var2);
위 식에서 var : x(1) 의 의미는 x라는 내부변수를 사용했음을 선언하고 그 "초기값"을 1로 지정해 준다는 의미입니다. 즉 ,x라는 변수에 처음 저장되어 있는 값이 1임을 의미하며 그 이후에는 식에서 연산된 내용이 x값에 저장되게 됩니다. 위에서는 x = 2 라는 내용에 의해서 2값이 변수 x에 저장되므로 var1이나 var2모두 NthHighest(2,v,5)의 값을 저장하게 됩니다.
주석 부분을 없앨경우 var2 변수에 NthHighest(2,v,5)값을 저장한 후 x = 1 에 의해서 변수x에 1이 저장되며 다음봉이 진행되었을때 var1 변수에는 NthHighest(1,v,5) 값이 저장되므로 이 경우에는 항상 var1과 var2의 x값이 변하면서 원하는 결과를 얻게 되는 것입니다.
var: xx(0), x(0);
xx=0;
for x=1 to 5
xx=xx+NthHighest(x,v,5);
plot1(xx);
위 식은 5개 봉의 거래량을 누적하기 위한 것으로 판단됩니다.
그런데 위와 같이 작성할 경우 원하는 결과가 나오지 않습니다. 이유는 for문 안에서 값이 증가되는 함수를 쓸 경우 값이 변경되는 현상이 있기 때문입니다.
현재로서는 위의 내용을 accumN(V,5) 와 같은 방법으로 표현할 수 밖에 없을것 같습니다. 저희들도 위와 같은 표현으로 값 구현을 할 수 있는 방법을 찾아보도록 하겠습니다.
감사합니다.
> 천음공자 님이 쓴 글입니다.
> 제목 : 한번 참조된 변수는,,
> var:x(1);
var1=NthHighest(x,v,5);
x=2;
var2=NthHighest(x,v,5);
//x=1;
plot1(var1);
plot2(var2);
위식대로라면 하나는 최근 5일동안 가장큰거래량을 표시해주고
또하나는 두번째로 큰 거래량을 표시해주어야 된다고 생각했는데 아니더군요..
5번째줄의 슬래쉬를 지우면 원하던대로 표시를 해줍니다.
이럴경우
var: xx(0);
xx=0; <- 사실 이부분도 이해가 안갑니다만. 이렇게도 해보고 저렇게도 해보다
알아냈습니다만,,
for x=1 to 5
xx=xx+NthHighest(x,v,5);
이경우 제대로 누적값이 안들어갑니다..
그래서 위의 식으로 확인을 해본결과 아무래도 위의식에서 나타나는 문제인것 같습니다.
변수가 한번 참조된뒤에 다시 다른값을 넣으면 왜 안되는겁니까??
이런경우 어떻게 해야합니까???
부탁드립니다..
다음글