커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
4481
글번호 230811
지표
답변완료

제질문 드립니다.

요전 질문에 대한 제질문 입니다. 아래 수식 적용시 buyR==true 가 출력되지 안습니다. 잘못된부분 수정 부탁드립니다. input : aa(10),bb(20); var : gma10(0), gma20(0), buyR(False); gma10 = wma(C,aa); gma20 = wma(c,bb); if aa==2 and bb==60 Then { if ( c>O ) Then buyR=true; } else if aa==5 and bb==20 Then { if c>O Then buyR=true; } else buyR = false; if buyR==true and (c-O)>PriceScale*5 Then buy("buy1"); if c<O Then ExitLong ("buy1 청산"); MessageLog("buyR %s", buyR);
프로필 이미지
다올
2016-12-06
95
글번호 104703
시스템
답변완료

시가가고가돌파즉시매수

input : HP(5),LP(5); var : cnt(0),HH(0),LL(0); HH = dayhigh(1); for cnt = 1 to HP{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); } LL = dayLow(1); for cnt = 1 to LP{ if daylow(cnt) < LL Then LL = dayLow(cnt); } if crossup(c,HH) then buy(); if CrossDown(c,LL) Then sell(); 위수식에서 시가가 5일고가를 갭으로 돌파하면 시가즉시매수합니다 매도는반대 항상감사합니다
프로필 이미지
큰바위얼굴
2016-12-06
123
글번호 104702
시스템
답변완료

질문입니다.

일전에 일봉에서 1달간의 봉갯수를 카운트하는 지표를 질문드린적이 있습니다. 그에대한 답변이 이렇게 왔습니다. Input : X(1); Var : Month(0), nday(0), cnt(0), count(0), pre(0); # 차트 첫봉부터 현재봉까지 월수를 카운트 If bDate > bDate[1] + 30 Then Month = Month + 1; # 날짜에서 일만 추출 nday = Int(sDate%100); # 봉수 저장할 변수 초기값 pre = 0; # For 루프 200회 시행 For cnt = 1 To 200 { # 1봉전부터 200번째 봉전까지 월수카운트 값과 일자값을 가져와 # 현재봉 월수보다 N만큼 작고 날짜가 같은 봉이 있으면 If Month[cnt] == Month - X and nday[cnt] == nday Then { # pre에 봉수(cnt) 저장하고 pre = cnt; # cnt에 큰값을 주어 For문 빠져나옴 cnt = 10000; } # 현재봉 월수보다 N만큼 작은데 휴일등으로 날짜가 같은 봉이 없고 일수가 작은날 발생 If Month[cnt] == Month - X and nday[cnt] < nday Then { # pre에 cnt에서 1을 차감해서 저장 pre = cnt - 1; # cnt에 큰값을 주어 For문 빠져나옴 cnt = 10000; } # 이전월에 지정한 날짜와 같은날도 없고 작은날도 없이(주로 7월1일인데, 이전월은 1일이 휴일등으로 없을때) # 지정한 월 전월로 변경되면 If Month[cnt] < Month - X Then { # pre에 cnt에서 1을 차감하여 저장하고 pre = cnt - 1; # cnt에 큰값을 주어 For문을 빠져나옴 cnt = 10000; } } Plot1(pre, "yNNumD", BLACK); 여기서 질문입니다. 위 지표를 이용해서 이동평균선을 만들려고 하니 지표가 그려지지 않습니다. 즉, 위 지표에 다음과 같은 Var1 = Ma(C, pre); Plot1(Var1); 수식을 추가했는데, 아무런 지표가 그려지지 않습니다. 이동평균선을 그릴수 있게 지표를 수정부탁드립니다. 감사합니다.
프로필 이미지
yanartas
2016-12-06
107
글번호 104701
지표
답변완료

수식문위드립니다

안녕하세요 빨강봉이면 매수신호 파란봉이면 매도 신호 부탁드립니다 빨강봉 매수진입하고 다음 파란봉 이면 청산후 스윗칭 매도로 진입돼게 해주세요 24시간 계속 매수,매도 스윗칭으로요 목표가 청산은 틱수로 666틱으로 해주세요 Input : shortPeriod(10), longPeriod(20); var : PriceOsc(0); PriceOsc = OSCP(shortPeriod, longPeriod); if PriceOsc > 0 Then { Plot1(PriceOsc, "OSCP+"); Plot2(0, "OSCP-"); } Else { plot1(0,"OSCP+"); Plot2(PriceOsc, "OSCP-"); } PlotBaseLine1(0, "기준선 0");
프로필 이미지
이공주7
2016-12-06
97
글번호 104700
시스템
답변완료

