커뮤니티

질문드리겠습니다

프로필 이미지
yamu
2025-03-20 12:46:41
394
글번호 189360
답변완료
수고가 많으십니다 종목 검색 관련 질문을 부탁드립니다 질문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) }
종목검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

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) }