커뮤니티
19285번 재질문입니다.
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];
}
}
이런 식으로 해야 되는거 아닌지 아니면 조건식이 필요없는것인지 ..
설명좀 해주세요... 이해가 잘안되네요..
항상 좋은 설명 주셔서 감사하고 있습니다.
다음글
이전글