커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

시가선 전략인데 시스템 작성 정중히 부탁드려봅니다

수고많으십니다. 예스랭귀지에 이제 막 입문한터라... 많이 부족합니다. 일단 생각해둔 것이 수식으로 어떻게 구현되는지 보면 빨리 배울것 같아 부탁드려봅니다. #기준차트 60분봉(또는 30분봉) #진입 1)당일시가선 상승돌파시 다음캔들 시가에서 진입 -양봉캔들의 저가부터 종가의 범위 안에 당일시가가 포함될 때 (조건: 저가<=당일시가<종가) 2)당일시가선 하락돌파시 다음캔들 시가에서 진입 -음봉캔들의 고가에서 종가의 범위 안에 당일시가가 포함될 때 (조건: 고가>=당일시가>종가) *즉, 1~3개 캔들이 연속으로 진입조건을 만족할 수 있음 *'다음캔들 시가 진입'을 위해서 '이전캔들 종가 진입'이 더 효과적이라면 그 방법이 더 나을것 같습니다. #손절 1)모든 진입 시 기본 손절 [input으로 입력: 기본값=매수&#8211;8틱(매도+8틱)] 2)진입 이후 첫 번째 캔들의 종가기준 수익이 2틱이상일 경우 손절라인 변경 (해당 캔들 몸통의 45%지점으로) -매수진입일 때 해당 캔들의 {시가+(종가-시가)*0.45}으로 설정 -매도진입일 때 해당 캔들의 {시가-(시가-종가)*0.45}으로 설정 3)손절 체결 없이 두 번째 캔들 완성시 역시 두 번째 캔들의 45%선으로 손절 갱신 -손절 체결이 없는한 그 이후 완성되는 캔들에서도 같은 방식으로 손절 갱신 #청산 1)지정한 시간(input으로 입력: 기본값=유럽시장 시간기준 22:30)부터는 당일거래중지 (포지션 모두 청산) 2)매수 진입시 이후 음봉캔들(종가<시가)이 완성되면 종가에서 즉시 청산 3)매도 진입시 이후 양봉캔들(종가>시가)이 완성되면 종가에서 즉시 청산 #필터 1)당일시가 돌파의 진입조건에서 양봉(또는 음봉)의 캔들몸통(시가에서 종가)이 2틱이하로 완성되면 진입불가 특히, 손절을 갱신하는 조건이 개인적으로 너무 어려워... 부탁드립니다. 전략의 발상은 당일시가선에서 멀어지는 캔들을 놓치지 않겠다는 의도입니다. 손절이 되어도 또 진입, 역방향으로 돌파되어도 다시 진입....추세추종전략이 되겠네요. 실전에 적용하려면 손을 많이이 봐야 하겠지만 이 전략을 기초로 공부하면서 응용해보겠습니다. 감사합니다.
프로필 이미지
마인드마스터
2016-12-12
170
글번호 104875
시스템
답변완료

상한가 표시 수정

수고하십니다. 그림과 같이16.8.22, 23일자 갭 상한가가 표시가 되지 않는 군요 바르게 수정 부탁합니다. 검색식은 아래와 같습니다. 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 >= 상한가 Then plot1(H,"검색");
프로필 이미지
자아준
2016-12-11
159
글번호 104874
검색
답변완료

시간외거래량

시간외거래에서 거래량이 높았던 종목만 소팅할수 있을까요?? 방법알려주시면 감사하겠습니다.
프로필 이미지
깅창
2016-12-11
122
글번호 104873
검색
답변완료

수식문의드립니다.

1. 코스피200선물 5분봉차트에서.. 외국인 순매수금액(매수금액-매도금액)에 대하여 당기봉이 그 직전봉 대비 50억 증가했으면 50, 외국인 순매수금액에 대하여 당기봉이 그 직전봉 대비 30억 감소했으면 -30.. 이렇게 수치화를 하여 지표식을 만들수 있을까요? 2. 코스피200선물 300틱 차트에서.. 당기틱와 완성시간(초단위)을 수치화하여 지표식으로 만들수 있을까요? 감사합니다.
프로필 이미지
지나리
2016-12-11
126
글번호 104872
지표
답변완료

input변수 설정( 재질문 )

