커뮤니티
그물망 재질문
2007-06-18 13:13:41
905
글번호 12786
우선 좋은 답변 감사드립니다.
검증하는 과정에서 이동평균을 array를 선언해서 이동평균을 단순곱으로 구하면 실제값과 다르게 나오는점을 수정해보았고,
아래처럼 제 생각으로는 for구문으로 작업을 단순하게 해서 이동평균을 구하고 실제로
지표를 보면 원래작성해주신식과 다르게 값이 나옴니다.
그이유를 일일히 array를 선언해주어야하는지 , 아래처럼 구하면 값이 제대로 안되는 이유를 설명좀 부탁드리겠습니다.
input : N(0),period1(20),개수(10),step(5);
Var : tempi(0), tempmax(0), tempindex(0), tempi2(0),NTHindex(0),count(0);
Var : tempmin(0), tempindex1(0),tempindex2(0),Tempii(0);
Array : VALUE[10](0),VAL[10](0),NTHH[10](0),NTHL[10](0);
/*
VALUE[0] = ma(c,Period1);
VALUE[1] = ma(c,Period1+(step*2));
VALUE[2] = ma(c,Period1+(step*3));
VALUE[3] = ma(c,Period1+(step*4));
VALUE[4] = ma(c,Period1+(step*5));
VALUE[5] = ma(c,Period1+(step*6));
VALUE[6] = ma(c,Period1+(step*7));
VALUE[7] = ma(c,Period1+(step*8));
VALUE[8] = ma(c,Period1+(step*9));
VALUE[9] = ma(c,Period1+(step*10));
VAL[0] = ma(c,Period1);
VAL[1] = ma(c,Period1+(step*2));
VAL[2] = ma(c,Period1+(step*3));
VAL[3] = ma(c,Period1+(step*4));
VAL[4] = ma(c,Period1+(step*5));
VAL[5] = ma(c,Period1+(step*6));
VAL[6] = ma(c,Period1+(step*7));
VAL[7] = ma(c,Period1+(step*8));
VAL[8] = ma(c,Period1+(step*9));
VAL[9] = ma(c,Period1+(step*10));
*/
// n개의 이동평균값을 구함
for count=0 to 개수-1
{
value[count]=ma(c,period1+(step*count));
val[count]=ma(c,period1+(step*count));
}
// 최고값 최저값을 구함
For tempi2 = 0 to 9 {
tempmax = -99999999;
tempmin = 999999999;
For tempi = 0 to 9 {
if VALUE[tempi] > tempmax then {
tempmax = VALUE[tempi];
tempIndex1 = tempi;
}
if VAL[tempi] < tempMin then {
tempMin = VAL[tempi];
tempIndex2 = tempii;
}
}
NTHH[tempi2] = tempmax;
VALUE[tempIndex1] = -99999999;
NTHL[tempi2] = tempMin;
VAL[tempIndex2] = 9999999999;
}
plot1(NTHH[N]);
plot2(NTHL[N]);
답변 1
예스스탁 예스스탁 답변
2007-06-18 15:26:14
안녕하세요
예스스탁입니다.
for문안에 기본적으로 ma(c,5)와 같은 함수를 사용하면
같은 값의 C가 횟수만큼 들어와 의도와는 다른 값이 나타납니다.
이를 피하기 위해 보통 함수를 변수로 처리후
그 변수를 가져와 for문안에서 사용하게 작성됩니다.
참고하시기 바랍니다.
즐거운 하루되세요
> 히말라야 님이 쓴 글입니다.
> 제목 : 그물망 재질문
> 우선 좋은 답변 감사드립니다.
검증하는 과정에서 이동평균을 array를 선언해서 이동평균을 단순곱으로 구하면 실제값과 다르게 나오는점을 수정해보았고,
아래처럼 제 생각으로는 for구문으로 작업을 단순하게 해서 이동평균을 구하고 실제로
지표를 보면 원래작성해주신식과 다르게 값이 나옴니다.
그이유를 일일히 array를 선언해주어야하는지 , 아래처럼 구하면 값이 제대로 안되는 이유를 설명좀 부탁드리겠습니다.
input : N(0),period1(20),개수(10),step(5);
Var : tempi(0), tempmax(0), tempindex(0), tempi2(0),NTHindex(0),count(0);
Var : tempmin(0), tempindex1(0),tempindex2(0),Tempii(0);
Array : VALUE[10](0),VAL[10](0),NTHH[10](0),NTHL[10](0);
/*
VALUE[0] = ma(c,Period1);
VALUE[1] = ma(c,Period1+(step*2));
VALUE[2] = ma(c,Period1+(step*3));
VALUE[3] = ma(c,Period1+(step*4));
VALUE[4] = ma(c,Period1+(step*5));
VALUE[5] = ma(c,Period1+(step*6));
VALUE[6] = ma(c,Period1+(step*7));
VALUE[7] = ma(c,Period1+(step*8));
VALUE[8] = ma(c,Period1+(step*9));
VALUE[9] = ma(c,Period1+(step*10));
VAL[0] = ma(c,Period1);
VAL[1] = ma(c,Period1+(step*2));
VAL[2] = ma(c,Period1+(step*3));
VAL[3] = ma(c,Period1+(step*4));
VAL[4] = ma(c,Period1+(step*5));
VAL[5] = ma(c,Period1+(step*6));
VAL[6] = ma(c,Period1+(step*7));
VAL[7] = ma(c,Period1+(step*8));
VAL[8] = ma(c,Period1+(step*9));
VAL[9] = ma(c,Period1+(step*10));
*/
// n개의 이동평균값을 구함
for count=0 to 개수-1
{
value[count]=ma(c,period1+(step*count));
val[count]=ma(c,period1+(step*count));
}
// 최고값 최저값을 구함
For tempi2 = 0 to 9 {
tempmax = -99999999;
tempmin = 999999999;
For tempi = 0 to 9 {
if VALUE[tempi] > tempmax then {
tempmax = VALUE[tempi];
tempIndex1 = tempi;
}
if VAL[tempi] < tempMin then {
tempMin = VAL[tempi];
tempIndex2 = tempii;
}
}
NTHH[tempi2] = tempmax;
VALUE[tempIndex1] = -99999999;
NTHL[tempi2] = tempMin;
VAL[tempIndex2] = 9999999999;
}
plot1(NTHH[N]);
plot2(NTHL[N]);
다음글
이전글