커뮤니티

조건검색식 문의드립니다.

프로필 이미지
도서관
2009-06-11 10:37:19
585
글번호 22728
답변완료
안녕하세요, 조건검색식으로 표현해보려고 하는데 모르겠어서 문의드립니다. - 과거 종목중에(예로 120일동안) - 2일전 종가가 상한가였고 - 1일전 시가가 상한가였으나 - 1일전 종가는 0% 에서 +5% 사이로 끝난것 (그러니까 시가 상한가로 시작해서 보합에서 +5%대 사이까지 밀려서 끝난 종목) - 당일에는 시가가 전일보다 보합이나 +권으로 시작했던 종목을 검색해 보고 싶습니다. 거래소상한가.yfu / 코스닥상한가.yfu 파일은 function 폴더에 넣었구요, 아래와 같이 작성했는데 period 앞에 콤마에서 에러가 뜨는데 왜 그런지 모르겠습니다. 그리고 동시호가 예상체결가격을 가지고도 이러한 식이 검색 가능할까요? =============================================================================== input : n(1), percent(5), period(120); if ( ( (C[2] == 거래소상한가()[n+1]) && (O[1] == 거래소상한가()[n]) && (C[1] > C[2]) && (C[1] < C[2] * (1 + percent/100)) && (C[0] >= C[1]) ) , period ) then var1 = 1; else var1 = 0; find(var1); if ( ( (C[2] == 코스닥상한가()[n+1]) && (O[1] == 코스닥상한가()[n]) && (C[1] > C[2]) && (C[1] < C[2] * (1 + percent/100)) && (C[0] >= C[1]) ) , period ) then var2 = 1; else var2 = 0; find(var2); ==========================================================================
검색
답변 4
프로필 이미지

예스스탁 예스스탁 답변

2009-06-11 10:53:22

