커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식변환 부탁드립니다

정말 죄송합니다 한번 더 질문 드리겠습니다 input : MidPeriod(26),LongPeriod(52); var : a(0),b(0); var1 = (highest(high,longPeriod)+lowest(low,longPeriod))/2; a = var1[midPeriod-26]; b = var1[midPeriod-1]; if crossup(a,b) Then Find(1); 여기서 b를 키움수식(highest(high,longPeriod1)+lowest(low,longPeriod1))/2; longPeriod1 을 77 로 해주시고 midPeriod1 은 26으로 부탁드립니다 a 26/52를 -26한것이 b 26/77 을 골든크로스로 부탁드립니다 그리고 하나더 b를 17/77 으로도 수식하나도 부탁드립니다 정말 감사드립니다 답변도 빨라서 너무 감사합니다
프로필 이미지
수민맘
2023-09-12
705
글번호 172378
종목검색
답변완료

키움에서 사용하는 수식을 예스함수로 변환요청 드립니다

키움에서 사용하고 있는 함수입니다(변동성돌파) 예스 트레이드에서 검색식을 만들고 싶은데 제 능력으로는 도저히 안되네요 예스트레이드 함수로 변환을 쫌 부탁드립니다 <변동선 돌파 라인(분봉 적용)> A=PREDAYHIGH() - PREDAYLOW(); DAYOPEN()+A*0.5 <변동선 돌파 라인(일봉 적용)> A=H(1)-L(1); A1=O+A*0.5; VALUEWHEN(1,CROSSUP(C,A1),A1) <Triple-RSI 수식> (수식1) RSI(2) (수식2) RSI(21) (수식3) RSI(50) * RSI 21 RSI 50 이 50이상에 위치에 있고 1봉전 RSI 2 가 50이하 0봉전 RSI 2 가 50이상 돌파 * 이상입니다.꼭 부탁드립니다..감사합니다
프로필 이미지
쿨한능력자
2023-09-12
825
글번호 172370
사용자 함수

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

프로필 이미지
tops
2023-09-12
142
글번호 172367
지표
답변완료

수식 변환 부탁드립니다.

수식 변화 부탁드립니다. LL=Lowest(L(1),기간); HH=Highest(H(1),기간); NH=valuewhen(1,H>HH(1),H); 고상 = Valuewhen(1,barsSince(H>HH(1))==(기간 - k), NH); 저상 = Valuewhen(1,BarsSince(L<LL(1))==(기간 - K), HH); 조건 = 고상==저상; Valuewhen(1, 조건, 저상) 기간 5 k 3 항상 감사드립니다.
프로필 이미지
손느린주식
2023-09-11
512
글번호 172366
지표
답변완료

횡보장 진입 제한 관련 문의 드립니다.

항상 많은 도움 감사드립니다. 횡보장에서 같은 매수 조건이 자주 등장해서 계속 진입하는 경우에 손해가 많이 나서요. if A then buy "A매수"; if B then buy "B매수"; 이 조건을 사용할때 "A매수"로 30분 (지금 기준으로 앞 30분동안)동안에 진입한 적이 있으면 진입하지 않게히려면 어떻게 해야 할까요? 바꾸어서 말씀드리면 "A매수"로 진입한 이후 30분 동안은 "A매수"는 다시 진입하지 않았으면 합니다. 1분봉 거래 기준이기 때문에 거래 봉수로 30봉을 해도 괜찮습니다. 단 "A매수" 이후 30분 사이에 "B매수"의 조건이 나타난다면 "B매수"의 실행에는 관여하지 않고 "B매수"는 실행이 되는 조건문이여야 합니다. 모든 진입을 30분동안 제한하는 시스템식이 아니라 "A매수"만 30분 동안 재진입을 막는 시스템식 부탁드립니다.
프로필 이미지
비정성시
2023-09-11
519
글번호 172365
시스템

배움이 님에 의해서 삭제되었습니다.

프로필 이미지
배움이
2023-09-11
22
글번호 172364
시스템

천지고원 님에 의해서 삭제되었습니다.

프로필 이미지
천지고원
2023-09-11
1
글번호 172363
종목검색
답변완료

수식작성요청

1.분봉챠트에 지수이동평균선을 표시하고 특정조건의 종목검색식을 만들어 보았으나 내부함수의 입력값이 2개 필요합니다 선언되지않은 이름 nPredayclose가 사용되었습니다며 검증이 안되네요. 하나는 사용자함수를 등록하면 될듯한데 키움이라면 어렵지 않지만 이건 어렵군요.10일 20일 지수이동평균도 맞는건지 삐리하고요 ㅋ. 수식작성좀 부탁드립니다^^ 2.작성해본 검색식인데 참조해주시기 바랍니다 VAR : LL(0),M10(0),M20(0); LL = Lowest(L, 60); if LL[1]>L Then M10=ema((DayClose()+npredayclose(1)+npredayclose(2)+npredayclose(3)+,,npredayclose(9))/10); if LL[1]>L Then M20=ema((dayclose()+npredayclose(1)+npredayclose(2)+npredayclose(3)+npredayclose(4)+npredayclose(5) +npredayclose(6)+npredayclose(7)+npredayclose(8)+,,,npredayclose(19))/20); IF M10 < M20 && CrossUp(DayClose(), M20) && DayClose()>O TheN Find(1);
프로필 이미지
트라이
2023-09-12
1033
글번호 172362
종목검색
답변완료

