커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

거래량 관련 지표 작성 문의

업무에 수고가 많으십니다. 도움주심에 항상 감사합니다. 아래는 당일 첫봉제외 최대거래량을 나타내는 지표입니다만, 첫봉을 제외하고 "1st 최대거래량" 과 함께 "2nd 최대거래량"을 plot으로 나타내고 싶습니다. 도움주시면 감사하겠습니다. var: HV(0),HVO(0),HVH(0), HVL(0),HVC(0); var: HV1(0),HVO1(0),HVH1(0), HVL1(0),HVC1(0); if Bdate != Bdate[1] Then { HV = H; HVO = O; HVH = H; HVL = L; HVC = C; HV1 = 0; } Else { if V > HV and HV > 0 Then { HV = V; HVO = O; HVH = H; HVL = L; HVC = C; } if HV1 == 0 or (HV1 > 0 and V > HV1) Then { HV1 = V; HVO1 = O; HVH1 = H; HVL1 = L; HVC1 = C; } } plot1(HVO,"시가"); plot2(HVH,"고가"); plot3(HVL,"저가"); plot4(HVC,"종가"); plot5(HVH1,"고가(첫봉제외)"); plot6(HVL1,"저가(첫봉제외)");
프로필 이미지
ycchoi17
2021-03-12
760
글번호 147028
지표
답변완료

재문의2

알려주신 대로 해 보았는데 거래가 발생하지 않습니다. 한번만 다시 봐주실 수 있을까요? 수식상의 오류인지 아니면 시스템 설정상에 오류인지 파악이 안 되고 있습니다 도움 부탁드립니다 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 오류 수정 부탁드립니다! > 안녕하세요 예스스탁입니다. 1 Entry변수가 시작시간에 0으로 초기화가 됩니다. 초기화가 되는 부분을 삭제하시면 됩니다. input : 시작시간(90000), 끝시간(100000), 시작시간2(100000), 끝시간2(131900), K(0.5); var : Tcond(false), Entry(0); if sTime == 시작시간 or (sTime >= 시작시간 and sTime[1] < 시작시간)then { var1 = H; var2 = L; } if sTime >= 시작시간 and sTime < 끝시간 Then { if H > var1 Then var1 = H; if L < Var2 Then Var2 = L; } if (sdate != sdate[1] and stime >= 시작시간2) or (sdate == sdate[1] and stime >= 시작시간2 and stime[1] < 시작시간2) Then { Tcond = true; } Entry = DayOpen + (Var1-Var2)*K; if (sdate != sdate[1] and stime >= 끝시간2) or (sdate == sdate[1] and stime >= 끝시간2 and stime[1] < 끝시간2) Then Tcond = False; if MarketPosition == 0 and Tcond == true Then Buy("B",AtStop,Entry); if MarketPosition == 1 and NextBarSdate != sdate Then exitlong("bx",AtMarket); 2 시가가 당일시가입니다. 만약 시작시간2의 시가이면 아래식 적용하시면 됩니다. input : 시작시간(90000), 끝시간(100000), 시작시간2(100000), 끝시간2(131900), K(0.5); var : Tcond(false), Entry(0),OO(0); if sTime == 시작시간 or (sTime >= 시작시간 and sTime[1] < 시작시간)then { var1 = H; var2 = L; } if sTime >= 시작시간 and sTime < 끝시간 Then { if H > var1 Then var1 = H; if L < Var2 Then Var2 = L; } if (sdate != sdate[1] and stime >= 시작시간2) or (sdate == sdate[1] and stime >= 시작시간2 and stime[1] < 시작시간2) Then { Tcond = true; OO = O; } Entry = OO + (Var1-Var2)*K; if (sdate != sdate[1] and stime >= 끝시간2) or (sdate == sdate[1] and stime >= 끝시간2 and stime[1] < 끝시간2) Then Tcond = False; if MarketPosition == 0 and Tcond == true Then Buy("B",AtStop,Entry); if MarketPosition == 1 and NextBarSdate != sdate Then exitlong("bx",AtMarket);
프로필 이미지
syskama
2021-03-12
669
글번호 147018
시스템
답변완료

재문의 드립니다

주식시장에서 분봉으로 특정시간에 매수청산하는 식이 어떻게 되는지요? 예) 오전 9시 15분에 포지션을 갖고 있을 경우 매수청산한다
프로필 이미지
syskama
2021-03-12
722
글번호 147017
시스템
답변완료

문의

상승각도가 70도 이상이면서 a조건이면 매도인 시스템식 부탁합니다.
프로필 이미지
엉덩공주
2021-03-11
693
글번호 147015
시스템
답변완료

문의

이동평균 수렴 부탁합니다. 이평값은 5,10,20,60,120,240 조건이며, 밀집범위는 2 입니다.
프로필 이미지
엉덩공주
2021-03-11
837
글번호 147014
종목검색
답변완료

문의

5ma 대비 종가 등락률이 20%이상 500%이하 120ma 대비 저가 등락률이 -100%이상 -20%이하인 종목 종목검색식 부탁합니다. 120ma는 종가가 아닌 저가 등락률입니다.
프로필 이미지
엉덩공주
2021-03-11
841
글번호 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
940
글번호 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
918
글번호 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
1007
글번호 147010
시스템