커뮤니티

19285번 재질문입니다.

프로필 이미지
nadogaja
2011-06-26 05:35:10
694
글번호 40159
답변완료
안녕하세요 예스스탁입니다 단상승이평= ma(상승[0],숏1); 같이 작성하시면 매봉의 상승[0]에 들어있는 값을 N개봉 불러와서 평균합니다. 상승[0]에 값이 매봉 저장되는 값이 아니고 특정조건이 만족할때 저장이 되고 기존에 저장된것은 상승[1]로 옮겨가는 구조이므로 몇개를 모아 평균하기 위해서는 (상승[0]+상승[1]+상승[2]..)/n이 되어야 하는데 단순히 ma함수를 이용해서 되는 부분이 아닙니다. 아래와 같이 수정하셔야 배열에 있는 봉을 불러와 평균할 수 있습니다. var: 상카운터(0),하카운터(0),상거카운터(0),하거카운터(0); var: 상선(0),하선(0),숏1(0); var: 장상선(0),장하선(0),롱1(0); var: 상카(0),상카1(0),하카(0),하카1(0); var: 단상승이평(0),단하락이평(0),장상승이평(0),장하락이평(0); var: 상거의미평균(0),하거의미평균(0); var : sum1(0),sum2(0),sum3(0),sum4(0),cnt(0); array: 상거의미[300](0),하거의미[300](0); Array: 상승[360](0),하락[360](0); array: 상거[360](0),하거[360](0); ###### 상,하 카운터 초기화############ if date != date[1] Then{ 상카운터=0; 하카운터=0; 상거카운터=0; 하거카운터=0; } ###### 상승 거래량 ################### if c>o and v>v[1] Then{ 상거[0]=v; 상승[0]=h; 상카운터=상카운터+1; for 상카= 1 to 360 { 상거[상카]=상거[상카-1][1]; 상승[상카]=상승[상카-1][1]; } } ###### 하락 거래량 ################## if c<o and v>v[1] then{ 하거[0]=v; 하락[0]=l; 하카운터=하카운터+1; for 하카 = 1 to 360 { 하거[하카] = 하거[하카-1][1]; 하락[하카] = 하락[하카-1][1]; } } ###### 장,단 이평선 ################### if 상카운터 < 20 then{ 롱1=상카운터; } else{ 롱1=20; } if 상카운터 < 5 then{ 숏1=상카운터; } else{ 숏1=5; } ###### 상, 하 선 그리기################## sum1 = 0; sum2 = 0; for cnt = 0 to 숏1-1{ <---------------------- 1번 sum1 = sum1+상승[cnt]; sum2 = sum2+하락[cnt]; } sum3 = 0; sum4 = 0; for cnt = 0 to 롱1-1{ sum3 = sum3+상승[cnt]; sum4 = sum4+하락[cnt]; } 단상승이평= sum1/숏1; 단하락이평= sum2/숏1; 장상승이평= sum3/롱1; 장하락이평= sum4/롱1; 위와 같이 설명해 주셨는데 위 표시한 1번 에서 for 구문이 처음 작동할때 cnt = 0 to 0 { 이 되는데 그렇다면 상승[0] 이 2번 더해지는건가요. 0 에서 0 까지 니까 그저 0이 한번반 들어가는건가요, 설명 좀 부탁드리고요, 그리고 또 한가지더 for 구문을 돌리는데 조건식이 없는데 여기에 이런 식을 추가 해야 한는거 아닌가요 , 예를 들어 if 상승 봉이 생겼다 면 then{ sum1 = 0; sum2 = 0; for cnt = 0 to 숏1-1{ sum1 = sum1+상승[cnt]; sum2 = sum2+하락[cnt]; } } 이런 식으로 해야 되는거 아닌지 아니면 조건식이 필요없는것인지 .. 설명좀 해주세요... 이해가 잘안되네요.. 항상 좋은 설명 주셔서 감사하고 있습니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-06-27 11:02:41

