예스스탁
예스스탁 답변
2025-03-20 13:19:50
안녕하세요
예스스탁입니다.
1
if Bdate != Bdate[1] Then
Condition1 = False;
if condition1==False and (countif(crossup(h,cc[0]),200)>=1) Then
{
condition1=true;
find(1)
}
위 수식은 분봉에서 검색하는 내용이고
당일 처음으로 현재봉기준 200봉 안에 고가가 CC[0]을 돌파한 봉이 1개이상인 종목을 찾는 내용입니다.
현재봉 고가와 현재봉 CC[0],
1봉전 고가와 1봉전 CC[0],
2봉전 고가와 2봉전 CC[0],
...
199봉전 고가와 199봉전 CC[0]와 비교해 카운트를 하고
해당 카운트 값이 오늘중 처음으로 1회이상인 종목을 찾습니다.
plot1(countif(crossup(h,cc[0]),200));
위 지표를 분봉차트에 적용해서
당일 처음으로 1이상의 값이 나온봉을 찾는 내용입니다.
2
올리신 내용은 200봉 중 고가가 CC[0]~CC[20]을 돌파한 경우가 1회이상이라는 내용이므로
아래와 같이 작성하시면 됩니다.
var : cnt(0), sum1(0), sumi1(0),tt(0),hh(0),ll(0),tl(0),tl1(0);
var: sum2(0),sumi2(0),sumaa(0);
var : t(0),StartBarIndex(0),dd(0),d1(0),d2(0);
Array : ii[50](0),aa[50](0),bb[50](0),cc[50](0),vv[150](0),ttl[10](0);
if Bdate != Bdate[1] Then
DD = DD+1;
#H>vi(1)*0.95 h>l*1.07
if h>l*1.07 Then
{
d1 = dd;
d2 = d1[1];
#if d1 >= d2+1 Then
#if d2 == 0 or (d2 > 0 and d1 >= d2+3) Then
if d2 == 0 or (d2 > 0 and d1 >= d2+3) Then
{
var1 = Index;
Var2 = var1[1];
Var3= Var2[1];
sum1=0;
sumi1=0;
tl=TL_NEW(sDatE,sTimE,100,sDatE,sTimE,999999);
TL_SetSize(tl,0);
TL_SetColor(tl,Gray);
For cnt = 1 to (var1-Var2)
{
sum1=sum1+h[cnt];
sumi1=sumi1+1;
}
value1=sum1/sumi1;
For cnt = 49 DownTo 1
{
aa[cnt] = aa[cnt-1];
}
aa[0] = value1;
Var20=Money/100000000;
if Var20>30 Then
{
For cnt = 49 DownTo 1
{
cc[cnt]= cc[cnt-1];
}
cc[0]=value1*0.9;
#Plot11(cc[0],"hma",DarkRed,Def,1);
}
}
}
#Plot13(value1,"평균",LightGreen,Def,1);
var : count(0);
if Bdate != Bdate[1] Then
Condition1 = False;
#매봉 고가 CC[0]~CC[20]을 돌파한 횟수를 카운트
count = 0;
For cnt = 0 to 20
{
if h > CC[cnt] and H[1] <= CC[cnt][1] Then
count = count+1;
}
if condition1==False and (countif(count >= 1,200)>=1) Then
{
condition1=true;
find(1);
}
즐거운 하루되세요
> yamu 님이 쓴 글입니다.
> 제목 : 질문드리겠습니다
> 수고가 많으십니다
종목 검색 관련 질문을 부탁드립니다
질문1)
맨 아래 첨부된 식에서요
if Bdate != Bdate[1] Then
Condition1 = False;
if condition1==False and (countif(crossup(h,cc[0]),200)>=1) Then
{
condition1=true;
find(1)
}
이부분에 대해서 질문인데요
조건검색은 오늘 현재봉을 기준으로 검색을하는건데 ,
만약 가장최근봉 (오늘 현재봉)이 조건만족봉에 해당되지 않을때를 생각해서
가장 최근의 조건만족봉을 기준으로 (만약 분봉에서 가장최근봉 기준 10봉전이 조건만족봉이라면 10봉전부터 시작을 해서 count. 10봉전의 봉이 h[0]) 200봉 내에서의 (h[0],h[1],h[2]...h[199] 이런식으로 크로스업 확인) countif 조건을 찾아준다는 의미가 맞나요?
아니면 오늘현재봉부터 시작해서 200봉 내에서 조건에 맞는 신호를 찾아준다는 건가요??
예전에 만든 수식인데 좀 헷갈려서요,,,어떤 의미가 되는건지 간단한 설명을 부탁드리겠습니다
질문2)
질문1과 연계해서,,,아래 식에서
(countif(crossup(h,cc[0]),200)>=1) or (countif(crossup(h,cc[1]),200)>=1) or (countif(crossup(h,cc[3]),200)>=1) ....이런식으로 h 이 cc[0], cc[1] ... 을 한번이상 크로스업 할때마다 검출을 하려고 하는데요,,지난 cc값들을 계속 비교를 하려고 합니다
예를들어 cc[20] 까지 비교하면 식이 길어지는데요, for 으로 간략하게 작성할 수 있을까요
감사합니다
var : cnt(0), sum1(0), sumi1(0),tt(0),hh(0),ll(0),tl(0),tl1(0);
var: sum2(0),sumi2(0),sumaa(0);
var : t(0),StartBarIndex(0),dd(0),d1(0),d2(0);
Array : ii[50](0),aa[50](0),bb[50](0),cc[50](0),vv[150](0),ttl[10](0);
if Bdate != Bdate[1] Then
DD = DD+1;
#H>vi(1)*0.95 h>l*1.07
if h>l*1.07 Then
{
d1 = dd;
d2 = d1[1];
#if d1 >= d2+1 Then
#if d2 == 0 or (d2 > 0 and d1 >= d2+3) Then
if d2 == 0 or (d2 > 0 and d1 >= d2+3) Then
{
var1 = Index;
Var2 = var1[1];
Var3= Var2[1];
sum1=0;
sumi1=0;
tl=TL_NEW(sDatE,sTimE,100,sDatE,sTimE,999999);
TL_SetSize(tl,0);
TL_SetColor(tl,Gray);
For cnt = 1 to (var1-Var2)
{
sum1=sum1+h[cnt];
sumi1=sumi1+1;
}
value1=sum1/sumi1;
For cnt = 49 DownTo 1
{
aa[cnt] = aa[cnt-1];
}
aa[0] = value1;
Var20=Money/100000000;
if Var20>30 Then
{
For cnt = 49 DownTo 1
{
cc[cnt]= cc[cnt-1];
}
cc[0]=value1*0.9;
Plot11(cc[0],"hma",DarkRed,Def,1);
}
}
}
Plot13(value1,"평균",LightGreen,Def,1);
if Bdate != Bdate[1] Then
Condition1 = False;
if condition1==False and (countif(crossup(h,cc[0]),200)>=1) Then
{
condition1=true;
find(1)
}