커뮤니티
종목검색에서
2015-09-10 02:46:33
111
글번호 90214
var : count(0), cnt(0);
count = 0;
for cnt = 0 to 5
begin
if ma(C[cnt], 60) < ma(C[cnt + 1], 60) then count = count + 1;
end;
if count == 0 then find(1);
위처럼 식을 작성했습니다.
6일 연속 60일이평이 상승중인 종목을 검색하기 위함입니다.
검색식을 적용해보니 여러 종목이 잡히는데
그중 "CJ CGV"란 종목이 나오는데
해당종목은 3일동안 작게라도 연속 60이평이 내렸는데
검색식에 잡히는 이유를 모르겠습니다.
잘못된 부분이 있으면 설명과 수정을 부탁드립니다.
p.s.
검색식을 돌린 지금 시간이 2015-09-10일 새벽2시49분입니다.
일봉기준이고
검색식에 필요한 최소기간은 100봉을 줬습니다.
답변 1
예스스탁 예스스탁 답변
2015-09-10 11:27:51
안녕하세요
예스스탁입니다.
식을 수정했습니다,
input : P(50);
var : count(0), cnt(0),mav(0);
mav = ma(c,60);
count = 0;
for cnt = 0 to 5
begin
if mav[cnt] < mav[cnt+1] then
count = count + 1;
end;
if count == 0 then
find(1);
for문에 지표값을 이용하실때 가능하면
따로 변수로 지정하고 그 변수 이용해 이전값과 비교하게 만드셔야 합니다.
for문에서 해당 함수를 호출해서 루프로 이전값을 가져오는데
과거봉값을 만들지 않은상태에서 호출을 하므로 잘못된 값이 나오게 됩니다.
즉 if문에 고정값으로 [1],[2],[100]와 같이 지정하시면
관계없지만 for문에 의해 가변적이기 때문에
이전 몇개봉이 필요할지 모르는 상태이므로 계산해 놓치 않은상태에서
호출되므로 잘못된 값이 리턴됩니다.
위식으로 검색하시면
CJ CGV종목이 검색되지 않습니다.
즐거운 하루되세요
> 웃고살자 님이 쓴 글입니다.
> 제목 : 종목검색에서
> var : count(0), cnt(0);
count = 0;
for cnt = 0 to 5
begin
if ma(C[cnt], 60) < ma(C[cnt + 1], 60) then count = count + 1;
end;
if count == 0 then find(1);
위처럼 식을 작성했습니다.
6일 연속 60일이평이 상승중인 종목을 검색하기 위함입니다.
검색식을 적용해보니 여러 종목이 잡히는데
그중 "CJ CGV"란 종목이 나오는데
해당종목은 3일동안 작게라도 연속 60이평이 내렸는데
검색식에 잡히는 이유를 모르겠습니다.
잘못된 부분이 있으면 설명과 수정을 부탁드립니다.
p.s.
검색식을 돌린 지금 시간이 2015-09-10일 새벽2시49분입니다.
일봉기준이고
검색식에 필요한 최소기간은 100봉을 줬습니다.
다음글
이전글