커뮤니티

종목이 안나와요

프로필 이미지
개성상인
2020-09-10 16:12:05
826
글번호 142242
답변완료

첨부 이미지

아래의수식에서 250일동안의 누적인 sum값에 대해 # datep(250) 1. 25일 기간 위 sum값의 최고값의 절대값과 최저값의 절대값 중 큰 값이 # k(25) 500일 기간 위 sum값의 최고값의 절대값과 최저값의 절대값 중 큰 값의 # n(500) 30% 미만인 주식 종목 검색식인데요.... 첨부와 같이 지표로 만들어 보면 많이 나오는데 종목이 검색이 되지를 않네요...??? 2. 180일동안의 sum값과 120일동안의 sum값에 대해서도 # datep(250), datep(180), datep(120) 동시에 만족하는 종목을 검색하려면 어떻게 하나요? 3. 과거특정일에서 그 이전 데이타를 검색하는 수식도 부탁드립니다. ( 예를 들어 2020-08-31에 검색했을때의 검색값 ) 과거특정일에서부터 N일 동안의 검색 데이타를 모두 검색되면 더욱 좋겠습니다. ( 예를 들어 2020-08-01 ~ 2020-08-31 한달 동안에 매일 검색했을때 나올 모든 검색값 N일 = 31일 ) Input : datep(250), n(500), k(25); VAR : CNT(0), SUM(0),hh(0),hi(0),ll(0); SUM = 0; For cnt = 0 to datep { if c[cnt] > c[cnt+1] Then sum = sum + v[cnt]; Else if c[cnt] < c[cnt+1] Then sum = sum - v[cnt]; Else sum = sum + 0 ; } IF abs(highest(sum,n)) >= abs(lowest(sum,n)) Then var1 = abs(highest(sum,n)); Else var1 = abs(lowest(sum,n)); IF abs(highest(sum,k)) >= abs(lowest(sum,k)) Then var2 = abs(highest(sum,k)); Else var2 = abs(lowest(sum,k)); If Var2 < Var1*0.3 Then find(1);
종목검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-09-10 18:05:49