안녕하세요 예스스탁입니다. if문의 ,Perioid에 사용이 명확하지 않습니다. 예를 들어 120일 동안에 조건이 만족한 횟수를 찾는다면 countif(조건,Period)인데 Countif(가 생략되어 있는 형태입니다. 즉 if 조건,Period 라고 작성하신 것과 같습니다. 아래는 수정한 식입니다. input : n(1), percent(5), period(120); if countif(( (C[2] == 거래소상한가()[n+1]) && (O[1] == 거래소상한가()[n]) && (C[1] > C[2]) && (C[1] < C[2] * (1 + percent/100)) && (C[0] >= C[1]) ), period) then var1 = 1; else var1 = 0; find(var1); if countif(( (C[2] == 코스닥상한가()[n+1]) && (O[1] == 코스닥상한가()[n]) && (C[1] > C[2]) && (C[1] < C[2] * (1 + percent/100)) && (C[0] >= C[1]) ), period) >= 1 then var2 = 1; else var2 = 0; find(var2); 동시호가 예상체결가로는 검색을 하실 수 없습니다. 즐거운 하루되세요 > 도서관 님이 쓴 글입니다. > 제목 : 조건검색식 문의드립니다. > 안녕하세요, 조건검색식으로 표현해보려고 하는데 모르겠어서 문의드립니다. - 과거 종목중에(예로 120일동안) - 2일전 종가가 상한가였고 - 1일전 시가가 상한가였으나 - 1일전 종가는 0% 에서 +5% 사이로 끝난것 (그러니까 시가 상한가로 시작해서 보합에서 +5%대 사이까지 밀려서 끝난 종목) - 당일에는 시가가 전일보다 보합이나 +권으로 시작했던 종목을 검색해 보고 싶습니다. 거래소상한가.yfu / 코스닥상한가.yfu 파일은 function 폴더에 넣었구요, 아래와 같이 작성했는데 period 앞에 콤마에서 에러가 뜨는데 왜 그런지 모르겠습니다. 그리고 동시호가 예상체결가격을 가지고도 이러한 식이 검색 가능할까요? =============================================================================== input : n(1), percent(5), period(120); if ( ( (C[2] == 거래소상한가()[n+1]) && (O[1] == 거래소상한가()[n]) && (C[1] > C[2]) && (C[1] < C[2] * (1 + percent/100)) && (C[0] >= C[1]) ) , period ) then var1 = 1; else var1 = 0; find(var1); if ( ( (C[2] == 코스닥상한가()[n+1]) && (O[1] == 코스닥상한가()[n]) && (C[1] > C[2]) && (C[1] < C[2] * (1 + percent/100)) && (C[0] >= C[1]) ) , period ) then var2 = 1; else var2 = 0; find(var2); ==========================================================================
프로필 이미지

도서관

2009-06-11 12:03:02

답변 감사합니다. 저는 지난 120일 동안 아래 조건을 모두 만족했던 종목들을 검색하려고 했던건데 의외로 한 종목도 안나오는군요. - 과거 종목중에(예로 120일동안) - 2일전 종가가 상한가였고 - 1일전 시가가 상한가였으나 - 1일전 종가는 0% 에서 +5% 사이로 끝난것 (그러니까 시가 상한가로 시작해서 보합에서 +5%대 사이까지 밀려서 끝난 종목) - 당일에는 시가가 전일보다 보합이나 +권으로 시작 조건식에 해당하는 종목이 없었던 것은 아니구요, 혹시 '거래소상한가', '코스닥상한가'는 Close 기준으로만 작용하는 펑션인가요? 왜냐하면 아래 식에 제가 '(O[1] == 거래소상한가()[n]) &&'으로 시가를 써넣은게 문제가 되서 그러나 해서요. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 조건검색식 문의드립니다. > 안녕하세요 예스스탁입니다. if문의 ,Perioid에 사용이 명확하지 않습니다. 예를 들어 120일 동안에 조건이 만족한 횟수를 찾는다면 countif(조건,Period)인데 Countif(가 생략되어 있는 형태입니다. 즉 if 조건,Period 라고 작성하신 것과 같습니다. 아래는 수정한 식입니다. input : n(1), percent(5), period(120); if countif(( (C[2] == 거래소상한가()[n+1]) && (O[1] == 거래소상한가()[n]) && (C[1] > C[2]) && (C[1] < C[2] * (1 + percent/100)) && (C[0] >= C[1]) ), period) then var1 = 1; else var1 = 0; find(var1); if countif(( (C[2] == 코스닥상한가()[n+1]) && (O[1] == 코스닥상한가()[n]) && (C[1] > C[2]) && (C[1] < C[2] * (1 + percent/100)) && (C[0] >= C[1]) ), period) >= 1 then var2 = 1; else var2 = 0; find(var2); 동시호가 예상체결가로는 검색을 하실 수 없습니다. 즐거운 하루되세요 > 도서관 님이 쓴 글입니다. > 제목 : 조건검색식 문의드립니다. > 안녕하세요, 조건검색식으로 표현해보려고 하는데 모르겠어서 문의드립니다. - 과거 종목중에(예로 120일동안) - 2일전 종가가 상한가였고 - 1일전 시가가 상한가였으나 - 1일전 종가는 0% 에서 +5% 사이로 끝난것 (그러니까 시가 상한가로 시작해서 보합에서 +5%대 사이까지 밀려서 끝난 종목) - 당일에는 시가가 전일보다 보합이나 +권으로 시작했던 종목을 검색해 보고 싶습니다. 거래소상한가.yfu / 코스닥상한가.yfu 파일은 function 폴더에 넣었구요, 아래와 같이 작성했는데 period 앞에 콤마에서 에러가 뜨는데 왜 그런지 모르겠습니다. 그리고 동시호가 예상체결가격을 가지고도 이러한 식이 검색 가능할까요? =============================================================================== input : n(1), percent(5), period(120); if ( ( (C[2] == 거래소상한가()[n+1]) && (O[1] == 거래소상한가()[n]) && (C[1] > C[2]) && (C[1] < C[2] * (1 + percent/100)) && (C[0] >= C[1]) ) , period ) then var1 = 1; else var1 = 0; find(var1); if ( ( (C[2] == 코스닥상한가()[n+1]) && (O[1] == 코스닥상한가()[n]) && (C[1] > C[2]) && (C[1] < C[2] * (1 + percent/100)) && (C[0] >= C[1]) ) , period ) then var2 = 1; else var2 = 0; find(var2); ==========================================================================
프로필 이미지

예스스탁 예스스탁 답변

2009-06-11 14:22:05

안녕하세요 예스스탁입니다. 1. 우선 검색시에 검색에 필요한 봉갯수를 넉넉히 150으로 설정하시고 검색하시기 바랍니다. 2. O[1] == 거래소상한가()[n]) 은 한봉전 시가가 상한가[n]과 같다라는 의미입니다. 상한가 이상이으로 설정하시기 바랍니다. 상한가와 가격을 비교하는 내용이므로 종가,시가,고가,저가 모두 사용합니다. 3. 상한가를 계산한 값과 지정된 가격이 상이할 수 있으니 >=로 사용하시기 바랍니다. 4. 하나의 식에는 find가 하나만 있어야 합니다. 1. input : n(1), percent(5), period(120); if countif(( (C[2] >= 거래소상한가()[n+1]) && (O[1] >= 거래소상한가()[n]) && (C[1] > C[2]) && (C[1] < C[2] * (1 + percent/100)) && (C[0] >= C[1]) ), period) then var1 = 1; else var1 = 0; find(var1); 2. input : n(1), percent(5), period(120); if countif(( (C[2] >= 코스닥상한가()[n+1]) && (O[1] >= 코스닥상한가()[n]) && (C[1] > C[2]) && (C[1] < C[2] * (1 + percent/100)) && (C[0] >= C[1]) ), period) >= 1 then var2 = 1; else var2 = 0; find(var2); 즐거운 하루되세요 > 도서관 님이 쓴 글입니다. > 제목 : Re : Re : 다시 문의드립니다. > 답변 감사합니다. 저는 지난 120일 동안 아래 조건을 모두 만족했던 종목들을 검색하려고 했던건데 의외로 한 종목도 안나오는군요. - 과거 종목중에(예로 120일동안) - 2일전 종가가 상한가였고 - 1일전 시가가 상한가였으나 - 1일전 종가는 0% 에서 +5% 사이로 끝난것 (그러니까 시가 상한가로 시작해서 보합에서 +5%대 사이까지 밀려서 끝난 종목) - 당일에는 시가가 전일보다 보합이나 +권으로 시작 조건식에 해당하는 종목이 없었던 것은 아니구요, 혹시 '거래소상한가', '코스닥상한가'는 Close 기준으로만 작용하는 펑션인가요? 왜냐하면 아래 식에 제가 '(O[1] == 거래소상한가()[n]) &&'으로 시가를 써넣은게 문제가 되서 그러나 해서요. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 조건검색식 문의드립니다. > 안녕하세요 예스스탁입니다. if문의 ,Perioid에 사용이 명확하지 않습니다. 예를 들어 120일 동안에 조건이 만족한 횟수를 찾는다면 countif(조건,Period)인데 Countif(가 생략되어 있는 형태입니다. 즉 if 조건,Period 라고 작성하신 것과 같습니다. 아래는 수정한 식입니다. input : n(1), percent(5), period(120); if countif(( (C[2] == 거래소상한가()[n+1]) && (O[1] == 거래소상한가()[n]) && (C[1] > C[2]) && (C[1] < C[2] * (1 + percent/100)) && (C[0] >= C[1]) ), period) then var1 = 1; else var1 = 0; find(var1); if countif(( (C[2] == 코스닥상한가()[n+1]) && (O[1] == 코스닥상한가()[n]) && (C[1] > C[2]) && (C[1] < C[2] * (1 + percent/100)) && (C[0] >= C[1]) ), period) >= 1 then var2 = 1; else var2 = 0; find(var2); 동시호가 예상체결가로는 검색을 하실 수 없습니다. 즐거운 하루되세요 > 도서관 님이 쓴 글입니다. > 제목 : 조건검색식 문의드립니다. > 안녕하세요, 조건검색식으로 표현해보려고 하는데 모르겠어서 문의드립니다. - 과거 종목중에(예로 120일동안) - 2일전 종가가 상한가였고 - 1일전 시가가 상한가였으나 - 1일전 종가는 0% 에서 +5% 사이로 끝난것 (그러니까 시가 상한가로 시작해서 보합에서 +5%대 사이까지 밀려서 끝난 종목) - 당일에는 시가가 전일보다 보합이나 +권으로 시작했던 종목을 검색해 보고 싶습니다. 거래소상한가.yfu / 코스닥상한가.yfu 파일은 function 폴더에 넣었구요, 아래와 같이 작성했는데 period 앞에 콤마에서 에러가 뜨는데 왜 그런지 모르겠습니다. 그리고 동시호가 예상체결가격을 가지고도 이러한 식이 검색 가능할까요? =============================================================================== input : n(1), percent(5), period(120); if ( ( (C[2] == 거래소상한가()[n+1]) && (O[1] == 거래소상한가()[n]) && (C[1] > C[2]) && (C[1] < C[2] * (1 + percent/100)) && (C[0] >= C[1]) ) , period ) then var1 = 1; else var1 = 0; find(var1); if ( ( (C[2] == 코스닥상한가()[n+1]) && (O[1] == 코스닥상한가()[n]) && (C[1] > C[2]) && (C[1] < C[2] * (1 + percent/100)) && (C[0] >= C[1]) ) , period ) then var2 = 1; else var2 = 0; find(var2); ==========================================================================
프로필 이미지

도서관

2009-06-12 00:14:24

Re : Re : Re : Re : 답변 감사합니다.(내용 없음)