커뮤니티

지난 질문에서요~

프로필 이미지
yamu
2024-12-30 15:45:26
552
글번호 186748
답변완료
지난 답변 주신 내용에서 2번 질문에 대한 답변이 누락된 부분이 있어서 부탁드리겠습니다 그리고 아래와 같을때 var1 = Index; #현재 만족봉 봉번호 Var2 = var1[1]; #직전 만족봉 봉번호 var3 = var2[1]; #전전 만족봉 봉번호 var4 = var3[1]; #전전전 만족봉 봉번호 만약에 10봉 전 봉번호까지 구해야 하는 경우처럼 반복적으로 작성해야 하는 내용은 혹시 for 문으로 만들 수 있을까요? 아니면 다 입력을 해얗하나요?? 지난글 2번 질문 :: 만일 조건만족봉 사이 간격이 5봉 미만이라면 평균을 일단 구하지 않고, 새로운 만족봉이 나왔을때 간격이 5봉 이상이라면 모든 봉들을 이용해서 평균을 구하고 싶습니다 예를들어 a3,a2,a1,a0 가 조건 만족했을때의 봉이라고 했을때 a3와 a2 (조건만족봉 a3, a2 까지 포함해서) 사이가 2개 , a2 와 a1 사이가 3봉이고 (조건만족봉 a2,a1 까지 포함해서 3개) 새로운 조건봉 a0 가 나타났을때 a1와 a0 사이가 10개봉 (a1,a0 까지 포함해서 10개)이라면 2봉+3봉+10봉 해서 15개봉의 평균을 a0에 나타내고 싶습니다 아래는 기본 수식입니다 새해 복 많이 받으세요~ var: cnt(0), sum1(0), sumi(0); if h>l*1.05 Then { TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999); var1= Index; Var2= var1[1]; sum1=0; sumi=0; For cnt = 0 to (var1-Var2) { sum1=sum1+h[cnt]; sumi=sumi+1; } value1=sum1/sumi; Plot11(value1); }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-12-30 16:07:12

안녕하세요 예스스탁입니다. 1 for문을 사용하시면 변수를 배열로 만드셔야 합니다. 일반변수로는 루프를 돌릴수 없습니다. var: cnt(0), sum1(0), sumi(0),period(0),sumsqrt(0),stdv(0),stand(0); var : sum2(0),sumi2(0),avg2(0); Array : aa[50](0),ii[20](0); if h>l*1.06 Then { TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999); For cnt = 19 downto 1 { ii[cnt] = ii[cnt-1]; } ii[0] = Index; #0번방이 최근 sum1=0; sumi=0; For cnt = 0 to (ii[1]-ii[0]) { sum1=sum1+h[cnt]; sumi=sumi+1; } value1 = sum1/sumi; value12 = ma(h,20); For cnt = 50 DownTo 1 { aa[cnt]=aa[cnt-1]; } aa[0] = value1; if aa[2] > aa[1] and aa[1] < aa[0] Then { sum2=0; sumi2=0; For cnt = 0 to ii[3] { sum2=sum2+h[cnt]; sumi2=sumi2+1; } avg2=sum2/sumi2; } Plot16(avg2,"aa",Orange,Def,1); } 2 var: cnt(0), sum1(0), sumi(0),period(0),sumsqrt(0),stdv(0),stand(0); var : sum2(0),sumi2(0),avg2(0); Array : aa[50](0),ii[20](0); if h>l*1.06 Then { TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999); For cnt = 19 downto 1 { ii[cnt] = ii[cnt-1]; } ii[0] = Index; #0번방이 최근 sum1=0; sumi=0; For cnt = 0 to (ii[1]-ii[0]) { sum1=sum1+h[cnt]; sumi=sumi+1; } value1 = sum1/sumi; value12 = ma(h,20); For cnt = 50 DownTo 1 { aa[cnt]=aa[cnt-1]; } aa[0] = value1; //최근만족봉과 직전만족봉 사이가 최소 5봉이상일때만 계산 if aa[2] > aa[1] and aa[1] < aa[0] and ii[0] >= ii[1]+5 Then { sum2=0; sumi2=0; For cnt = 0 to ii[3] { sum2=sum2+h[cnt]; sumi2=sumi2+1; } avg2=sum2/sumi2; } Plot16(avg2,"aa",Orange,Def,1); } 새해 복 많이 받으시길 바랍니다. > yamu 님이 쓴 글입니다. > 제목 : 지난 질문에서요~ > 지난 답변 주신 내용에서 2번 질문에 대한 답변이 누락된 부분이 있어서 부탁드리겠습니다 그리고 아래와 같을때 var1 = Index; #현재 만족봉 봉번호 Var2 = var1[1]; #직전 만족봉 봉번호 var3 = var2[1]; #전전 만족봉 봉번호 var4 = var3[1]; #전전전 만족봉 봉번호 만약에 10봉 전 봉번호까지 구해야 하는 경우처럼 반복적으로 작성해야 하는 내용은 혹시 for 문으로 만들 수 있을까요? 아니면 다 입력을 해얗하나요?? 지난글 2번 질문 :: 만일 조건만족봉 사이 간격이 5봉 미만이라면 평균을 일단 구하지 않고, 새로운 만족봉이 나왔을때 간격이 5봉 이상이라면 모든 봉들을 이용해서 평균을 구하고 싶습니다 예를들어 a3,a2,a1,a0 가 조건 만족했을때의 봉이라고 했을때 a3와 a2 (조건만족봉 a3, a2 까지 포함해서) 사이가 2개 , a2 와 a1 사이가 3봉이고 (조건만족봉 a2,a1 까지 포함해서 3개) 새로운 조건봉 a0 가 나타났을때 a1와 a0 사이가 10개봉 (a1,a0 까지 포함해서 10개)이라면 2봉+3봉+10봉 해서 15개봉의 평균을 a0에 나타내고 싶습니다 아래는 기본 수식입니다 새해 복 많이 받으세요~ var: cnt(0), sum1(0), sumi(0); if h>l*1.05 Then { TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999); var1= Index; Var2= var1[1]; sum1=0; sumi=0; For cnt = 0 to (var1-Var2) { sum1=sum1+h[cnt]; sumi=sumi+1; } value1=sum1/sumi; Plot11(value1); }