추세선 시작점

input : Period(180); Var:j(0),T(0),tl(0),TL1(0),tx(0) ,box(0); Var: date11(0),date12(0),time11(0),time12(0), date21(0),date22(0),time21(0),time22(0), date31(0),date32(0),time31(0),time32(0); Array: HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0); Plot1(0); For j = 0 To 19 { HiBar[j] = HiBar[j] + 1; LoBar[j] = LoBar[j] + 1; } if crossup(c,highest(H,Period)[1]) Then T = 1; if CrossDown(c,Lowest(L,Period)[1]) Then T = -1; If T == -1 Then { If T[1] != -1 Then { For j = 18 DownTo 0 { LoVal[j+1] = LoVal[j]; LoBar[j+1] = LoBar[j]; } LoVal[0] = L; LoBar[0] = 0; date11 = date[HiBar[0]]; time11 = stime[HiBar[0]]; Value11 = HiVal[0]; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; TL_Delete(TL); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); TL_SetColor(TL1,Blue); TL_SetSize(TL1,2); date21 = date[HiBar[0]]; time21 = stime[HiBar[0]]; date22 = date[0]; time22 = stime[0]; box = Box_New(date11,time11,Value11,date12,time12,Value12); Text_SetSize(tx,25); Text_SetColor(Tx,Red); Text_SetStyle(tx,1,1); Text_SetBold(tx,1); if abs(value12[1]-value11[1]) < 0.7 Then Text_Delete(tx); tx = Text_New(sDate,stime,value12,NumToStr(value11-value12,2)); Text_SetColor(Tx,Blue); Text_SetStyle(tx,1,0); Text_SetSize(tx,25); Text_SetBold(tx,1); } If LoVal[0] >= L Then { LoVal[0] = L; LoBar[0] = 0; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date22 = date[0]; time22 = stime[0]; Box_SetEnd(box,date12,time12,Value12); Text_SetString(tx,NumToStr(value11-value12,2)); Text_SetLocation(tx,sDate,sTime,value12); } if value12 > value11-0.7 Then { Box_SetColor(box,Cyan); Box_SetFill(box,true,50); } else if value12 <= value11-0.7 and value12 > value11-0.9 Then { Box_SetColor(box,Yellow); Box_SetFill(box,true,90); } else if value12 <= value11-0.9 and value12 > value11-1.3 Then { Box_SetColor(box,Lime); Box_SetFill(box,true,80); } else if value12 <= value11-1.3 and value12 > value11-1.6 Then { Box_SetColor(box,Cyan); Box_SetFill(box,true,50); } else if value12 <= value11-1.6 and value12 > value11-2 Then { Box_SetColor(box,Blue); Box_SetFill(box,true,25); } else { Box_SetColor(box,Lime); Box_SetFill(box,true,35); } } If T == 1 Then { If T[1] != 1 Then { For j = 18 DownTo 0 { HiVal[j+1] = HiVal[j]; HiBar[j+1] = HiBar[j]; } HiVal[0] = H; HiBar[0] = 0; date11 = date[LoBar[0]]; time11 = stime[LoBar[0]]; Value11 = LoVal[0]; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; TL_Delete(TL); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); TL_SetColor(TL1,Red); TL_SetSize(TL1,2); date31 = date[LoBar[0]]; time31 = stime[LoBar[0]]; date32 = date[0]; time32 = stime[0]; box = Box_New(date11,time11,Value11,date12,time12,Value12); Text_SetSize(tx,25); Text_SetColor(Tx,Blue); Text_SetStyle(tx,1,0); Text_SetBold(tx,1); if abs(value12[1]-value11[1]) < 0.7 Then Text_Delete(tx); tx = Text_New(sDate,stime,value12,NumToStr(value12-value11,2)); Text_SetColor(Tx,Red); Text_SetStyle(tx,1,1); Text_SetSize(tx,25); Text_SetBold(tx,1); } If HiVal[0] <=H Then { HiVal[0] = H; HiBar[0] = 0; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date32 = date[0]; time32 = stime[0]; Box_SetEnd(box,date12,time12,Value12); Text_SetString(tx,NumToStr(value12-value11,2)); Text_SetLocation(tx,sDate,sTime,value12); } if Value12 > value11+1.1 Then { Box_SetColor(box,Pink); Box_SetFill(box,true,90); } else if value12 >= value11+0.8 and value12 <= value11+1.1 Then { Box_SetColor(box,Magenta); Box_SetFill(box,true,40); } Else { Box_SetColor(box,Orange); Box_SetFill(box,true,60); } } 추세선, 박스, 추세선크기, 세가지 시작점 변경. 선물 15틱 차트에서 여러봉의 고점이 같을 때, 마지막 최고가봉이 하락추세선 시작점인것을, 첫 최고가봉이 하락추세선의 시작점으로 변경. 그림1의 아래쪽은 83322와 동일한 수식이고, 그림2는 82425에서 알려주신 상기 수식의 상하대칭 지점인데 모두 첫 최고가봉이 기준점으로 되어 있습니다. 참고해서 첫 최고가봉으로 변경 부탁드립니다.
프로필 이미지
고성
2023-09-12
1071
글번호 172361
지표