오늘은 거래가 이루어지고 있는 종목으로
전일부터 500일내에 3일 연속 거래정지가 발생한 종목을 검색하려고 합니다.
아래와 같이 수식을 작성했는데 파워종목검색에서 검색에 필요한 최소 기간을 500으로 지정한후 검색을 수행하면 검색이 이루어지지 않고 있습니다.
아래 소스에 대해 검토 부탁드리겠습니다.
var : Counter(0);
Condition1 = false;
if v > 0 then
Begin
For Counter = 1 To 500 Begin
if v[Counter] == 0 and v[Counter+1] == 0 and v[Counter+2] == 0 and v[Counter+3] == 0 then
Begin
Condition1 = true;
Counter = 499;
End;
End;
End;
if Condition1 == true Then
find(1);
감사합니다.
답변 1
예스스탁
예스스탁 답변
2021-07-26 11:32:49
안녕하세요
예스스탁입니다.
1
종목검색은 최대제공봉수가 500봉인데
500봉전기준 3봉전 값까지 필요하므로 작성하신 수식은 503봉이 필요합니다.
2
계산이 봉마다 500번의 루프를 돌게 되어 있어 식계산에 많은 시간이 소모가 됩니다.
과거에 3일연속 거래량이 0인 경우가 있는지 체크하는 부분이므로 아래와 같이 작성하신 후에
종목검색시 검색에 필요한 최소기간에 500봉 지정하고 검색하시면 됩니다.
수식은 적용하면 과거 첫봉부터 현재봉으로 오면서 계산흐므로
과거에 특정조건이 만족한 것을 알고자 하시면
현재시점에서 과거를 뒤져 계산하게 만드실 필요가 없습니다.
특종조건이 만족하면 변수가 true가 되게 만드신 후에
해당 변수를 현재봉에서 이용하게 작성하시면 수식이 좀더 빨리 계산됩니다.
3
input : N(3);
var : Counter(0);
if CountIf(V==0,N) == N Then
Condition1 = true;
if V > 0 and Condition1 == true Then
find(1);
즐거운 하루되세요
> 엠제이 님이 쓴 글입니다.
> 제목 : 검색 조건식 검토 부탁드리겠습니다.
> 오늘은 거래가 이루어지고 있는 종목으로
전일부터 500일내에 3일 연속 거래정지가 발생한 종목을 검색하려고 합니다.
아래와 같이 수식을 작성했는데 파워종목검색에서 검색에 필요한 최소 기간을 500으로 지정한후 검색을 수행하면 검색이 이루어지지 않고 있습니다.
아래 소스에 대해 검토 부탁드리겠습니다.
var : Counter(0);
Condition1 = false;
if v > 0 then
Begin
For Counter = 1 To 500 Begin
if v[Counter] == 0 and v[Counter+1] == 0 and v[Counter+2] == 0 and v[Counter+3] == 0 then
Begin
Condition1 = true;
Counter = 499;
End;
End;
End;
if Condition1 == true Then
find(1);
감사합니다.