커뮤니티
1분봉으로 5분봉 이평선 구하기 지표식의 오류
2013-01-13 21:30:31
713
글번호 58101
1분봉으로 5분봉 이평선을 구하는데
5분봉 차트에서 이평선과 1분봉으로 구한 5분봉 이평선 값이
1분의 갭이 발생합니다.
아무리 연구해도 원인을 찾지 못해 질의 드립니다.
다음 식에서 어느 부분이 1분의 갭이 발생하는지 알려주세요 ^^
감사합니다.
input : Atime1(numeric),P(numeric);
var : cnt1(0),count1(0),sum1(0),mav1(0);
Array : CC1[200](0);
if date != date[1] Then
value1 = TimeToMinutes(stime);
#첫봉이후에 경과한 분수를 지정한 분주기로 나누어 나머지값을 구함
var1 = (TimeToMinutes(stime)-value1)%Atime1;
#첫봉이거나 나머지값이 직전보다 작아진 경우를 찾음
#(지정한 분주기의 경계봉을 찾는 내용)
#각 경계를 지나는 봉에서 이전경계의 종가를 순차적으록 계속 저장함
if dayindex() == 0 or (var1 < var1[1] and stime > stime[1]) Then{
for cnt1 = 1 to 200{
CC1[cnt1] = CC1[cnt1-1][1];
}
}
CC1[0] = C;
# 최근 P개의 배열변수에 저장된 값을 합하고 P로 나눔
if CC1[P] > 0 Then{
sum1 = 0;
for count1 = 1 to P {
sum1 = sum1+CC1[count1];
}
mav1 = sum1/P;
}
plot1(mav1) ;
- 1. 58490_Q.jpg (0.08 MB)
답변 2
예스스탁 예스스탁 답변
2013-01-14 15:43:30
안녕하세요
예스스탁입니다.
if CC1[P] > 0 Then{
sum1 = 0;
for count1 = 1 to P {
sum1 = sum1+CC1[count1];
}
mav1 = sum1/P;
}
위 내용을 보시면 for문이 1~P까지 수행되고 있습니다.
이식은 현재 5분봉은 제외하고 직전까지의
이평을 계산하는 식입니다.
아래와 같이 변경하시면 현재봉 포함해서 그리게 됩니다.
if CC1[P] > 0 Then{
sum1 = 0;
for count1 = 0 to P-1 {
sum1 = sum1+CC1[count1];
}
mav1 = sum1/P;
}
아래는 수정된 식입니다.
input : Atime1(numeric),P(numeric);
var : cnt1(0),count1(0),sum1(0),mav1(0);
Array : CC1[200](0);
if date != date[1] Then
value1 = TimeToMinutes(stime);
#첫봉이후에 경과한 분수를 지정한 분주기로 나누어 나머지값을 구함
var1 = (TimeToMinutes(stime)-value1)%Atime1;
#첫봉이거나 나머지값이 직전보다 작아진 경우를 찾음
#(지정한 분주기의 경계봉을 찾는 내용)
#각 경계를 지나는 봉에서 이전경계의 종가를 순차적으록 계속 저장함
if dayindex() == 0 or (var1 < var1[1] and stime > stime[1]) Then{
for cnt1 = 1 to 200{
CC1[cnt1] = CC1[cnt1-1][1];
}
}
CC1[0] = C;
# 최근 P개의 배열변수에 저장된 값을 합하고 P로 나눔
if CC1[P] > 0 Then{
sum1 = 0;
for count1 = 0 to -P {
sum1 = sum1+CC1[count1];
}
mav1 = sum1/P;
}
plot1(mav1) ;
즐거운 하루되세요
> 대한청년 님이 쓴 글입니다.
> 제목 : 1분봉으로 5분봉 이평선 구하기 지표식의 오류
> 1분봉으로 5분봉 이평선을 구하는데
5분봉 차트에서 이평선과 1분봉으로 구한 5분봉 이평선 값이
1분의 갭이 발생합니다.
아무리 연구해도 원인을 찾지 못해 질의 드립니다.
다음 식에서 어느 부분이 1분의 갭이 발생하는지 알려주세요 ^^
감사합니다.
input : Atime1(numeric),P(numeric);
var : cnt1(0),count1(0),sum1(0),mav1(0);
Array : CC1[200](0);
if date != date[1] Then
value1 = TimeToMinutes(stime);
#첫봉이후에 경과한 분수를 지정한 분주기로 나누어 나머지값을 구함
var1 = (TimeToMinutes(stime)-value1)%Atime1;
#첫봉이거나 나머지값이 직전보다 작아진 경우를 찾음
#(지정한 분주기의 경계봉을 찾는 내용)
#각 경계를 지나는 봉에서 이전경계의 종가를 순차적으록 계속 저장함
if dayindex() == 0 or (var1 < var1[1] and stime > stime[1]) Then{
for cnt1 = 1 to 200{
CC1[cnt1] = CC1[cnt1-1][1];
}
}
CC1[0] = C;
# 최근 P개의 배열변수에 저장된 값을 합하고 P로 나눔
if CC1[P] > 0 Then{
sum1 = 0;
for count1 = 1 to P {
sum1 = sum1+CC1[count1];
}
mav1 = sum1/P;
}
plot1(mav1) ;
대한청년
2013-01-16 15:24:55
알려주신 식을 그대로 대입해 보면 다음과 같은 문제가 발생합니다.
1. 5분봉, 20분봉의 이평선이 매우 불규칙적인 선으로 그려집니다.
당초의 선처럼 매끄럽지 않은것은 식의 오류가 있는듯 합니다.
2. 60이평과 120이평은 5분의 차이가 발생합니다.
1분의 차이가 5분의 차이로 늘어난 것인데..
두 가지 사항에 대한 답변 부탁드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 1분봉으로 5분봉 이평선 구하기 지표식의 오류
> 안녕하세요
예스스탁입니다.
if CC1[P] > 0 Then{
sum1 = 0;
for count1 = 1 to P {
sum1 = sum1+CC1[count1];
}
mav1 = sum1/P;
}
위 내용을 보시면 for문이 1~P까지 수행되고 있습니다.
이식은 현재 5분봉은 제외하고 직전까지의
이평을 계산하는 식입니다.
아래와 같이 변경하시면 현재봉 포함해서 그리게 됩니다.
if CC1[P] > 0 Then{
sum1 = 0;
for count1 = 0 to P-1 {
sum1 = sum1+CC1[count1];
}
mav1 = sum1/P;
}
아래는 수정된 식입니다.
input : Atime1(numeric),P(numeric);
var : cnt1(0),count1(0),sum1(0),mav1(0);
Array : CC1[200](0);
if date != date[1] Then
value1 = TimeToMinutes(stime);
#첫봉이후에 경과한 분수를 지정한 분주기로 나누어 나머지값을 구함
var1 = (TimeToMinutes(stime)-value1)%Atime1;
#첫봉이거나 나머지값이 직전보다 작아진 경우를 찾음
#(지정한 분주기의 경계봉을 찾는 내용)
#각 경계를 지나는 봉에서 이전경계의 종가를 순차적으록 계속 저장함
if dayindex() == 0 or (var1 < var1[1] and stime > stime[1]) Then{
for cnt1 = 1 to 200{
CC1[cnt1] = CC1[cnt1-1][1];
}
}
CC1[0] = C;
# 최근 P개의 배열변수에 저장된 값을 합하고 P로 나눔
if CC1[P] > 0 Then{
sum1 = 0;
for count1 = 0 to -P {
sum1 = sum1+CC1[count1];
}
mav1 = sum1/P;
}
plot1(mav1) ;
즐거운 하루되세요
> 대한청년 님이 쓴 글입니다.
> 제목 : 1분봉으로 5분봉 이평선 구하기 지표식의 오류
> 1분봉으로 5분봉 이평선을 구하는데
5분봉 차트에서 이평선과 1분봉으로 구한 5분봉 이평선 값이
1분의 갭이 발생합니다.
아무리 연구해도 원인을 찾지 못해 질의 드립니다.
다음 식에서 어느 부분이 1분의 갭이 발생하는지 알려주세요 ^^
감사합니다.
input : Atime1(numeric),P(numeric);
var : cnt1(0),count1(0),sum1(0),mav1(0);
Array : CC1[200](0);
if date != date[1] Then
value1 = TimeToMinutes(stime);
#첫봉이후에 경과한 분수를 지정한 분주기로 나누어 나머지값을 구함
var1 = (TimeToMinutes(stime)-value1)%Atime1;
#첫봉이거나 나머지값이 직전보다 작아진 경우를 찾음
#(지정한 분주기의 경계봉을 찾는 내용)
#각 경계를 지나는 봉에서 이전경계의 종가를 순차적으록 계속 저장함
if dayindex() == 0 or (var1 < var1[1] and stime > stime[1]) Then{
for cnt1 = 1 to 200{
CC1[cnt1] = CC1[cnt1-1][1];
}
}
CC1[0] = C;
# 최근 P개의 배열변수에 저장된 값을 합하고 P로 나눔
if CC1[P] > 0 Then{
sum1 = 0;
for count1 = 1 to P {
sum1 = sum1+CC1[count1];
}
mav1 = sum1/P;
}
plot1(mav1) ;
다음글
이전글