커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

53953 재 문의 드립니다

만들어 주신 조건식으로 종목 검색을 했는데 제가 뭘 잘못했는지 하나도 종목이 추출이 안되네요! 지금껏 만들어 주신것은 잘 검색이 되었습니다. 이렇게도 해보고 저렇게도 해 보았는데 안되요! 확인 한번 부탁드려요!! 전 기간 값을 주봉, 일봉, 15분봉 모두 적용해 보았는데 검색자체가 하나도 안됩니다 전혀 걸러지지 않네요! > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 종목 검색식 좀 다시 부탁드립니다 > 안녕하세요 예스스탁입니다. 1 MACD오실레이터 중 (13,12,26,9) 은 기간이 4개라 9제외했습니다. 기간값은 사용자분이 임의로 다시 지정하시기 바랍니다. 2 "파랑 동그라미는 = 이평선 13선 이 65선을 처음 돌파하기 시작이며 / MACD 오실레이터 3가지 (12,26,9) (60, 130, 45) (13,12,26,9) 가 모두 0선 위로 올라서기 시작하는 순간입니다." 올리신 내용에는 모두 0선위 로 올라서기 시작하는 순간인데 첨부하신 그림의 (60,130,45)오실레이터는 단지 0선위에서 작아졌다가 커지고 있습니다. 3 아래식은 전봉은 이평골드/3개 MACD0오실레이터 0선 이상조건이 아니다가 현재봉에서 조건만족하는 종목을 검색합니다. var1 = ma(C,13); var2 = ma(C,65); var3 = MACD_OSC(12,26,9); var4 = MACD_OSC(60,130,45); var5 = MACD_OSC(13,12,26); Condition1 = var1 > var2 and var3 > 0 and var4 > 0 and var5 > 0; #동시 최초 만족봉을 검색 if Condition1 == true and Condition1[1] == false Then find(1);
프로필 이미지
qha71
2017-07-05
134
글번호 111016
종목검색
답변완료

재문의드립니다

53947 1번아무것도 나오지않습니다 뭐가잘못인가요?다시확인부탁드립니다
프로필 이미지
장군
2017-07-05
121
글번호 111015
지표
답변완료

이동평균선전환시 진입

안녕하세요? 1 기준이평선(20일)이 상승중이고 and 5이평선이 (하락하다) 상승전환하면 매수진입.... 로스컷은 5이평선이 하락전환하면 청산... 2 기준이평선(20일)이 하락중이고 and 5이평선이 (상승하다) 하락전환하면 매도진입.... 로스컷은 5이평선이 상승전환하면 청산... 3 신호발생가격이 수평선라인으로 그려지게 부탁드립니다 input : P(5), P1(20); var1 = ma(C,P); var2 = ma(C,P1); if var1 > var1[1] Then value1 = 1; if var1 < var1[1] Then value1 = -1; if value1 == 1 Then plot1(var1,"5이평",RED); else plot1(var1,"5이평",BLUE);
프로필 이미지
추세승리
2017-07-05
170
글번호 111010
시스템
답변완료

부탁 드립니다.

도움 주심에 경배로 감사 인사 올립니다. 아래 조건에 맞는 선(일자 그래프)을 긋고자 하나 정상이 아닙니다. 수정 부탁 드리고자 합니다. 지정된 봉수(p1) 내애 조건에 적합하여 최고 거래량의 선(red)이 그어진 상태에서 1)새로운 최고 거래량이 나타 나면 red선은 갱신하고 이후에 기존의 2번째 선(yellow), 3번째 선(blue)은 중지하고 2)2번째 최고 거래량이 나타 나면 선(yellow)을 긋고 이후에 기존의 1번째 선은 유지, 새로운 두번째은 갱신, 기존의 3번째 선은 중지, 3)3번째 최고 거래량이 나타 나면 선(blue)을 긋고 이후에 기존의 1번째 선은 유지, 기존의 2번째 선은 유지 새로운 3번째은 갱신 input : p1(30); var1=Highest(v[1],p1); var2=nthhighest(2,v[1],p1); var3=nthhighest(3,v[1],p1); if v>var1 then{ Condition1 = true; var11 = c; } if Condition1 == true Then Condition1 = false; if v>var2 and v<var1 then{ Condition2 = true; var12 = c; } if Condition2 == true Then Condition2 = false; if v>var3 and v<var2 then{ Condition3 = true; var13 = c; } if Condition3 == true Then Condition3 = false; if Condition1 == true then{ plot1(var11,"H1",red,def,0); } if Condition2 == true then{ plot2(var12,"H2",yellow,def,0); } if Condition3 == true then{ plot3(var13,"H3",blue,def,0); }
프로필 이미지
yes
2017-07-05
128
글번호 111009
지표
답변완료

