커뮤니티
분봉에서 타분봉 이동평균
2012-07-25 00:46:16
288
글번호 53230
안녕하세요? 수고가 대단히 많으십니다.
분봉에서 타분봉 이동평균을 지표로 표시하고 싶습니다.
5분봉에서 10분, 60분, 120분 봉의 20일 이동평균선을 보고싶습니다.
아울러 자세한 주석 부탁드립니다.
답변 1
예스스탁 예스스탁 답변
2012-07-25 10:41:59
안녕하세용
예스스탁입니다.
input : Atime1(5),Atime2(10),Atime3(60),Atime4(120),P(20);
var : cnt1(0),count1(0),sum1(0),mav1(0);
var : cnt2(0),count2(0),sum2(0),mav2(0);
var : cnt3(0),count3(0),sum3(0),mav3(0);
var : cnt4(0),count4(0),sum4(0),mav4(0);
Array : CC1[100](0),CC2[100](0),CC3[100](0),CC4[100](0);
if date != date[1] Then
value1 = TimeToMinutes(stime);
#첫봉이후에 경과한 분수를 지정한 분주기로 나누어 나머지값을 구함
var1 = (TimeToMinutes(stime)-value1)%Atime1;
var2 = (TimeToMinutes(stime)-value1)%Atime2;
var3 = (TimeToMinutes(stime)-value1)%Atime3;
var4 = (TimeToMinutes(stime)-value1)%Atime4;
#첫봉이거나 나머지값이 직전보다 작아진 경우를 찾음
#(지정한 분주기의 경계봉을 찾는 내용)
#각 경계를 지나는 봉에서 이전경계의 종가를 순차적으록 계속 저장함
if dayindex() == 0 or (var1 < var1[1] and stime > stime[1]) Then{
for cnt1 = 1 to 99{
CC1[cnt1] = CC1[cnt1-1][1];
}
}
CC1[0] = C;
# 최근 P개의 배열변수에 저장된 값을 합하고 P로 나눔
if CC1[P] > 0 Then{
sum1 = 0;
for count1 = 0 to P-1{
sum1 = sum1+CC1[count1];
}
mav1 = sum1/P;
}
if dayindex() == 0 or (var2 < var2[1] and stime > stime[1]) Then{
for cnt2 = 1 to 99{
CC2[cnt2] = CC2[cnt2-1][1];
}
}
CC2[0] = C;
if CC2[P] > 0 Then{
sum2 = 0;
for count2 = 0 to P-1{
sum2 = sum2+CC2[count2];
}
mav2 = sum2/P;
}
if dayindex() == 0 or (var3 < var3[1] and stime > stime[1]) Then{
for cnt3 = 1 to 99{
CC3[cnt3] = CC3[cnt3-1][1];
}
}
CC3[0] = C;
if CC3[P] > 0 Then{
sum3 = 0;
for count3 = 0 to P-1{
sum3 = sum3+CC3[count3];
}
mav3 = sum3/P;
}
if dayindex() == 0 or (var4 < var4[1] and stime > stime[1]) Then{
for cnt4 = 1 to 99{
CC4[cnt4] = CC4[cnt4-1][1];
}
}
CC4[0] = C;
if CC4[P] > 0 Then{
sum4 = 0;
for count4 = 0 to P-1{
sum4 = sum4+CC4[count4];
}
mav4 = sum4/P;
}
plot1(mav1);
plot2(mav2);
plot3(mav3);
plot4(mav4);
즐거운 하루되세요
> 에리조나 님이 쓴 글입니다.
> 제목 : 분봉에서 타분봉 이동평균
> 안녕하세요? 수고가 대단히 많으십니다.
분봉에서 타분봉 이동평균을 지표로 표시하고 싶습니다.
5분봉에서 10분, 60분, 120분 봉의 20일 이동평균선을 보고싶습니다.
아울러 자세한 주석 부탁드립니다.
다음글
이전글