첨부 이미지
그림1
총 2200개 주식 종목중 아래수식사용시 72종목만 검색되는데 그이유는?
2200개 모두 검색 되어야 하는게 아닌지요?
시간상 모든 종목이 검색 괴에 했으니 480개 봉이 나온이후(480이평 형성)에 데이타 있ㄷ으면 모두 만족 할텐데(저유동성 종목 제외) 왜 72개만 만족 할까요?
특히 덴티스가 검색 안되는 이유가 궁금합니다
input: VVSlowLen(480);
input : ndate(20200703), ntime(93400);
Var5 = MA(c,VVSlowLen); //480
if sdate[1] <> sdate then { Condition1 = false; var28 = var6; }
if Condition1 == false and
ndate == sDate and stime >= ntime
Then
{
var7 = Var5;
condition1 = true;
}
if Condition1 == true then find(var7);
답변 1
예스스탁
예스스탁 답변
2020-07-06 11:03:14
안녕하세요
예스스탁입니다.
데이타가 최근 500봉이면
480이평은 최근 20개봉에서만 값이 존재합니다.
if Condition1 == false and
ndate == sDate and stime >= ntime
Then
{
var7 = Var5;
condition1 = true;
}
만약 과거 200봉전에 만족했다면 그시점에서는 과거봉이 300개만 존재하므로
480이평을 계산할수 없어 var7값이 0이 되고
find(var7) --> find(0)이 됩니다.
find은 조건이 만족하지 않는 종목에 대해서
0을 할당해 배제하므로 find함수안에 지정하는 값은 0이 나올수 없는 값이어야 합니다.
지금 종목검색된 종목은 거래가 별로 없어
지정한 날짜시간이후가 최근 20개봉 이내인 종목입니다.
아래와 같이 수정해서
이평값이 있으면 var7에 이평값을 저장하고 없으면 0이 아닌 0.1을 저장해서
if문이 만족해도 이평값이 없어 제외되지 않게 처리하시면 됩니다,
input: VVSlowLen(480);
input : ndate(20200703), ntime(93400);
Var5 = MA(c,VVSlowLen); //480
if sdate[1] <> sdate then { Condition1 = false; var28 = var6;}
if Condition1 == false and
ndate == sDate and stime >= ntime
Then
{
#이평값이 있으면 이평값저장 없으면 0.1저장
if var5 > 0 then
var7 = Var5;
Else
var7 = 0.1;
condition1 = true;
}
if Condition2 == true then
find(var77);
즐거운 하루되세요
> 날으는여우 님이 쓴 글입니다.
> 제목 : 500봉 검색기간에서 480이평슬때의 문제
> 총 2200개 주식 종목중 아래수식사용시 72종목만 검색되는데 그이유는?
2200개 모두 검색 되어야 하는게 아닌지요?
시간상 모든 종목이 검색 괴에 했으니 480개 봉이 나온이후(480이평 형성)에 데이타 있ㄷ으면 모두 만족 할텐데(저유동성 종목 제외) 왜 72개만 만족 할까요?
특히 덴티스가 검색 안되는 이유가 궁금합니다
input: VVSlowLen(480);
input : ndate(20200703), ntime(93400);
Var5 = MA(c,VVSlowLen); //480
if sdate[1] <> sdate then { Condition1 = false; var28 = var6; }
if Condition1 == false and
ndate == sDate and stime >= ntime
Then
{
var7 = Var5;
condition1 = true;
}
if Condition1 == true then find(var7);