커뮤니티
질문입니다.
2016-10-30 15:37:45
77
글번호 103490
일전에 일봉차트에서 봉의 갯수를 카운트하는 지표를 질문드렸습니다.
------------------
안녕하세요
예스스탁입니다.
복합차트를 염두에 두지 않았습니다.
날짜를 영업일 기준으로 변경해 드립니다.
input : X(1);
var : Month(0),nday(0),cnt(0),count(0),pre(0);
#차트 첫봉 부터 현재봉까지 월수를 카운트
if bdate > bdate[1]+30 Then
Month = Month+1;
#날짜에서 일만 추출
nday = int(sdate%100);
#봉수 저장할 변수 초기값
pre = 0;
#for 루프를 200번 시행
for cnt = 1 to 200{
#1봉전 부터 200번째 봉전까지 월수카운트 값과 일자값을 가져와
#현재봉 월수보다 N만큼 작고 날짜가 같은 봉이 있으면
if Month[cnt] == month-X and nday[cnt] == nday then{
#pre에 봉수(cnt) 저장하고
Pre = cnt;
#cnt에 큰값을 주어 for문을 빠져나옴
cnt = 10000;
}
#현재봉 월수보다 N만큼 작은데 휴일등으로 날짜가 같은 봉이 없고 일수가 작은날 발생
if Month[cnt] == month-X and nday[cnt] < nday then{
#pre cnt에서 1을 차감해서 저장하고
Pre = cnt-1;
#cnt에 큰값을 주어 for문을 빠져나옴
cnt = 10000;
}
#이전월에 지정한 날짜와 같은 날도 없고 작은날도 없이(주로 오늘 7월1일인데, 이전월은 1일이 휴일등으로 없을때)
#지정한 월 전월로 변경되면
if Month[cnt] < Month-X Then{
#pre에 cnt에서 1을 차감해서 저장하고
Pre = cnt-1;
#cnt에 큰값을 주어 for문을 빠져나옴
cnt = 10000;
}
}
plot1(Pre);
------------------------------
수정해 주신 지표는 작동합니다.
감사합니다.
한가지 더 질문을 하면,
여기서 변수"pre"가 1달간의 봉의 갯수를 표시하는데,
이 pre를 이용해 ma값을 계산해보려하니까 지표에 아무것도 나타나지 않아서 질문드립니다.
위의 지표에 추가하여
var : mapre(0);
mapre = ma(c, pre);
plot2(mapre);
라고 해보았더니 아무것도 나타나지 않습니다.
저 pre값을 이용해 이동평균을 계산하는 방법을 예시로 부탁드립니다.
감사합니다.
답변 1
예스스탁 예스스탁 답변
2016-10-31 13:18:30
안녕하세요
예스스탁입니다.
이전식이 조건만족하면 cnt를 10000으로 크게 잡히게 작성했는데
해당 내용때문에 이후에 해당식 아래에 추가한 내용은
10000봉 이후에야 계산이 되게 되어 있었습니다.
해당 봉수로 이평을 계산하므로
이전의 식을 조금 간소화 했습니다.
input : X(1);
var : Month(0),nday(0),cnt(0),count(0),pre(0);
var : sum(0),mav(0);
#차트 첫봉 부터 현재봉까지 월수를 카운트
if bdate > bdate[1]+30 Then
Month = Month+1;
#날짜에서 일만 추출
nday = int(sdate%100);
#봉수 저장할 변수 초기값
pre = 0;
#for 루프를 200번 시행
for cnt = 1 to 200{
#pre에 0 이상의 값이 저장되지 않고
#현재봉 월수보다 N만큼 작고 날짜가 같거나 작은 봉이 있으면
#이전월에 지정한 날짜와 같은 날도 없고 작은날도 없이 지정한 월 전월로 변경되면
if Pre == 0 and ((Month[cnt] == month-X and nday[cnt] <= nday) or Month[cnt] < month-X) then{
cnt = 201;
#동일 날짜면 cnt저장
#동일날짜가 아니면 cnt에서 1빼고 저장
if nday[cnt] == nday then
Pre = cnt;
Else
Pre = cnt-1;
}
}
//plot1(pre);
plot2(ma(c,Pre));
즐거운 하루되세요
> yanartas 님이 쓴 글입니다.
> 제목 : 질문입니다.
> 일전에 일봉차트에서 봉의 갯수를 카운트하는 지표를 질문드렸습니다.
------------------
안녕하세요
예스스탁입니다.
복합차트를 염두에 두지 않았습니다.
날짜를 영업일 기준으로 변경해 드립니다.
input : X(1);
var : Month(0),nday(0),cnt(0),count(0),pre(0);
#차트 첫봉 부터 현재봉까지 월수를 카운트
if bdate > bdate[1]+30 Then
Month = Month+1;
#날짜에서 일만 추출
nday = int(sdate%100);
#봉수 저장할 변수 초기값
pre = 0;
#for 루프를 200번 시행
for cnt = 1 to 200{
#1봉전 부터 200번째 봉전까지 월수카운트 값과 일자값을 가져와
#현재봉 월수보다 N만큼 작고 날짜가 같은 봉이 있으면
if Month[cnt] == month-X and nday[cnt] == nday then{
#pre에 봉수(cnt) 저장하고
Pre = cnt;
#cnt에 큰값을 주어 for문을 빠져나옴
cnt = 10000;
}
#현재봉 월수보다 N만큼 작은데 휴일등으로 날짜가 같은 봉이 없고 일수가 작은날 발생
if Month[cnt] == month-X and nday[cnt] < nday then{
#pre cnt에서 1을 차감해서 저장하고
Pre = cnt-1;
#cnt에 큰값을 주어 for문을 빠져나옴
cnt = 10000;
}
#이전월에 지정한 날짜와 같은 날도 없고 작은날도 없이(주로 오늘 7월1일인데, 이전월은 1일이 휴일등으로 없을때)
#지정한 월 전월로 변경되면
if Month[cnt] < Month-X Then{
#pre에 cnt에서 1을 차감해서 저장하고
Pre = cnt-1;
#cnt에 큰값을 주어 for문을 빠져나옴
cnt = 10000;
}
}
plot1(Pre);
------------------------------
수정해 주신 지표는 작동합니다.
감사합니다.
한가지 더 질문을 하면,
여기서 변수"pre"가 1달간의 봉의 갯수를 표시하는데,
이 pre를 이용해 ma값을 계산해보려하니까 지표에 아무것도 나타나지 않아서 질문드립니다.
위의 지표에 추가하여
var : mapre(0);
mapre = ma(c, pre);
plot2(mapre);
라고 해보았더니 아무것도 나타나지 않습니다.
저 pre값을 이용해 이동평균을 계산하는 방법을 예시로 부탁드립니다.
감사합니다.
다음글