안녕하세요...
종목검색 식 문의인데요...
아래 식을 완성하고, 파워종목검색에서 아래식으로 만든 조건검색을 등록하여 검색을 하였는데요.
파워종목검색에서 기준주기(일,주,월,분)를 바꿔가면서 조회를 하면 결과값이 다르게 나옵니다.
제가 원하는값은 당일의 현재시간까지의 거래량과 이전일별 현재시간까지의 거래량을 구한후 평균거래량을 구한후 당일의 거래량이 이전의 평균거래량보다 100%이상 거래된 종목만 검색하기를 원합니다.
어디가 잘못되었을까요?
그리고, 디버깅문을 넣으면 에라가 납니다. 사용법 부탁드립니다.
디버깅문 :
MessageLog("종목명 : %s, 당일거래량 : %.2f, %s일평균거래량 : %.2f, 달성율 : %.2f", Find(1), DayVolume, Ilsu, AvgVolume, Per);
완성식 :
input : Ilsu(20),MinPer(100);
var : cnt(0),Per(0);
var : sumVolume(0),AvgVolume(0);
//array : sumVolume[5](0);
for cnt = 1 to Ilsu {
if sdate[cnt] < sdate and stime[cnt] <= stime then
{
sumVolume = sumVolume + DayVolume[cnt];
}
}
AvgVolume = sumVolume/Ilsu;
Per = DayVolume / AvgVolume * 100;
if MinPer < Per Then
{
Find(1);
// MessageLog("종목명 : %s, 당일거래량 : %.2f, %s일평균거래량 : %.2f, 달성율 : %.2f", Find(1), DayVolume, Ilsu, AvgVolume, Per);
}
답변 1
예스스탁
예스스탁 답변
2021-09-28 17:28:21
안녕하세요
예스스탁입니다.
1
DayVolume은 일봉이하에서 일간값을 리턴합니다.
주봉이상의 주기에서는 해당봉의 전체 수량을 리턴하게 됩니다.
2
종목검색은 단일종목의 차트에 적용되는 수식이 아니므로
디버깅관련 함수를 사용할 수 없습니다.
2
당일의 현재시간까지의 거래량과
이전일별 현재시간까지의 거래량을 구한후 평균거래량을 구한후 당일의 거래량이 이전의 평균거래량보다 100%이상 거래된 종목만 검색
위 내용은 일봉이상 주기에서는 구현이 불가능한 내용입니다.
분봉이하의 주기에서만 계산이 가능한 부분입니다.
모든 수식에서 시간개념이 들어가면 분봉이하 주기에서만 가능한 내용입니다.
3
수식을 작성해 드리면 아래와 같지만 종목검색이 최대 제공봉수가 500봉입니다.
종목검색속성에서 검색에 필요한 최소기간에 500봉 지정사고 검색하시고
분봉주기가 짧으면 20일이상 데이타가 확보되지 않아 계산이 불가능합니다.
500봉으로 최대 n일이상 데이타가 확보될수 있는 주기로만 검색을 하셔야 합니다.
input : Ilsu(20),MinPer(100);
var : idx(-1),sum(0),count(0),cnt(0),mav(0);
if Bdate != Bdate[1] Then
{
idx = 0;
}
idx = idx+1;
if idx >= 1 Then
{
sum = 0;
count = 0;
For cnt = idx to Index
{
if count < Ilsu and sDate[cnt] < sDate and sTime[cnt] == sTime Then
{
sum = sum + V[cnt];
count = count+1;
}
if count == Ilsu Then
cnt = Index+1;
}
if count == Ilsu and DayVolume > mav*(1+minper/100) Then
{
Find(1);
}
}
즐거운 하루되세요
> 와사비 님이 쓴 글입니다.
> 제목 : 종목검색식의 결과값이 다르게 나옵니다.
> 안녕하세요...
종목검색 식 문의인데요...
아래 식을 완성하고, 파워종목검색에서 아래식으로 만든 조건검색을 등록하여 검색을 하였는데요.
파워종목검색에서 기준주기(일,주,월,분)를 바꿔가면서 조회를 하면 결과값이 다르게 나옵니다.
제가 원하는값은 당일의 현재시간까지의 거래량과 이전일별 현재시간까지의 거래량을 구한후 평균거래량을 구한후 당일의 거래량이 이전의 평균거래량보다 100%이상 거래된 종목만 검색하기를 원합니다.
어디가 잘못되었을까요?
그리고, 디버깅문을 넣으면 에라가 납니다. 사용법 부탁드립니다.
디버깅문 :
MessageLog("종목명 : %s, 당일거래량 : %.2f, %s일평균거래량 : %.2f, 달성율 : %.2f", Find(1), DayVolume, Ilsu, AvgVolume, Per);
완성식 :
input : Ilsu(20),MinPer(100);
var : cnt(0),Per(0);
var : sumVolume(0),AvgVolume(0);
//array : sumVolume[5](0);
for cnt = 1 to Ilsu {
if sdate[cnt] < sdate and stime[cnt] <= stime then
{
sumVolume = sumVolume + DayVolume[cnt];
}
}
AvgVolume = sumVolume/Ilsu;
Per = DayVolume / AvgVolume * 100;
if MinPer < Per Then
{
Find(1);
// MessageLog("종목명 : %s, 당일거래량 : %.2f, %s일평균거래량 : %.2f, 달성율 : %.2f", Find(1), DayVolume, Ilsu, AvgVolume, Per);
}