커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4222
글번호 230811
답변완료
문의 드립니다
Input:length(10),종가사용여부(0),파동선두께(2),수치표시(1); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),text2(0),TL2(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# HH = IFF(종가사용여부==1,C,H); LL = IFF(종가사용여부==1,C,L); If Index == 0 Then { 고[1,1] = HH; 저[1,1] = LL; } Condition1 = Highest(HH,length) == HH and 최종고가 <> HH; Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL;처리구분 = "";If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생{ If 최종꼭지점 == "저점" Then { If 저[1,1] > LL Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If 고[1,1] < HH Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } }Else If Condition1 Then 처리구분 = "고점처리";Else If Condition2 Then 처리구분 = "저점처리"; #==========================================#If 처리구분 == "고점처리" Then { 최종고가 = HH; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; // TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); var1 = 고[2,1]-저[1,1]; // TL2 = TL_New(저[1,3],저[1,4],저[1,1]-var1,sDate,sTime,저[1,1]-var1); If 수치표시 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text1, 2, 1); //Text2 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1]-저[1,1],2)+NewLine); Text_SetStyle(Text2, 2, 1); Text_SetColor(text2,RED); Text_Setbold(text1,1); Text_SetSize(text2,13); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,GREEN); TL_SetSize(TL2,파동선두께); TL_SetColor(TL2,BLUE); } Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); TL_SetEnd(TL2,고[1,3],고[1,4],저[1,1]-var1); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 If 수치표시 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetColor(text1,Red); Text_SetString(Text1,NumToStr(고[1,1],2)); Text_SetLocation(Text2,고[1,3],고[1,4],고[1,1]); Text_SetColor(text2,Red); Text_Setbold(text1,1);Text_SetSize(text2,12); Text_SetString(Text2,NumToStr(고[1,1]-저[1,1],2)+NewLine); } } 최종꼭지점 = "고점"; } #==========================================#If 처리구분 == "저점처리" Then { 최종저가 = LL; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; // TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); var1 = 고[1,1]-저[2,1]; // TL2 = TL_New(고[1,3],고[1,4],고[1,1]+var1,sDate,sTime,고[1,1]+var1); If 수치표시 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text1, 2, 0); // Text2 = Text_New(저[1,3],저[1,4],저[1,1],NewLine+NumToStr(저[1,1]-고[1,1],2)); Text_SetStyle(Text2, 2, -1); Text_SetColor(text2,Black); Text_Setbold(text1,1);Text_SetSize(text2,13); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,GREEN); TL_SetSize(TL2,파동선두께); TL_SetColor(TL2,Red); } Else If 저[1,1] > LL then { 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); TL_SetEnd(TL2,저[1,3],저[1,4],고[1,1]+var1); If 수치표시 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetColor(text1,Black); Text_SetString(Text1,NumToStr(저[1,1],2)); Text_SetLocation(Text2,저[1,3],저[1,4],저[1,1]); Text_SetColor(text2,Black); Text_Setbold(text1,1);Text_SetSize(text2,12); Text_SetString(Text2,NewLine+NumToStr(저[1,1]-고[1,1],2)); } } 최종꼭지점 = "저점"; } -------------위수식에서 고점, 저점이 텍스트로 표시되면 그 지점에 세로선이 나오게 하고 싶은데 가능할까요?고점, 저점이 계속 갱신되면 갱신되는 대로 세로선이 나오다가 다시 갱신되지 않으면 최종 세로선이 그어지게 합니다고점세로선 과 저점 세로선 색상은 구별가능하게 지정할수 있음 좋겠습니다감사합니다
2026-05-07
60
글번호 231937
답변완료
종목 검색식 부탁드립니다.
1. RSI (11) 가 시그널 (9) 돌파 (골든) 할때 종목 검색식 부탁드려요2. DMI (11) 플러스 가 DMI(11) 마이너스를 돌파(골든)할때 종목검색식 부탁합니다.3. 캔들의 종가가 단순 60이평을 돌파(골든)할때 종목 검색식 부탇드려요4. CCI (12) 가 CCI (14) 를 돌파할때 종목 검색식 부탁드려요
2026-05-07
62
글번호 231936
답변완료
아래수식선이 위나 아래로 움직였을 때 1번, 같으면0번 으로 수정 부탁드립니다
아래 Plot2(var3,"25아래가격선(분봉선)");선이 위나 아래로 움직였을 때 1번, 같으면0번 으로 수정 부탁드립니다===================================================================Input : Period1(0),Period2(25),Period3(50),Period4(75),Period5(100);var : R(0);R = data2(c)/(data2(c)+data3(c));if 25 > R*100 Then var3 = DayLow(); var6 = IFF(var3==var3(1),0,1);plot1(R*100);PlotBaseLine1(Period1,"기준선1");PlotBaseLine2(Period2,"기준선2");PlotBaseLine3(Period3,"기준선3");PlotBaseLine4(Period4,"기준선4");PlotBaseLine5(Period5,"기준선5");Plot2(var3,"25아래가격선(분봉선)");Plot4(var6,"25아래가격선(분봉그림)");
2026-05-07
60
글번호 231931
답변완료
지표식 부탁합니다
안녕하십니까수고가 많으십니다지표식 수정 부탁합니다Input : StartTime(90000),분(90);var : D1(0),TM(0),TF(0),OO(Nan);If (sdate!=sDate[1] and sTime>=StartTime) Then {D1 = sdate;}If D1>0 then {If sdate==D1 Then TM=TimeToMinutes(stime); Else TM=TimeToMinutes(stime)+1440; TF = TM%분; If Bdate!=Bdate[1] or (Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or (Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then {OO = Open;}Plot7(OO, "G", Green);}위 식을 수정하고 싶습니다선이 내려올때는 시가와 종가 중에 낮은 가격으로, 선이 올라갈 때는 시가와 종가 중에 높은 가격으로 선을 긋고 싶습니다수정하여 주시면 고맙겠습니다
2026-05-07
61
글번호 231924
답변완료
nh트레이더가 해당 로직만 넣으면 꺼집니다..
1분봉에서 전일거래대금을 가져오기 위해If DayIndex==0 and MarketPosition==0 Then{// 전일거래대금 셋팅당일거래대금 = 0; // 초기화, 당일거래대금은 누적전일거래대금 = 당일거래대금[1];}이거를 첫봉에서만 수행하고매분마다//당일거래대금 누적당일거래대금 = 당일거래대금+M;하고 있는데 nh트레이더가 계속 꺼집니다..다른 프로그램에서도 쓰고 있는데, 이번에 새로 개발중인 프로그램에서도 다를 로직이 없는데 저것만 넣으면 꺼지네요..혹시 더 좋은 방안 있을까요..?
2026-05-07
43
글번호 231923
답변완료
종목검색식 부탁드립니다.
1. 아래의 식을 참고하여, 종목 검색식 부탁드려요. 단, 아래의 식을 만족하고 "첫번째" (추가요망)로 나오는 종목 검색식 부탁드려요 ---아래---R=RSi(9);Rs=eavg(R,9);Dp=DiPlus(15);Dm=DiMinus(14);M=Macd(12,30);Ms=eavg(M,9);S=StochasticsSlow(12,8);Ss=eavg(S,3);CC=CCi(15);Cs=eavg(CC,12);M60=ma(C,60);체크합=if(R>Rs,1,0)+if(Dp>Dm,1,0)+if(M>Ms,1,0)+if(S>Ss,1,0)+if(CC>Cs,1,0)+if(C>M60,1,0);체크합==2 OR 체크합==32. Bostian's Intraday intensity index 가 "상승전환" OR "연속상승"시 0봉전~5봉전 까지의 종목 검색식 부탁드려요3. BWI (60,2) 가 BWI (120,2) 를 돌파할때 종목 검색식 부탁드려요.4. BWI (60,2) 가 BWI (120,2) 를 돌파할때 0봉전~5봉전까지의 종목 검색식 부탁드려요.5. OBV 가 시그널을 돌파할때 0봉~5봉전까지 종목 검색식 부탁드려요6. OBV 가 "상승전환" OR "연속상승" 할때 0봉~5봉전까지 종목 검색식 부탁드려요7. OBV 지표 (시그널포함) 부탁드려요
2026-05-07
69
글번호 231921
답변완료
종목검색식 질의합니다
시가총액 5천억이상이고 거래대금이 1천억 이상인 종목중에서 코스피,코스닥 전체시장에서 거래대금 순위에서 100위권 안에 있고 전일 종가대비 상승률 10%이상인 종목을 검색하는 수식을 어떻게 구현할 수 있을까요?거래대금 순위가 지원되지않아 고민스럽지만 그래도 질의해봅니다.
2026-05-07
44
글번호 231919
답변완료
문의 드립니다.
안녕하세요 많은 도움 주셔서 감사 드립니다.현재 가격이 아래의 위치/라인을 돌파하는 종목의 검색식을 부탁 드립니다. A=Highest(H(1), 30) < H;B=Valuewhen(1, A, H);C=A*(-0.50/100);K=if(A, B, B+C);if(K < K(1), K, 0)감사합니다.
2026-05-07
43
글번호 231918
답변완료
검색식에서 글자색깔 변경할수있게 부탁드립니다
아래 수식은 예전에 짜주신 수식인데요여기서 차트에 표시될때 글짜가 검은색이 아닌 다른 색깔(예 빨간색)표시될수있도록 변경해주시면 감사하겠습니다아니면 설정창에서 제가 임의로 색깔을 변경할수있게 해주시면더 감사하겠습니다감사합니다 var : cnt(0),tx1(0),tx2(0),tx3(0),tx4(0),tx5(0);Array : hh[6](0),dd[6](0),tt[6](0),pp[6](0);if O > C[1] Then{ var1 = abs(O-C[1]); if var1 >= hh[1] Then { hh[1] = var1; dd[1] = sDate; tt[1] = sTime; pp[1] = h; For cnt = 2 to 5 { hh[cnt] = hh[cnt-1][1]; dd[cnt] = dd[cnt-1][1]; tt[cnt] = tt[cnt-1][1]; pp[cnt] = pp[cnt-1][1]; } Text_Delete(tx1); tx1 = Text_New(dd[1],tt[1],pp[1],"1위"); Text_Delete(tx2); tx2 = Text_New(dd[2],tt[2],pp[2],"2위"); Text_Delete(tx3); tx3 = Text_New(dd[3],tt[3],pp[3],"3위"); Text_Delete(tx4); tx4 = Text_New(dd[4],tt[4],pp[4],"4위"); Text_Delete(tx5); tx5 = Text_New(dd[5],tt[5],pp[5],"5위"); } else if var1 < hh[1] and var1 >= hh[2] Then { hh[2] = var1; dd[2] = sDate; tt[2] = sTime; pp[2] = h; For cnt = 3 to 5 { hh[cnt] = hh[cnt-1][1]; dd[cnt] = dd[cnt-1][1]; tt[cnt] = tt[cnt-1][1]; pp[cnt] = pp[cnt-1][1]; } Text_Delete(tx2); tx2 = Text_New(dd[2],tt[2],pp[2],"2위"); Text_Delete(tx3); tx3 = Text_New(dd[3],tt[3],pp[3],"3위"); Text_Delete(tx4); tx4 = Text_New(dd[4],tt[4],pp[4],"4위"); Text_Delete(tx5); tx5 = Text_New(dd[5],tt[5],pp[5],"5위"); } else if var1 < hh[2] and var1 >= hh[3] Then { hh[3] = var1; dd[3] = sDate; tt[3] = sTime; pp[3] = h; For cnt = 4 to 5 { hh[cnt] = hh[cnt-1][1]; dd[cnt] = dd[cnt-1][1]; tt[cnt] = tt[cnt-1][1]; pp[cnt] = pp[cnt-1][1]; } Text_Delete(tx3); tx3 = Text_New(dd[3],tt[3],pp[3],"3위"); Text_Delete(tx4); tx4 = Text_New(dd[4],tt[4],pp[4],"4위"); Text_Delete(tx5); tx5 = Text_New(dd[5],tt[5],pp[5],"5위"); } else if var1 < hh[3] and var1 >= hh[4] Then { hh[4] = var1; dd[4] = sDate; tt[4] = sTime; pp[4] = h; For cnt = 5 to 5 { hh[cnt] = hh[cnt-1][1]; dd[cnt] = dd[cnt-1][1]; tt[cnt] = tt[cnt-1][1]; pp[cnt] = pp[cnt-1][1]; } Text_Delete(tx4); tx4 = Text_New(dd[4],tt[4],pp[4],"4위"); Text_Delete(tx5); tx5 = Text_New(dd[5],tt[5],pp[5],"5위"); } else if var1 < hh[4] and var1 >= hh[5] Then { hh[5] = var1; dd[5] = sDate; tt[5] = sTime; pp[5] = h; Text_Delete(tx5); tx5 = Text_New(dd[5],tt[5],pp[5],"5위"); }}Text_SetStyle(tx1,2,1);Text_SetStyle(tx2,2,1);Text_SetStyle(tx3,2,1);Text_SetStyle(tx4,2,1);Text_SetStyle(tx5,2,1);
2026-05-07
39
글번호 231915