1일전 상한가 종목 검색

수고하십니다. 아래식으로 1일전 상한가 종목을 검색했는데 붙임 파일과 같이 1일전 상한가가 아닌 종목이 2개가 나타나네요 올바른 식을 부탁드립니다. input : N(1); var : 상한가(0), UpLimit(0); var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else if date >= 20050328 and date < 20150615 Then UpLimit = (BP[0] * 1.15); Else UpLimit = (BP[0] * 1.30); if CodeCategory() == 2 then { if date >= 20030721 then { up1 = int(UpLimit/100+0.00001)*100; up2 = int(UpLimit/100+0.00001)*100; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/10+0.00001)*10; up7 = int(UpLimit/1+0.00001)*1; } } Else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } if CodeCategory() == 1 || CodeCategory() == 2 then { if sdate < 20101004 Then{ If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up6); } Else{ If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up7); } } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = up6; } } if H[N] >= 상한가[N] Then find(1);
프로필 이미지
자아준
2016-12-06
131
글번호 104696
종목검색
답변완료

수식좀 부탁드립니다.

매수조건 20일평균선이 상향이면서 현재시가가 5일평균선 아래서 시작시 시가+1틱 매수 매도조건 20일평균선이 하향이면서 현재시가가 5일평균선 위에서 시작시 시가-1틱 매도 수식부탁드립니다.
프로필 이미지
디얼디어
2016-12-06
117
글번호 104695
시스템
답변완료

질문입니다.

선물시장에서 정규장의 경우 장시작과 장마감에 동시호가 거래가 있습니다. 장시작 시에는 08:00~09:00, 장마감 시에는 15:35~15:45으로 알고 있습니다. 예를들어 봉완성 시 주문을 내는 타입의 신호 onclose와 atmarket 두가지 타입이 있다고 할때, 질문1. 장마감 시각 15:45에 조건이 만족되면, onclose는 시스템상 봉끝에 주문이 나갔다고 표시되는데, 실제로는 다음봉의 시작에 주문이 나가는 것인가요? 아니면 봉끝에 주문이 나가나요? 이는 장마감 봉이 아닌 일반봉에서도 똑같이 적용되나요? 질문2. 역시 장마감 시각 15:45에 조건이 만족되면, atmarket는 시스템상 다음봉 시작에 주문이 나갔다고 표시되는데, 실제로 다음봉 시작시 주문이 나가는 것인가요? 질문3. 만약, 복합장에서 거래를 하고 있다고 가정한다면, 정규장 마지막봉에서 조건이 맞아떨어지면 야간장 시작시 주문이 발생하게 되나요? 이는 onclose나 atmarket나 동일한가요? 질문4. 만약 야간장 종료시각에 조건이 만족된다면, 다음 거래일 정규장에 주문이 발생하는 것인가요? 역시 onclose나 atmarket 동일한가요? 질문5. 결국 onclose와 atmarket 주문은 시스템 상 표현되기를 전자는 봉마지막에 후자는 다음봉 시작에 표기만 될뿐, 실제 주문은 다음봉 시작 가격에 나가는 것이 맞는 것인가요? 질문에 답변부탁드리며, 혹시 제가 onclose와 atmarket에 대해 잘못 이해하고 있는 부분이 있다면 추가 설명부탁드립니다. 그리고 이 두 타입의 주문이 결국 같다면, 두가지로 구분해 놓은 이유도 궁금합니다. 감사합니다.
프로필 이미지
yanartas
2016-12-06
100
글번호 104694
시스템

오늘도수익 님에 의해서 삭제되었습니다.

프로필 이미지
오늘도수익
2016-12-06
13
글번호 104692
시스템
답변완료

10일이내 상한가 간 종목

수고하십니다. 이전 10일이내에 상한가가 1번 이상 간 종목을 아래 식으로 검색 해봤는데 결과 값에 오류가 있네요 올바른 식을 부탁합니다. input: N(10); var : 상한가(0), UpLimit(0); var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else UpLimit = (BP[0] * 1.15); if CodeCategory() == 2 then { if date >= 20030721 then { up1 = int(UpLimit/100+0.00001)*100; up2 = int(UpLimit/100+0.00001)*100; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/10+0.00001)*10; up7 = int(UpLimit/1+0.00001)*1; } } Else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } if CodeCategory() == 1 || CodeCategory() == 2 then { if sdate < 20101004 Then{ If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up6); } Else{ If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up7); } } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = up6; } } if countif(C >= 상한가,N) >= 1 Then find(1);
프로필 이미지
자아준
2016-12-06
130
글번호 104691
종목검색