커뮤니티
수식문의 드립니다
2016-12-09 13:32:00
146
글번호 104830
안녕하세요
수식문의 드립니다
input : P1(20);
var : cnt(0),sumv1(0),sumv11(0),mav1(0),mav11(0);
var : DayCount(0);
var : nday(0),CC(0),HH(0);
var1 = ma(C,5);
Var2 = ma(C,10);
Var3 = ma(C,20);
Var4 = ma(m,5)[1];
#차트 일수 카운트
if Bdate != Bdate[1] Then
DayCount = DayCount+1;
sumV1 = 0;
sumv11 = 0;
for cnt = 0 to P1-1{
if cnt < P1 Then
sumV1 = sumV1+(DayHigh(cnt)+daylow(cnt))/2;
sumV11 = sumV11+(DayHigh(cnt+1)+daylow(cnt+1))/2;
}
mav1 = sumv1/P1;
mav11 = sumv11/P1;
#조건 만족시
if ( countif(C>=C[1]*1.10,8) >= 1 or (countif(C>=C[1]*1.075,8) >= 1 and countif(H[1]>=L[1]*1.15,8) >= 1) )
and Var4 >= 10000000000 and mav11*1.02 < L[1] and mav1*1.02 >= L
and Var2*1.03 <= Var1 and L < L[1] and L < L[2] and L < L[3]
and Var2[2] < Var2[1] and Var2[1] < Var2 Then{
nDay = DayCount;#일수저장
CC = C; #조건만족봉 종가 저장
HH = H; #조건만족후 최고가 계산의 초기값
}
#조건만족후 다음날까지의 최고가 계산
if nDay > 0 and DayCount <= nDay+1 Then{
if H > HH Then
HH = H;
#조건만족후 최고가가가 조건만족봉 종가보다 5%이상 크면
if HH >= CC*1.05 then
value1 = 1;
Else
value1 = 0;
if countif(value1 == 1,30) >=1 Then
find(1);
}
검색에서 오류가 납니다
수정좀 부탁드려요
감사합니다
답변 3
예스스탁 예스스탁 답변
2016-12-09 14:09:51
안녕하세요
예스스탁입니다.
종목검색에는 bdate가 사용될수 없으므로
sdate로 변경해 주시면 됩니다.
input : P1(20);
var : cnt(0),sumv1(0),sumv11(0),mav1(0),mav11(0);
var : DayCount(0);
var : nday(0),CC(0),HH(0);
var1 = ma(C,5);
Var2 = ma(C,10);
Var3 = ma(C,20);
Var4 = ma(m,5)[1];
#차트 일수 카운트
if sdate != sdate[1] Then
DayCount = DayCount+1;
sumV1 = 0;
sumv11 = 0;
for cnt = 0 to P1-1{
if cnt < P1 Then{
sumV1 = sumV1+(DayHigh(cnt)+daylow(cnt))/2;
sumV11 = sumV11+(DayHigh(cnt+1)+daylow(cnt+1))/2;
}
}
mav1 = sumv1/P1;
mav11 = sumv11/P1;
#조건 만족시
if ( countif(C>=C[1]*1.10,8) >= 1 or (countif(C>=C[1]*1.075,8) >= 1 and countif(H[1]>=L[1]*1.15,8) >= 1) )
and Var4 >= 10000000000 and mav11*1.02 < L[1] and mav1*1.02 >= L
and Var2*1.03 <= Var1 and L < L[1] and L < L[2] and L < L[3]
and Var2[2] < Var2[1] and Var2[1] < Var2 Then{
nDay = DayCount;#일수저장
CC = C; #조건만족봉 종가 저장
HH = H; #조건만족후 최고가 계산의 초기값
}
#조건만족후 다음날까지의 최고가 계산
if nDay > 0 and DayCount <= nDay+1 Then{
if H > HH Then
HH = H;
#조건만족후 최고가가가 조건만족봉 종가보다 5%이상 크면
if HH >= CC*1.05 then
value1 = 1;
Else
value1 = 0;
if countif(value1 == 1,30) >=1 Then
find(1);
}
조건만족후 다음날까지 최고가를 계산하므로
해당식 최소 2분이상의 분봉주기에서 검색하셔야 하고
속성에서 검색에 필요한 봉갯수를 최대인 500으로 지정하고
검색하셔야 합니다.
검색종목이 안나오면 해당 내용은 수식의 내용을 살펴보셔야 합니다.
분봉에서 구동해야 하는데 종가가 8봉 안에 전봉대비 10% 상승한 봉이 있어야 한다등
충족되기 힘든 조건들이 있습니다.
즐거운 하루되세요
> 하루4% 님이 쓴 글입니다.
> 제목 : 수식문의 드립니다
> 안녕하세요
수식문의 드립니다
input : P1(20);
var : cnt(0),sumv1(0),sumv11(0),mav1(0),mav11(0);
var : DayCount(0);
var : nday(0),CC(0),HH(0);
var1 = ma(C,5);
Var2 = ma(C,10);
Var3 = ma(C,20);
Var4 = ma(m,5)[1];
#차트 일수 카운트
if Bdate != Bdate[1] Then
DayCount = DayCount+1;
sumV1 = 0;
sumv11 = 0;
for cnt = 0 to P1-1{
if cnt < P1 Then
sumV1 = sumV1+(DayHigh(cnt)+daylow(cnt))/2;
sumV11 = sumV11+(DayHigh(cnt+1)+daylow(cnt+1))/2;
}
mav1 = sumv1/P1;
mav11 = sumv11/P1;
#조건 만족시
if ( countif(C>=C[1]*1.10,8) >= 1 or (countif(C>=C[1]*1.075,8) >= 1 and countif(H[1]>=L[1]*1.15,8) >= 1) )
and Var4 >= 10000000000 and mav11*1.02 < L[1] and mav1*1.02 >= L
and Var2*1.03 <= Var1 and L < L[1] and L < L[2] and L < L[3]
and Var2[2] < Var2[1] and Var2[1] < Var2 Then{
nDay = DayCount;#일수저장
CC = C; #조건만족봉 종가 저장
HH = H; #조건만족후 최고가 계산의 초기값
}
#조건만족후 다음날까지의 최고가 계산
if nDay > 0 and DayCount <= nDay+1 Then{
if H > HH Then
HH = H;
#조건만족후 최고가가가 조건만족봉 종가보다 5%이상 크면
if HH >= CC*1.05 then
value1 = 1;
Else
value1 = 0;
if countif(value1 == 1,30) >=1 Then
find(1);
}
검색에서 오류가 납니다
수정좀 부탁드려요
감사합니다
하루4%
2016-12-09 14:19:59
일봉으로 검색하면 안되는가요?
감사합니다
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식문의 드립니다
> 안녕하세요
예스스탁입니다.
종목검색에는 bdate가 사용될수 없으므로
sdate로 변경해 주시면 됩니다.
input : P1(20);
var : cnt(0),sumv1(0),sumv11(0),mav1(0),mav11(0);
var : DayCount(0);
var : nday(0),CC(0),HH(0);
var1 = ma(C,5);
Var2 = ma(C,10);
Var3 = ma(C,20);
Var4 = ma(m,5)[1];
#차트 일수 카운트
if sdate != sdate[1] Then
DayCount = DayCount+1;
sumV1 = 0;
sumv11 = 0;
for cnt = 0 to P1-1{
if cnt < P1 Then{
sumV1 = sumV1+(DayHigh(cnt)+daylow(cnt))/2;
sumV11 = sumV11+(DayHigh(cnt+1)+daylow(cnt+1))/2;
}
}
mav1 = sumv1/P1;
mav11 = sumv11/P1;
#조건 만족시
if ( countif(C>=C[1]*1.10,8) >= 1 or (countif(C>=C[1]*1.075,8) >= 1 and countif(H[1]>=L[1]*1.15,8) >= 1) )
and Var4 >= 10000000000 and mav11*1.02 < L[1] and mav1*1.02 >= L
and Var2*1.03 <= Var1 and L < L[1] and L < L[2] and L < L[3]
and Var2[2] < Var2[1] and Var2[1] < Var2 Then{
nDay = DayCount;#일수저장
CC = C; #조건만족봉 종가 저장
HH = H; #조건만족후 최고가 계산의 초기값
}
#조건만족후 다음날까지의 최고가 계산
if nDay > 0 and DayCount <= nDay+1 Then{
if H > HH Then
HH = H;
#조건만족후 최고가가가 조건만족봉 종가보다 5%이상 크면
if HH >= CC*1.05 then
value1 = 1;
Else
value1 = 0;
if countif(value1 == 1,30) >=1 Then
find(1);
}
조건만족후 다음날까지 최고가를 계산하므로
해당식 최소 2분이상의 분봉주기에서 검색하셔야 하고
속성에서 검색에 필요한 봉갯수를 최대인 500으로 지정하고
검색하셔야 합니다.
검색종목이 안나오면 해당 내용은 수식의 내용을 살펴보셔야 합니다.
분봉에서 구동해야 하는데 종가가 8봉 안에 전봉대비 10% 상승한 봉이 있어야 한다등
충족되기 힘든 조건들이 있습니다.
즐거운 하루되세요
> 하루4% 님이 쓴 글입니다.
> 제목 : 수식문의 드립니다
> 안녕하세요
수식문의 드립니다
input : P1(20);
var : cnt(0),sumv1(0),sumv11(0),mav1(0),mav11(0);
var : DayCount(0);
var : nday(0),CC(0),HH(0);
var1 = ma(C,5);
Var2 = ma(C,10);
Var3 = ma(C,20);
Var4 = ma(m,5)[1];
#차트 일수 카운트
if Bdate != Bdate[1] Then
DayCount = DayCount+1;
sumV1 = 0;
sumv11 = 0;
for cnt = 0 to P1-1{
if cnt < P1 Then
sumV1 = sumV1+(DayHigh(cnt)+daylow(cnt))/2;
sumV11 = sumV11+(DayHigh(cnt+1)+daylow(cnt+1))/2;
}
mav1 = sumv1/P1;
mav11 = sumv11/P1;
#조건 만족시
if ( countif(C>=C[1]*1.10,8) >= 1 or (countif(C>=C[1]*1.075,8) >= 1 and countif(H[1]>=L[1]*1.15,8) >= 1) )
and Var4 >= 10000000000 and mav11*1.02 < L[1] and mav1*1.02 >= L
and Var2*1.03 <= Var1 and L < L[1] and L < L[2] and L < L[3]
and Var2[2] < Var2[1] and Var2[1] < Var2 Then{
nDay = DayCount;#일수저장
CC = C; #조건만족봉 종가 저장
HH = H; #조건만족후 최고가 계산의 초기값
}
#조건만족후 다음날까지의 최고가 계산
if nDay > 0 and DayCount <= nDay+1 Then{
if H > HH Then
HH = H;
#조건만족후 최고가가가 조건만족봉 종가보다 5%이상 크면
if HH >= CC*1.05 then
value1 = 1;
Else
value1 = 0;
if countif(value1 == 1,30) >=1 Then
find(1);
}
검색에서 오류가 납니다
수정좀 부탁드려요
감사합니다
예스스탁 예스스탁 답변
2016-12-09 14:45:12
안녕하세요
예스스탁입니다.
식을 작성하실떄 구현하고자 하는 내용이
특정주기에서 가능한가 여부를 판단하시고
주기를 정한 후에 정해진 주기에 맞게 수식을 구현하셔야 합니다.
현재 식은 일봉에서만 가능한 내용과 분봉주기에서만 가능한 내용이 혼합되어 있습니다.
수식에서 사용할수 있는 값이 시고저종가인데
일봉에서 조건A가 만족하고 당일 조건A만족후 최고가는 계산이 불가능합니다.
하나의 봉에서 조건만족보다 고가가 나중에 발생했는지 등은 알수가 없습니다.
검색식 내용중 30일 중 1번이상 만족한 내용이 있으므로 해당 내용은 일봉주기를 기준으로 해야만 합니다.
종목검색에는 최대 500봉 까지만 제공되어 일수로는 며칠이 되지 않아 해당 내용이 검색되지 않습니다.
작성하신 내용을 일봉에서 검색하려면
전일 A조건이 만족하고 당일현재가가 전일종가보다 5% 이상 크다라고 뿐이 작성이 되지 않습니다.
위내용으로 하신다면 아래와 같이 작성하시면 됩니다.
input : P1(20);
var : mav1(0),mav11(0);
var1 = ma(C,5);
Var2 = ma(C,10);
Var3 = ma(C,20);
Var4 = ma(m,5)[1];
mav1 = ma((H+L)/2,P1);
mav11 = mav1[1];
#조건A
Condition1 = ( countif(C>=C[1]*1.10,8) >= 1 or (countif(C>=C[1]*1.075,8) >= 1 and countif(H[1]>=L[1]*1.15,8) >= 1) )
and Var4 >= 10000000000 and mav11*1.02 < L[1] and mav1*1.02 >= L
and Var2*1.03 <= Var1 and L < L[1] and L < L[2] and L < L[3]
and Var2[2] < Var2[1] and Var2[1] < Var2;
#전봉에 조건A는 만족했고 오늘고가가 전날 종가보다 5% 이상 큼
if Condition1[1] == true and H >= C[1]*1.05 then
value1 = 1;
Else
value1 = 0;
if countif(value1 == 1,30) >=1 Then
find(1);
참고로 사용하신는 수식에서
sumV1 = 0;
sumv11 = 0;
for cnt = 0 to P1-1{
if cnt < P1 Then{
sumV1 = sumV1+(DayHigh(cnt)+daylow(cnt))/2;
sumV11 = sumV11+(DayHigh(cnt+1)+daylow(cnt+1))/2;
}
}
mav1 = sumv1/P1;
mav11 = sumv11/P1;
위와 같은 내용은 분봉에서 일봉의 값을 계산하기 위한 내용입니다.
주기가 일봉이면 해당 내용은 필요가 없습니다.
아래와 같이 대체하시면 됩니다.
mav1 = ma((H+L)/2,P1);
mav11 = mav1[1];
즐거운 하루되세요
> 하루4% 님이 쓴 글입니다.
> 제목 : Re : Re : 수식문의 드립니다
> 일봉으로 검색하면 안되는가요?
감사합니다
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식문의 드립니다
> 안녕하세요
예스스탁입니다.
종목검색에는 bdate가 사용될수 없으므로
sdate로 변경해 주시면 됩니다.
input : P1(20);
var : cnt(0),sumv1(0),sumv11(0),mav1(0),mav11(0);
var : DayCount(0);
var : nday(0),CC(0),HH(0);
var1 = ma(C,5);
Var2 = ma(C,10);
Var3 = ma(C,20);
Var4 = ma(m,5)[1];
#차트 일수 카운트
if sdate != sdate[1] Then
DayCount = DayCount+1;
sumV1 = 0;
sumv11 = 0;
for cnt = 0 to P1-1{
if cnt < P1 Then{
sumV1 = sumV1+(DayHigh(cnt)+daylow(cnt))/2;
sumV11 = sumV11+(DayHigh(cnt+1)+daylow(cnt+1))/2;
}
}
mav1 = sumv1/P1;
mav11 = sumv11/P1;
#조건 만족시
if ( countif(C>=C[1]*1.10,8) >= 1 or (countif(C>=C[1]*1.075,8) >= 1 and countif(H[1]>=L[1]*1.15,8) >= 1) )
and Var4 >= 10000000000 and mav11*1.02 < L[1] and mav1*1.02 >= L
and Var2*1.03 <= Var1 and L < L[1] and L < L[2] and L < L[3]
and Var2[2] < Var2[1] and Var2[1] < Var2 Then{
nDay = DayCount;#일수저장
CC = C; #조건만족봉 종가 저장
HH = H; #조건만족후 최고가 계산의 초기값
}
#조건만족후 다음날까지의 최고가 계산
if nDay > 0 and DayCount <= nDay+1 Then{
if H > HH Then
HH = H;
#조건만족후 최고가가가 조건만족봉 종가보다 5%이상 크면
if HH >= CC*1.05 then
value1 = 1;
Else
value1 = 0;
if countif(value1 == 1,30) >=1 Then
find(1);
}
조건만족후 다음날까지 최고가를 계산하므로
해당식 최소 2분이상의 분봉주기에서 검색하셔야 하고
속성에서 검색에 필요한 봉갯수를 최대인 500으로 지정하고
검색하셔야 합니다.
검색종목이 안나오면 해당 내용은 수식의 내용을 살펴보셔야 합니다.
분봉에서 구동해야 하는데 종가가 8봉 안에 전봉대비 10% 상승한 봉이 있어야 한다등
충족되기 힘든 조건들이 있습니다.
즐거운 하루되세요
> 하루4% 님이 쓴 글입니다.
> 제목 : 수식문의 드립니다
> 안녕하세요
수식문의 드립니다
input : P1(20);
var : cnt(0),sumv1(0),sumv11(0),mav1(0),mav11(0);
var : DayCount(0);
var : nday(0),CC(0),HH(0);
var1 = ma(C,5);
Var2 = ma(C,10);
Var3 = ma(C,20);
Var4 = ma(m,5)[1];
#차트 일수 카운트
if Bdate != Bdate[1] Then
DayCount = DayCount+1;
sumV1 = 0;
sumv11 = 0;
for cnt = 0 to P1-1{
if cnt < P1 Then
sumV1 = sumV1+(DayHigh(cnt)+daylow(cnt))/2;
sumV11 = sumV11+(DayHigh(cnt+1)+daylow(cnt+1))/2;
}
mav1 = sumv1/P1;
mav11 = sumv11/P1;
#조건 만족시
if ( countif(C>=C[1]*1.10,8) >= 1 or (countif(C>=C[1]*1.075,8) >= 1 and countif(H[1]>=L[1]*1.15,8) >= 1) )
and Var4 >= 10000000000 and mav11*1.02 < L[1] and mav1*1.02 >= L
and Var2*1.03 <= Var1 and L < L[1] and L < L[2] and L < L[3]
and Var2[2] < Var2[1] and Var2[1] < Var2 Then{
nDay = DayCount;#일수저장
CC = C; #조건만족봉 종가 저장
HH = H; #조건만족후 최고가 계산의 초기값
}
#조건만족후 다음날까지의 최고가 계산
if nDay > 0 and DayCount <= nDay+1 Then{
if H > HH Then
HH = H;
#조건만족후 최고가가가 조건만족봉 종가보다 5%이상 크면
if HH >= CC*1.05 then
value1 = 1;
Else
value1 = 0;
if countif(value1 == 1,30) >=1 Then
find(1);
}
검색에서 오류가 납니다
수정좀 부탁드려요
감사합니다