안녕하세요 예스스탁입니다. 배열에 저장된 값을 가져와 계산되므로 작성하신 if문을 추가하실 필요는 없습니다. 다만 값을 합산할때 아직 배열방에 값이 저장이 되어 있지 않은 상태에서 0값을 가져와 합산하고 평균을 낼 수 있으므로 아래와 같이 if문을 지정하시면 숏1이나 롱1에서 지정한 갯수만큼 배열방의 값이 저장되어 있어야 for문을 돌리게 됩니다. sum1 = 0; sum2 = 0; if 상승[숏1-1] > 0 and 하락[숏1-1] > 0 Then{ for cnt = 0 to 숏1-1{ sum1 = sum1+상승[cnt]; sum2 = sum2+하락[cnt]; } } sum3 = 0; sum4 = 0; if 상승[롱1-1] > 0 and 하락[롱1-1] > 0 Then{ for cnt = 0 to 롱1-1{ sum3 = sum3+상승[cnt]; sum4 = sum4+하락[cnt]; } } 단상승이평= sum1/숏1; 단하락이평= sum2/숏1; 장상승이평= sum3/롱1; 장하락이평= sum4/롱1; 즐거운 하루되세요 > nadogaja 님이 쓴 글입니다. > 제목 : 19285번 재질문입니다. > 안녕하세요 예스스탁입니다 단상승이평= ma(상승[0],숏1); 같이 작성하시면 매봉의 상승[0]에 들어있는 값을 N개봉 불러와서 평균합니다. 상승[0]에 값이 매봉 저장되는 값이 아니고 특정조건이 만족할때 저장이 되고 기존에 저장된것은 상승[1]로 옮겨가는 구조이므로 몇개를 모아 평균하기 위해서는 (상승[0]+상승[1]+상승[2]..)/n이 되어야 하는데 단순히 ma함수를 이용해서 되는 부분이 아닙니다. 아래와 같이 수정하셔야 배열에 있는 봉을 불러와 평균할 수 있습니다. var: 상카운터(0),하카운터(0),상거카운터(0),하거카운터(0); var: 상선(0),하선(0),숏1(0); var: 장상선(0),장하선(0),롱1(0); var: 상카(0),상카1(0),하카(0),하카1(0); var: 단상승이평(0),단하락이평(0),장상승이평(0),장하락이평(0); var: 상거의미평균(0),하거의미평균(0); var : sum1(0),sum2(0),sum3(0),sum4(0),cnt(0); array: 상거의미[300](0),하거의미[300](0); Array: 상승[360](0),하락[360](0); array: 상거[360](0),하거[360](0); ###### 상,하 카운터 초기화############ if date != date[1] Then{ 상카운터=0; 하카운터=0; 상거카운터=0; 하거카운터=0; } ###### 상승 거래량 ################### if c>o and v>v[1] Then{ 상거[0]=v; 상승[0]=h; 상카운터=상카운터+1; for 상카= 1 to 360 { 상거[상카]=상거[상카-1][1]; 상승[상카]=상승[상카-1][1]; } } ###### 하락 거래량 ################## if c<o and v>v[1] then{ 하거[0]=v; 하락[0]=l; 하카운터=하카운터+1; for 하카 = 1 to 360 { 하거[하카] = 하거[하카-1][1]; 하락[하카] = 하락[하카-1][1]; } } ###### 장,단 이평선 ################### if 상카운터 < 20 then{ 롱1=상카운터; } else{ 롱1=20; } if 상카운터 < 5 then{ 숏1=상카운터; } else{ 숏1=5; } ###### 상, 하 선 그리기################## sum1 = 0; sum2 = 0; for cnt = 0 to 숏1-1{ <---------------------- 1번 sum1 = sum1+상승[cnt]; sum2 = sum2+하락[cnt]; } sum3 = 0; sum4 = 0; for cnt = 0 to 롱1-1{ sum3 = sum3+상승[cnt]; sum4 = sum4+하락[cnt]; } 단상승이평= sum1/숏1; 단하락이평= sum2/숏1; 장상승이평= sum3/롱1; 장하락이평= sum4/롱1; 위와 같이 설명해 주셨는데 위 표시한 1번 에서 for 구문이 처음 작동할때 cnt = 0 to 0 { 이 되는데 그렇다면 상승[0] 이 2번 더해지는건가요. 0 에서 0 까지 니까 그저 0이 한번반 들어가는건가요, 설명 좀 부탁드리고요, 그리고 또 한가지더 for 구문을 돌리는데 조건식이 없는데 여기에 이런 식을 추가 해야 한는거 아닌가요 , 예를 들어 if 상승 봉이 생겼다 면 then{ sum1 = 0; sum2 = 0; for cnt = 0 to 숏1-1{ sum1 = sum1+상승[cnt]; sum2 = sum2+하락[cnt]; } } 이런 식으로 해야 되는거 아닌지 아니면 조건식이 필요없는것인지 .. 설명좀 해주세요... 이해가 잘안되네요.. 항상 좋은 설명 주셔서 감사하고 있습니다.