커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의

5ma 대비 종가 등락률이 20%이상 500%이하 120ma 대비 저가 등락률이 -100%이상 -20%이하인 종목 종목검색식 부탁합니다. 120ma는 종가가 아닌 저가 등락률입니다.
프로필 이미지
엉덩공주
2021-03-11
804
글번호 147013
종목검색
답변완료

같은 질문을 여러번 드려서 죄송합니다

if MarketPosition == 1 Then { if C < lowest(L,15)[BarsSinceEntry] Then ExitLong("bx1"); if Highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*틱1 Then ExitLong("bx2",AtStop,EntryPrice+수익틱1*PriceScale); if Highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*틱2 Then ExitLong("bx3",AtStop,EntryPrice+수익틱2*PriceScale); if Highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*틱3 Then ExitLong("bx4",AtStop,EntryPrice+수익틱3*PriceScale); if Highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*틱4 Then ExitLong("bx5",AtStop,EntryPrice+수익틱4*PriceScale); if Highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*틱5 Then ExitLong("bx6",AtStop,EntryPrice+수익틱5*PriceScale); ExitLong("bx7",AtLimit,EntryPrice+최종완청틱 *PriceScale); } if MarketPosition == -1 Then { if C > Highest(H,15)[BarsSinceEntry] Then ExitShort("sx1"); if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*틱1 Then ExitShort("sx2",AtStop,EntryPrice+수익틱1*PriceScale); if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*틱2 Then ExitShort("sx3",AtStop,EntryPrice+수익틱2*PriceScale); if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*틱3 Then ExitShort("sx4",AtStop,EntryPrice+수익틱3*PriceScale); if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*틱4 Then ExitShort("sx5",AtStop,EntryPrice+수익틱4*PriceScale); if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*틱5 Then ExitShort("sx6",AtStop,EntryPrice+수익틱5*PriceScale); ExitShort("sx7",AtLimit,EntryPrice+최종완청틱 *PriceScale); } 매수 매도 손절 문제 매도 수익문제 매수는 정상 최송완정문제 이렇게 확인좀 부탁합니다 중간 중간에 기호로 변경해도 정답이 없네요 손절 --- 진입봉 기준 이전 15봉중에서 매도는 최고가 매수는 최저가 이탈시 손절입니다 청산 --- 50틱 수익나고 내려오면 10틱 챙기자 이런 식입니다 꼼꼼이좀 봐주세요 참 손절보다 다음 신호가 나오면 신호가 우선입니다 손절도 외부 변수로 가능하면 부탁합니다
프로필 이미지
kjdkdh
2021-03-11
885
글번호 147012
시스템
답변완료

Re : 지표 문의드립니다

