안녕하세요 날씨가 많이 풀렸습니다. 항상 건강하셨으면 좋겠습니다.
----
이평선을 작성하려하는데, 값이 변할때만 해당 값을 참고하면 이평선을 그리길 원합니다.
ex) 1, 2, 2, 3, 4,4,5,6,6,6,7
위의 숫자들이 있다는 가정 하에,
1, 2, 3, 4, 5, 6, 7 의 값만 한번씩 사용해서 이평선을 구하길 원합니다.
즉, 지금 숫자가, 전의 숫자와 다를 때, 해당 값을 저장하여, 저장된 값들의 이동평균 값을 구하길 원합니다.
지금 숫자가 전의 숫자과 같을 떄는, 이평값도 바로 전 이평값과 같게 표시되었으면 좋겠습니다.
If X <> X[1] then begin
for j = 7 down to 0 ;
Y = x;
Y[j] = Y[j-1]
end;
Plot1( ma(Y, 5) );
이런 식으로 출력하려 해봤으나 제가 원하는데로 나오지 않더라구요.. array 기능을 써야할 것 같은데 ㅠㅠ 도움 부탁드립니다.
답변 1
예스스탁
예스스탁 답변
2023-05-03 11:06:34
안녕하세요
예스스탁입니다.
ma를 사용하면 방법이 없습니다.
아래와 같이 수식을 X가 변경이 될때마다
배열변수인 Y에 순차적으로 값이 저장되게 한후
Y변수의 최근 N개의 값을 가져와 합산해서 평균하게 작성하셔야 합니다.
input : N(5);
var : cnt(0),X(0),sum(0),mav(0);
Array : Y[100](0);
if X != X[1] Then
{
For cnt = 99 DownTo 1
{
Y[cnt] = Y[cnt-1];
}
Y[0] = X;
}
if Y[N-1] > 0 Then
{
sum = 0;
For cnt = 0 to N-1
{
sum = sum + Y[cnt];
}
mav = sum/N;
}
즐거운 하루되세요
> 이만스닥 님이 쓴 글입니다.
> 제목 : 도움 부탁드립니다.
> 안녕하세요 날씨가 많이 풀렸습니다. 항상 건강하셨으면 좋겠습니다.
----
이평선을 작성하려하는데, 값이 변할때만 해당 값을 참고하면 이평선을 그리길 원합니다.
ex) 1, 2, 2, 3, 4,4,5,6,6,6,7
위의 숫자들이 있다는 가정 하에,
1, 2, 3, 4, 5, 6, 7 의 값만 한번씩 사용해서 이평선을 구하길 원합니다.
즉, 지금 숫자가, 전의 숫자와 다를 때, 해당 값을 저장하여, 저장된 값들의 이동평균 값을 구하길 원합니다.
지금 숫자가 전의 숫자과 같을 떄는, 이평값도 바로 전 이평값과 같게 표시되었으면 좋겠습니다.
If X <> X[1] then begin
for j = 7 down to 0 ;
Y = x;
Y[j] = Y[j-1]
end;
Plot1( ma(Y, 5) );
이런 식으로 출력하려 해봤으나 제가 원하는데로 나오지 않더라구요.. array 기능을 써야할 것 같은데 ㅠㅠ 도움 부탁드립니다.