다시 정리하여 질문드립니다. 동일 조건수식에 input변수를 변경해 복수의 조건으로 진입조건을 만드려고 합니다. ex) input : aa(10), bb(60), cc(120); Input : oP1(12), op2(5), op3(5); var : StoK(0),StoD(0); var : ma10(0), ma60(0), ma120(0); ma10 = ma(c,aa); ma60 = wma(c,bb); ma120 = wma(c,cc); StoK = StochasticsK(op1,op2); StoD = StochasticsD(op1,op2,op3); var : buy1(false), buy2(false); var : sell1(false), sell2(false); //input변수가 포함된 조건수식 if 조건수식 Then { gmaH = H; gmaL = L; } // 진입수식에서 변수를 설정하여 if aa==10 and bb==20 and cc==60 Then { if O<=gmaH and c>gmaH Then -->> aa==10 and bb==20 일때의 gmaH값 buy("buy1") } if aa==20 and bb==60 and op1==20 Then { -->> cc는 기본설정 120으로 입력되는지요? if O<=gmaH and c>gmaH Then -->> aa(20), bb(60), op1(20) 일때의 gmaH 값 buy("buy1") } if IsEntryName("buy1")==true Then { if c<gmaL Then exitlong("buy1청산"); } input변수를 변경하면서 변경된 변수를 조건수식에 직접입력하여 gmaH, gmaL을 구하면 경우의 수 만큼 수식이 늘어나기에 이를 진입조건수식에서 ( 또는 다른 방법이라도.. ) 설정함으로 수식을 간단히 만들고 싶습니다. 변수값을 다르게 설정함에 따른 각각의 gmaH, gmaL값을 기준으로 진입하도록 하며 각 변수에 대한 매수명을 "buy1"으로 통일
프로필 이미지
다올
2016-12-11
126
글번호 104871
시스템
답변완료

검색식 하나 부탁드려봅니다.

지표랑 시스템은 얼추 만들어서 시뮬 돌려보니까 괜찮게 나와서, 이제 종목을 좀 찾아보고자 검색식 하나 부탁드려봅니다. 찾고 싶은 종목은 1) PDI와 MDI의 차이가 기준선1을 통과한 경우(기준선과 골든크로스) 2) PDI와 MDI의 차이가 기준선2를 통과한 경우(기준선2와 데드크로스) 밑에 식은 제가 지표로 쓰는 식입니다. Input : Period(14), line(5), line2(-5); var : DI(0), DP(0), DM(0); DP = DIPlus(Period); DM = DIMinus(Period); DI = DP-DM; Plot1(DP-DM, "Directional Movement Index"); PlotBaseLine1(0, "기준선0"); PlotBaseLine2(11, "기준선11"); PlotBaseLine3(-11, "기준선-11"); Plot2(DP, "DIPlus"); Plot3(DM, "DIMinus");
프로필 이미지
가치투자꾼
2016-12-11
120
글번호 104870
검색

깅창 님에 의해서 삭제되었습니다.

프로필 이미지
깅창
2016-12-11
3
글번호 104869
지표
답변완료

안녕하세요

반갑습니다 아래RSI지표 입니다 현재 켄들에서26개 전까지만(적용) 표시하고 그전은 나타나지 않게할수있을까요 가능하다면 부탁합니다.감사합니다 Input : Period(9),SigPeriod(20); Plot1(RSI(Period), "RSI"); plot2(ema(RSI(Period),SigPeriod), "RSI시그널"); PlotBaseLine1(30, "기준선1"); PlotBaseLine2(50, "기준선2");
프로필 이미지
회원
2017-12-23
112
글번호 104868
지표
답변완료

수식부탁드립니다---------------

Input : Period1(1),Period5(3),단기급증(6),단기급감(3),단기급등락(30), 장기급증(0.8),장기급감(0.8),장기급등락(5),돌파(15),급변(100),단기급변(50),순매수급증보정(0.6), 순매수급감보정(0.6),순매수보정한계(50)/*,고저기간(0)*/ ,LENGTH1(2) ,LENGTH2(20),과열(10),되돌림(0),tsfPeriod(14); Var : va(0); Var : va1(0); Var : va2(0); Var : va3(0); Var : va4(0); Var : va11(0); Var : va12(0); Var : va15(0); Var : va33(0); Var : va38(0); Var : va77(0); Var : va87(0); Var : va88(0); Var : value(0); Var : vp(0),II(0),AA(0),BB(0); var : N(0),T(0),EP1(0),EP2(0); var : ema11(0),ema12(0),ema13(0); var : ema21(0),ema22(0),ema23(0),cnt1(0),cnt2(0); var : vmin(0),vmax(0); var : TSF(0); EP1 = 2/(LENGTH1+1); EP2 = 2/(LENGTH2+1); if Bdate != Bdate[1] Then{ II = 0; BB = 0; AA = 0; } II = II+1; BB = BB+Bids; AA = AA+Asks; if II < Period5 Then{ va = (BB/II)-(AA/II)+8000; } else{ va = ma(bids,period5)-ma(asks,period5)+8000; } if II < Period1 Then{ va1 = (BB/II)-(AA/II)+8000; va2 = (BB/II)-(AA/II)+8000; va3 = (BB/II)-(AA/II)+8000; } //순매수에 8000 더해 양의값만들기---------------------------- else{ va1 = ma(bids,period1)-ma(asks,period1)+8000; va2 = ma(bids,period1)-ma(asks,period1)+8000; va3 = ma(bids,period1)-ma(asks,period1)+8000; va4 = ma(bids,period5)-ma(asks,period5)+8000; } -------------------------------------------------------- 위 va1,va2,va3,va4를 일간갭보정을하고싶슴니다(전일마지막지표값이 오늘 시작지표값이되게) 지표값은 안보고 방향만 참고하려고 합니다 항상감사합니다 수고하세요
프로필 이미지
leekss1
2016-12-11
120
글번호 104867
지표