아래와 같이 수고스런 답변주셔서 대단히 감사드립니다. 한번만 더 요청을 드립니다. 일봉의 2일이평과 5일이평도 추가하고 싶습니다. 번거롭지만 꼭 부탁드립니다. 감사합니다 꾸벅 안녕하세요 예스스탁입니다. input : ntime1(2),P1(60),P2(120); input : ntime2(30); var : S1(0),D1(0),TM(0),TF1(0),cnt(0),TF2(0); var : sum1(0),mav1(0),sum2(0),mav2(0); Array : CC[200](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF1 = TM%ntime1; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime1 > 1 and TF1 < TF1[1]) or (Bdate == Bdate[1] and ntime1 > 1 and TM >= TM[1]+ntime1) or (Bdate == Bdate[1] and ntime1 == 1 and TM > TM[1]) Then { for cnt = 1 to 199 { CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; if CC[P1-1] > 0 then { sum1 = 0; for cnt = 0 to P1-1 { sum1 = sum1+CC[cnt]; } mav1 = sum1/P1; #plot1(mav1,"이평1"); } if CC[P2-1] > 0 then { sum2 = 0; for cnt = 0 to P2-1 { sum2 = sum2+CC[cnt]; } mav2 = sum2/P2; #plot2(mav2,"이평2"); } TF2 = TM%ntime2; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime2 > 1 and TF2 < TF2[1]) or (Bdate == Bdate[1] and ntime2 > 1 and TM >= TM[1]+ntime2) or (Bdate == Bdate[1] and ntime2 == 1 and TM > TM[1]) Then { if mav1 > 0 Then var1 = mav1; if mav2 > 0 Then var2 = mav2; } if var1 > 0 Then Plot3(var1); if var2 > 0 Then Plot4(var2); } 즐거운 하루되세요 > 포보스 님이 쓴 글입니다. > 제목 : 지표 문의드립니다 > 틱챠트에서 2분봉챠트의 60이평과 120이평값을 30분단위로 가로선으로 표기하고 싶습니다. 마치 당일 중심선 그려나가듯이 말이죠. 어려운 부탁인줄 아오나 꼭 부탁드립니다. 감사합니다.
프로필 이미지
포보스
2021-03-11
879
글번호 147011
지표
답변완료

수식부탁드립니다.

안녕하세요 제가 설명이 부족했습니다. 선물 수식 매수식 if MarketPosition == 0 and OpenD(0)< Close and crossup(ma5.ma20) then buy; if crossdown(c,OpenD(0) then ExitLong; 매도식 if MarketPosition == 0 and OpenD(0)> Close and crossdown(ma5,ma20) then sell; if crossup(c,OpenD(0) then Exitshort; 옵션수식 (data2는 선물지수) 콜 if data2(OpenD(0)< Close) and data2(crossup(ma5.ma20)) then buy; if crossdown(data2(c),data2(OpenD(0)) then ExitLong; 풋 if data2(OpenD(0)> Close) and data2(crossdown(ma5,ma20)) then buy; if crossup(data2(c),data2(OpenD(0))) then Exitshort; 위와 같이 data2의 같은 선물지수의 신호를 가지고 옵션을 매수 하는 경우를 말씀 드린사항 입니다. 옵션은 종목 매수만 하는것이지 신호에 전혀 영항을 주지 않습니다. 이 경우 콜과 풋에 동시에 진입하는 경우를 제외 하는 수식이 있을까요? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 부탁 드립니다, > 안녕하세요 예스스탁입니다. 문의하신 내용은 구현이 가능하지 않습니다. MarketPosition은 차트 신호상 포지션 상태입니다. 랭귀지의 모든 포지션 함수는 차트 신호상 포지션과 관계된 내용입니다. 실제 계좌의 내용을 리턴하지 않습니다. 시스템은 차트에 적용되면 각 시스템별로 독립적으로 구동이 됩니다. 다른 차트에 적용된 시스템의 신호상태를 알수 없습니다. 즐거운 하루되세요 > orfeu 님이 쓴 글입니다. > 제목 : 수식 부탁 드립니다, > 안녕하세요. 선물로 매수, 매도식식을 만들었는데, 옵션에 적용하다보니 궁금한사항이 있습니다. 선물 수식 매수식 if MarketPosition == 0 and OpenD(0)< Close and crossup(ma5.ma20) then buy; if crossdown(c,OpenD(0) then ExitLong; 매도식 if MarketPosition == 0 and OpenD(0)> Close and crossdown(ma5,ma20) then sell; if crossup(c,OpenD(0) then Exitshort; 위 수식을 매수는 콜옵션에, 매도는 풋 옵션에 적용하려고 하면 선물수식에서 매수중에는 매도로 진입안되고, 매도중에는 매수가 진입안되게 하였는데 콜옵션에 단순히 위 매수식을 넣고, 풋옵션에 단순히 위 매도식을 넣으면, 서로의 진입 여부가 확인 되지않아 콜과 풋에 동시에 진입하는 경우가 발생 합니다. condition 함수를 사용하면 동시 진입이 안되게 할수 있을것 같은데 정확히 모르겠습니다. 수식 부탁 드립니다.
프로필 이미지
orfeu
2021-03-11
974
글번호 147010
시스템
답변완료

청산 후 재진입 수식

안녕하세요 ^^ 청산후 재진입 수식에 대한 질문입니다 청산후 2개봉 이후에 재진입을 하고싶은데 청산직후에 바로 진입이 들어가고 있습니다. 진입수식에 barssinceexit(1) > 2 를 넣으면 매매신호가 전혀 발생하지 않네요 var : mp(0); if mp == 0 and mp[1] <> 0 then recnt = 1; if mp == 0 then recnt = recnt + 1; if mp <> 0 then recnt = 0; 또는 진입수식에 recnt > 1을 넣어도 청산후 재진입이 바로 되고 있습니다. 방법 좀 알려주시면 감사하겠습니다 ^^ 아래 수식 참고해주십쇼 ^^ input : Highest_(10), Lowest_(10),TARGET(60); var : pl(0),mp(0),recnt(0),p(0),pp(0); p = IFf(CountIf(CrossDown(c,Ema(c,60)),10) >= 1,20,0); if MarketPosition == 0 and h < Ema(c,60) Then Sell("s",AtStop,Lowest(l,Lowest_)- 20 -p ); if MarketPosition == -1 Then begin if BarsSinceEntry < 3 Then ExitShort("es1",AtStop,Lowest(l,BarsSinceEntry) + 20); else ExitShort("es",AtStop,Ema(c,60)+10); End; SetStopTrailing(20,100,PointStop);
프로필 이미지
엠씨용가
2021-03-11
791
글번호 147009
시스템
답변완료

일 최고/저점

1. <값구하기> 5거래일 동안 500틱봉에서 1일 동안의 최고점/최저점의 각각 H/L값 5개씩 그리고 이 10개 지점에서의 Index값 10개를 구하고 싶습니다. 그리고 한가지 조건은 오늘로 부터 과거 5일까지 차트에 점도표(최고값 red, 최저값 Blue)로 표시되고 이전 값은 차트에서 삭제!!! 2. 5일의 일 최고/최저값에 순위 부여(H값은 큰것부터 1, L값은 최소값 부터 1) 3. <선긋기> 5일전 최고점/최저점 -> 오늘과 1일전 최고점/최저점의 각각의 연결선 4개 5일전 최고점 -> 오늘과 1일전의 최저점의 연결선 2개 4. 마지막 질문은 barindex와 index의 차이는 무엇인가요? 항상 감사드립니다.
프로필 이미지
짱짱해야지
2021-03-11
994
글번호 147008
지표
답변완료

수식 부탁드립니다

1. 3일전 2일전 1일전 현재봉중 이동평균선을 상향돌파하면 ( crossup(c,이평선)으로 표현하니 마지막 현재봉 종가c 으로만 표현되는데) 예를들어 3일전 봉이 이평선을 돌파할수도 있고 2일전 봉이 돌파할수도 있고 1일전 봉이 돌파할 수있고 현재봉이 돌파할수 있는데 이평선을 돌파한 값만을 표현하려면 crossup 을 어떻케 표현해야 하나요? 2. 키움수식이 k=사봉&&삼봉&&이봉&&일봉; k1=이동평균선; valuewhen(1,crossup(k , o(3)<k1(3) and c>k1),k1); 인데 변환부탁드립니다
프로필 이미지
동동이아빠
2021-03-11
753
글번호 147006
지표
답변완료

강제청산 관련 문의드립니다

안녕하세요 900틱봉을 이용하여 시스템식을 만들어 시스템설정메뉴에서 23시50분에 강제청산되도록 설정한 후 시물레이션을 해보면 어떤 날은 강제청산이 되고 어떤날은 강제청산이 안되고 그 다음날로 넘어가서 청산이 되는데 확실하게 제어하는 방법좀 알려주십시요 감사합니다 첨부사진: 1번은 강제청산이 된 경우 2번은 강제청산이 안된경우
프로필 이미지
bigdeal
2021-03-11
729
글번호 147003
시스템
답변완료

문의 드립니다

안녕하세요~ 3분봉 또는 5분봉에서 양봉,음봉상관없이 아랫꼬리가 몸통의 2배이상인 캔들이 검색되는 수식 가능합니까? 참고로 일봉에서도 검색되려면 주기만 바꿔주면 되는건가요?
프로필 이미지
따라고나
2021-03-11
644
글번호 146999
검색