매수청산당일 매수금지

안녕하세요. 주식 시스템을 돌리고 있는데요. 청산당일 매수(진입)금지를 하고 싶습니다. 조언 부탁드립니다.
프로필 이미지
2017-07-05
119
글번호 111008
시스템

관리자에 의해 프로그램 사용법 QnA로 이동되었습니다

프로필 이미지
원칙1
2017-07-05
8
글번호 111006
시스템
답변완료

질문드립니다~

안녕하세요 예스스탁입니다. 아래식 적용해 보시시기 바랍니다. 식상 var1값이 1이나 0일때로 구분해서 식 작성하시면 됩니다. input : 분주기(30),P(5),분주기1(15); var : S1(0),D1(0),TM(0),TF(0); var : cnt(0),sum(0),mav(0),tf1(0); Array : CC[100](0),OO[100](0),HH[100](0),LL[100](0),TT[100](0); Array : C1[100](0),T1[100](0); if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) Then{ S1 = TimeToMinutes(100000); D1 = sdate; } if D1 > 0 then{ if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%분주기; if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or (TF < TF[1]) Then{ OO[0] = o; HH[0] = H; LL[0] = L; TT[0] = stime; for cnt = 1 to 99{ OO[cnt] = OO[cnt-1][1]; HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; TT[cnt] = TT[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; TF1 = TM%분주기1; if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or (TF1 < TF1[1]) Then{ T1[0] = stime; for cnt = 1 to 99{ C1[cnt] = C1[cnt-1][1]; T1[cnt] = T1[cnt-1][1]; } } C1[0] = C; } if TT[0] == T1[0] Then var1 = 1; Else var1 = 0; plot1(var1); 즐거운 하루되세요 > 겐지 님이 쓴 글입니다. > 제목 : 문의드립니다~ > input : 분주기(30),P(5),분주기1(15); var : S1(0),D1(0),TM(0),TF(0); var : cnt(0),sum(0),mav(0),tf1(0); Array : CC[100](0),OO[100](0),HH[100](0),LL[100](0),TT[100](0); Array : C1[100](0),T1[100](0); if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) Then{ S1 = TimeToMinutes(100000); D1 = sdate; } if D1 > 0 then{ if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%분주기; if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or (TF < TF[1]) Then{ OO[0] = o; HH[0] = H; LL[0] = L; TT[0] = stime; for cnt = 1 to 99{ OO[cnt] = OO[cnt-1][1]; HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; TT[cnt] = TT[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; TF1 = TM%분주기1; if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or (TF1 < TF1[1]) Then{ T1[cnt] = stime; for cnt = 1 to 99{ C1[cnt] = C1[cnt-1][1]; T1[cnt] = T1[cnt-1][1]; } } C1[0] = C; } 1.cc[1]과 c1[1]이 같지않은 경우를 식으로 표현하고 싶은데요~ 틱분주기15분단위에서 이전종가가10시45분 11시15분 11시45분 12시15분 12시45분식으로 15분단위 시간일때에 5일선과 20일선데드크로스시매도한다라는걸 제가 식으로 표현하니깐 if cc[1]!=c1[1] then crossdown(tic5,tic20); 이렇게 표현을 했거든요 그런데 만약 2시가격인cc[1]과 2시15분가격인c[1]이 서로가격이 같아지게되면 2시15분이후에 데드크로스가나온자리를 시스템이 인지를 못하더라구요 그래서 cc[1]의 시간과 c1[1]의 시간이 같지않을때 또는 15분 45분단위시간을 식으로 표현하고 싶습니다. 새로받은식에서tt[1]과 t1[1]이 있던데요 plot로 표현해 보니깐 빨간세로선으로 새벽12시30분 그리고 낮10시30분에 세로로 가격이 그어지던데 tt랑 t1이 각각30분주기시작시간 15분주기시작시간을 나타낸거 같은데요 plot으로 표현해 보니깐 당일시작시간이 나타나서요 제가원하는 식이 tt[1]!=t1[1]이렇게 표현하면 되는건지요? 감사합니다~ ================================================================================================================================================================================ 이전에 질문내용과 답변받은 내용인데요~ 다시 적용해 볼려니깐 잘 안되어서요~ 원하는 식은 현재가격이 30분봉상 3봉전의 종가가격보다 높고 30분단위가 아니라 15분봉의 15분단위시간의 바로이전종가가격보다 높을때 5일선과20일선골든크로스시에 매수를 식으로 표현하고 싶은데요~ 위식대로 하면은 if c>cc[3] and c>c1[1] and var1 = 0 and crossup(ma(c,5),ma(c,20)) then buy() ; 이렇게 표현되는 거 같은데 검증해 보니깐 제대로 적용이 안됩니다~ 원하는 부분은 30분봉상 4봉전종가가격이 형성되기 15분전의 가격과 비교하기 위해서 여쭈어 보는 거거든요~ 30분~45분, 60분~15분사이에서는 진입신호가 뜨지 않고 15분~30분, 45분~60분 사이에서만 진입신호가 뜨게끔 할려는 겁니다.~ 도움부탁드릴게요~ 감사합니다!
프로필 이미지
겐지
2017-07-04
130
글번호 111004
지표
답변완료

수식문의드려요

차트상에 5가지 선을 표시하고싶습니다 키움수식으로 L5=ma(저가,5,가중) H5=ma(고가,5,가중) L30=ma(저가,30,가중) H30=ma(고가,30,가중) 중심선=ma(종가,60,지수) 입니다 이선들을 예스트레이더로 표현하는 방법 수식 부탁드립니다
프로필 이미지
매수신호
2017-07-04
134
글번호 111003
지표
답변완료

질문드립니다.

Var6= 0; Var7 = 0; for Var5 = 0 to 3 { Var6 = (DayHigh(Var5)) - (DayLow(Var5)); Var7 = Var7 + Var6; } var : j1(0); If bdate != bdate[1] Then{ p = ( High + Close + Low )/ 3; J1 = Var7 * (1.1/12) + DayClose ;} var11 : ma(c,50); var : 시그널(False); 시그널 = False; Condition1 = (Close+PriceScale*2 < var11); If Condition1 and MRO(Condition1,3,2)== -1 Then{ 시그널 = True;} If MarketPosition == 0 Then If 시그널 Then{ Sell();} If MarketPosition == -1 Then{ If ExitName(1) == "j1청산" Then if CountIF(CrossDown(c,j1),BarsSinceEntry) >= 1 and CrossUp(c,j1) Then ExitShort(); SetStopLoss(12*PriceScale,PointStop); If sTime== 050000 or(sTime > 050000 and stime[1] < 050000) Then{ ExitLong(); ExitShort(); } } 제가 쓰던게 이 로직입니다. condition1과 의미하던 평활화된 선까지 포함인데요. 단순 dayopen이런 선에는 저 수식이 잘 맞습니다. 그런데 for로 돌리고 bdate섞고 한 J1선은 왜 인식이 되지않는걸까요? 300틱 기준입니다. vars : p(0); if bdate != bdate[1] Then{ p = (high+close+low)/3;} var1 = Ma(c,50); Condition1 = (Close- PriceScale*2 > Var1); If MarketPosition == 0 Then If Condition1 and MRO(Condition1,3,2) == -1 Then{ Buy();} if MarketPosition == 1 then{ if CountIF(CrossUp(c,p),BarsSinceEntry) >= -1 and CrossDown(C,p) Then ExitLong(); SetStopLoss(4*PriceScale,PointStop); If sTime== 050000 or(sTime > 050000 and stime[1] < 050000) Then{ ExitLong(); ExitShort(); } } 이 수식은 계산을한 J1과같은 수식이 없는 시스템 식입니다. 사진과같이 구동이 잘되는 모습을 볼 수 있는데요. 도와주세요ㅠㅜ
프로필 이미지
stockric
2017-07-04
224
글번호 111002
지표