안녕하세요 예스스탁입니다. 1 datep(250),k(25),n(500) 종목검색은 최대 500봉까지만 제공됩니다. 500봉 이상 요구되는 내용은 검색할수 없습니다. sum을 계산하기 위해서 최소 과거 250개의 봉이 필요하고 다시 이 sum의 500개를 모아 최고와 최저를 계산하기 위해서는 총 750개의 봉이 필요합니다. 최대제공봉수가 500봉이므로 해당 봉수 감안해서 기간 지정하셔야 합니다. 아래 지표 적용해 보시면 계산에 필요한 최소봉개수를 지표로 보실수 있습니다. Input : datep(250), n(500), k(25); VAR : CNT(0), SUM(0),hh(0),hi(0),ll(0); SUM = 0; For cnt = 0 to datep { if c[cnt] > c[cnt+1] Then sum = sum + v[cnt]; Else if c[cnt] < c[cnt+1] Then sum = sum - v[cnt]; Else sum = sum + 0 ; } IF abs(highest(sum,n)) >= abs(lowest(sum,n)) Then var1 = abs(highest(sum,n)); Else var1 = abs(lowest(sum,n)); IF abs(highest(sum,k)) >= abs(lowest(sum,k)) Then var2 = abs(highest(sum,k)); Else var2 = abs(lowest(sum,k)); Plot1(MaxBarsBack); 2 for문으로 작성되는 내용은 간단히 accumn함수로 대체해 드립니다. 기간은 좀 작게 설정해 드립니다. 최대제공 봉수인 500봉 감안하셔서 기간 지정하시기 바랍니다. Input : datep1(20),datep2(18),datep3(12),n(100), k(25); VAR : value(0),sum1(0),sum2(0),sum3(0),hh(0),hi(0),ll(0); if c > c[1] Then value = v; Else if c < c[1] Then value = -v; Else value = 0; sum1 = AccumN(value,datep1+1); sum2 = AccumN(value,datep2+1); sum3 = AccumN(value,datep3+1); IF abs(highest(sum1,n)) >= abs(lowest(sum1,n)) Then var1 = abs(highest(sum1,n)); Else var1 = abs(lowest(sum1,n)); IF abs(highest(sum1,k)) >= abs(lowest(sum1,k)) Then var2 = abs(highest(sum1,k)); Else var2 = abs(lowest(sum1,k)); IF abs(highest(sum2,n)) >= abs(lowest(sum2,n)) Then var3 = abs(highest(sum2,n)); Else var3 = abs(lowest(sum2,n)); IF abs(highest(sum2,k)) >= abs(lowest(sum2,k)) Then var4 = abs(highest(sum2,k)); Else var4 = abs(lowest(sum2,k)); IF abs(highest(sum3,n)) >= abs(lowest(sum3,n)) Then var5 = abs(highest(sum3,n)); Else var5 = abs(lowest(sum3,n)); IF abs(highest(sum3,k)) >= abs(lowest(sum3,k)) Then var6 = abs(highest(sum3,k)); Else var6 = abs(lowest(sum3,k)); If Var2 < Var1*0.3 and Var4 < Var2*0.3 and Var6 < Var5*0.3 Then find(1); 3-1 특정일 지정 또한 기간은 좀 작게 설정해 드립니다. 최대제공 봉수인 500봉 감안하셔서 기간 지정하시기 바랍니다. Input : datep(25), n(100), k(25),nd(20200831); VAR : value(0), CNT(0), SUM(0),hh(0),hi(0),ll(0); if c > c[1] Then value = v; Else if c < c[1] Then value = -v; Else value = 0; SUM = AccumN(value,datep+1); IF abs(highest(sum,n)) >= abs(lowest(sum,n)) Then var1 = abs(highest(sum,n)); Else var1 = abs(lowest(sum,n)); IF abs(highest(sum,k)) >= abs(lowest(sum,k)) Then var2 = abs(highest(sum,k)); Else var2 = abs(lowest(sum,k)); If sDate == nd and Var2 < Var1*0.3 Then Condition1 = true; if Condition1 == true Then find(1); 3-2 특정기간 Input : datep(250), n(500), k(25),sd(20200801),ed(20200831); VAR : value(0), CNT(0), SUM(0),hh(0),hi(0),ll(0); if c > c[1] Then value = v; Else if c < c[1] Then value = -v; Else value = 0; SUM = AccumN(value,datep+1); IF abs(highest(sum,n)) >= abs(lowest(sum,n)) Then var1 = abs(highest(sum,n)); Else var1 = abs(lowest(sum,n)); IF abs(highest(sum,k)) >= abs(lowest(sum,k)) Then var2 = abs(highest(sum,k)); Else var2 = abs(lowest(sum,k)); If sDate >= SD AND sDate <= ED and Var2 < Var1*0.3 Then Condition1 = true; if Condition1 == true Then find(1); 즐거운 하루되세요 > 개성상인 님이 쓴 글입니다. > 제목 : 종목이 안나와요 > 아래의수식에서 250일동안의 누적인 sum값에 대해 # datep(250) 1. 25일 기간 위 sum값의 최고값의 절대값과 최저값의 절대값 중 큰 값이 # k(25) 500일 기간 위 sum값의 최고값의 절대값과 최저값의 절대값 중 큰 값의 # n(500) 30% 미만인 주식 종목 검색식인데요.... 첨부와 같이 지표로 만들어 보면 많이 나오는데 종목이 검색이 되지를 않네요...??? 2. 180일동안의 sum값과 120일동안의 sum값에 대해서도 # datep(250), datep(180), datep(120) 동시에 만족하는 종목을 검색하려면 어떻게 하나요? 3. 과거특정일에서 그 이전 데이타를 검색하는 수식도 부탁드립니다. ( 예를 들어 2020-08-31에 검색했을때의 검색값 ) 과거특정일에서부터 N일 동안의 검색 데이타를 모두 검색되면 더욱 좋겠습니다. ( 예를 들어 2020-08-01 ~ 2020-08-31 한달 동안에 매일 검색했을때 나올 모든 검색값 N일 = 31일 ) Input : datep(250), n(500), k(25); VAR : CNT(0), SUM(0),hh(0),hi(0),ll(0); SUM = 0; For cnt = 0 to datep { if c[cnt] > c[cnt+1] Then sum = sum + v[cnt]; Else if c[cnt] < c[cnt+1] Then sum = sum - v[cnt]; Else sum = sum + 0 ; } IF abs(highest(sum,n)) >= abs(lowest(sum,n)) Then var1 = abs(highest(sum,n)); Else var1 = abs(lowest(sum,n)); IF abs(highest(sum,k)) >= abs(lowest(sum,k)) Then var2 = abs(highest(sum,k)); Else var2 = abs(lowest(sum,k)); If Var2 < Var1*0.3 Then find(1);