커뮤니티

종목검색 질문 드립니다.

프로필 이미지
야근시로
2022-07-08 15:39:18
1569
글번호 160594
답변완료
안녕하세요. 이번에 처음 예스랭귀지를 접해서 공부하고 있습니다. 프로그램 실행 방식에 대해서 여쭤보고 싶은게 있는데요, 예스랭귀지 함수를 작성하게 되면, 시간순으로 차트의 데이터를 읽어오고, 그 읽어온 데이터를 예스랭귀지 함수의 INPUT이 되어 모든 시간에 대한 처리를 위해 반복해서 실행되는 구조가 아닐까 추측했는데요. 질문은, 제가 불린저밴드의 하한선을 상향 돌파하고, 기간별(3개월) 평균거래량의 (1000%)이상의 일봉거래량 을 가지는 종목을 종목검색한다고 했을때 두가지를 만족하는 식을 어떻게 작성할 수 있을까요? 불린저밴드 조건을 만족하는 종목검색을 시행후, 평균거래량 조건검색을 결과내검색으로 해야하나요? 아니면 하나의 스크립트에서 끝낼 수 있는 방법이 있을까요? 아래와 같이 작성하게되면, bolDn = BollBandDown(period,multiD); maThreeMonth = ma(C,90); if CrossUp(C, bolDn) Then{ if V > mathreeMonth[1] * 10 Then Find(1); } 불린저 밴드를 만족하면서 그 시점에 동시에 평균거래량 조건을 만족하는 차트만 판별되는것이 아닌가 해서요. 추가로 검색조건 질문을 드리고 싶은게 있습니다. 종목검색 : 1. 이평선(5,20,60,120) 정/역배열 후 수렴 2. 전체유동주식 대비 회전율(80%)이상의 일봉 거래량 자동매매 : 1. 일봉상 종가가 20일선 상향 돌파시 종가매수 2. 30분봉상 종가가 20일선 상향 돌파시 시장가 매수/20일선 가격을 호가에 맞추어 반올림 후 지정가 매수 3. 일봉상 종가가 5일선 하향 돌파시 종가 매도 4. 30분봉상 종가가 5일선 하향돌파시 시장가 매도 /5일선 가격을 호가에 맞추어 반올림 후 지정가 매도 감사합니다.
종목검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-07-08 16:36:10

안녕하세요 예스스탁입니다. 1 if CrossUp(C, bolDn) Then{ if V > mathreeMonth[1] * 10 Then Find(1); } 위와 같이 작성하시면 한봉에서 돌파와 거래량조건이 동시만족하는 종목을 찾는식입니다. 아래와 같이 작성한것과 같습니다. if CrossUp(C, bolDn) and V > mathreeMonth[1] * 10 Then Find(1); 만약 돌파와 거래량 조건이 같은 봉이 아니고 돌파이후에 이평조건이 만족한것을 구현하신 다면 아래와 같이 작성하셔야 합니다. if CrossUp(C, bolDn) Then T = 1; if CrossDown(C, bolDn) Then T = 0; if T == 1 and V > mathreeMonth[1] * 10 Then T = 2; if T == 2 Then Find(1); 2 maThreeMonth = ma(C,90); ma(c,90)은 종가이평입니다. ma(v,90)으로 변경하셔야 합니다. 3 전체유동주식 대비 회전율(80%)이상의 일봉 거래량 랭귀지에 전체유동주식수가 제공되지 않습니다. 올리신 내용은 가능하지 않습니다. 4 시스템에서 종가매수는 신호상으로 발생시킬수 있지만 실제 종가가 들어오면 장이 종료된 이후이고 랭귀지에서 if문이 봉완성시로 판단합니다. 봉완성은 다음봉시가가 수신될떄입니다. 그러므로 일봉종가에서 신호가 발생하면 실제 주문은 다음날 시초가에 발생합니다. 수식안에서는 실제 주문가격을 지정하는 부분이 없습니다. 주문가격은 시스템적용시 나타나는 시스템 트레이딩 설정창의 매매탭에서 진입가격과 청산가격으로 지정한 가격으로 주문이 발생합니다. 하지만 "20일선 가격을 호가에 맞추어 반올림 후 지정가 매수"와 같이 수식내 특정가격으로 설정하는 옵션은 없습니다. input : dayp(20),P(20); var : cnt(0),sum1(0),mav1(0),sum2(0),mav2(0),avgv(0); #일봉이평 sum1 = 0; sum2 = 0; For cnt = 0 to dayp-1 { sum1 = sum1+DayClose(cnt); sum2 = sum2+DayClose(cnt+1); } #당일 일봉이평 mav1 = sum1/dayp; #전일 일봉이평 mav2 = sum2/dayp; if NextBarSdate != sDate Then { if c > mav1 and DayClose(1) < mav2 Then Buy(); if c < mav1 and DayClose(1) > mav2 Then Sell(); } #분봉이평 avgv = ma(C,P); if CrossUp(c,avgv) Then Buy(); if CrossDown(c,avgv) Then Sell(); 즐거운 하루되세요 > 야근시로 님이 쓴 글입니다. > 제목 : 종목검색 질문 드립니다. > 안녕하세요. 이번에 처음 예스랭귀지를 접해서 공부하고 있습니다. 프로그램 실행 방식에 대해서 여쭤보고 싶은게 있는데요, 예스랭귀지 함수를 작성하게 되면, 시간순으로 차트의 데이터를 읽어오고, 그 읽어온 데이터를 예스랭귀지 함수의 INPUT이 되어 모든 시간에 대한 처리를 위해 반복해서 실행되는 구조가 아닐까 추측했는데요. 질문은, 제가 불린저밴드의 하한선을 상향 돌파하고, 기간별(3개월) 평균거래량의 (1000%)이상의 일봉거래량 을 가지는 종목을 종목검색한다고 했을때 두가지를 만족하는 식을 어떻게 작성할 수 있을까요? 불린저밴드 조건을 만족하는 종목검색을 시행후, 평균거래량 조건검색을 결과내검색으로 해야하나요? 아니면 하나의 스크립트에서 끝낼 수 있는 방법이 있을까요? 아래와 같이 작성하게되면, bolDn = BollBandDown(period,multiD); maThreeMonth = ma(C,90); if CrossUp(C, bolDn) Then{ if V > mathreeMonth[1] * 10 Then Find(1); } 불린저 밴드를 만족하면서 그 시점에 동시에 평균거래량 조건을 만족하는 차트만 판별되는것이 아닌가 해서요. 추가로 검색조건 질문을 드리고 싶은게 있습니다. 종목검색 : 1. 이평선(5,20,60,120) 정/역배열 후 수렴 2. 전체유동주식 대비 회전율(80%)이상의 일봉 거래량 자동매매 : 1. 일봉상 종가가 20일선 상향 돌파시 종가매수 2. 30분봉상 종가가 20일선 상향 돌파시 시장가 매수/20일선 가격을 호가에 맞추어 반올림 후 지정가 매수 3. 일봉상 종가가 5일선 하향 돌파시 종가 매도 4. 30분봉상 종가가 5일선 하향돌파시 시장가 매도 /5일선 가격을 호가에 맞추어 반올림 후 지정가 매도 감사합니다.