커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5392
글번호 230811
답변완료
문의드립니다.
아래 키움신호가 발생된 종목을 검색하는 검색식을 만들고 싶습니다. 도움 부탁드립니다.* 키움신호기간1 60 이평종류 단순 대금 5001. a=MA(C, 기간1, 이평종류)<o;b=c(1)*1.10 <= h&&o<=c;d=거래대금>대금*100;조건= a && b && d;조건2=valuewhen(1,조건,o);갭=c(1)*1.03<=o&&o<c;조건3=a && b && d&&갭;조건4=valuewhen(1,조건3,c(1));조건5=if(c(1)*1.03<=o&&o<c,조건4,조건2);e=valuewhen(1,조건,조건5);crossdown(c,e)&& e>=c기간1 60 이평종류 단순 대금 500 매수 0.902.a=MA(C, 기간1, 이평종류)<o;b=c(1)*1.10 <= h&&o<=c;d=거래대금>대금*100;조건= a && b && d;조건2=valuewhen(1,조건,o);갭=c(1)*1.03<=o&&o<c;조건3=a && b && d&&갭;조건4=valuewhen(1,조건3,c(1));조건5=if(c(1)*1.03<=o&&o<c,조건4,조건2);e=valuewhen(1,조건,조건5);조건6=crossdown(c,e)&& o>c;f=valuewhen(1,조건6,c)*매수;crossdown(c,f) && c < f;
2026-05-15
255
글번호 232053
답변완료
수식 변환 부탁드립니다
항상 친절한 답변에 감사드립니다. 아래는 ★ 일봉기준 종목 검색식 ★ 입니다. 아래 종목 검색식 수식을 분봉(3분봉) 기준으로 변환 부탁드립니다Var:A1(0),B1(0),D1(0),E1(0),F1(0),G1(0),I1(0),J1(0),J11(0),K1(0),K11(0),P1(0),Q1(0),R11(0),R12(0),R13(0),R14(0),R15(0),R16(0),R17(0),S1(0),T1(0),U11(False),U12(False),TT1(0);A1=ema((C-Lowest(L,10))/(Highest(H,10)-Lowest(L,10))*100,5)-ema(ema((C-Lowest(L,10))/(Highest(H,10)-Lowest(L,10))*100,5),5);B1=100-100/(1+ema(max(C-C[1],0),9)/ema(max(C[1]-C,0),9));D1=100-100/(1+AccumN(iff(((H+L+C)/3)>((H[1]+L[1]+C[1])/3),((H+L+C)/3)*V,0),9)/AccumN(iff(((H+L+C)/3)<((H[1]+L[1]+C[1])/3),((H+L+C)/3)*V,0),9));E1=((H+L+C)/3-ma((H+L+C)/3,9))/(0.015*(AccumN(abs((H+L+C)/3-ma((H+L+C)/3,9)),9)/9))*0.2;F1=(Highest(H,9)-C)/(Highest(H,9)-Lowest(L,9))*-100; G1=100*(AccumN(max(C-C[1],0),9)-AccumN(max(C[1]-C,0),9))/(AccumN(max(C-C[1],0),9)+AccumN(max(C[1]-C,0),9))*0.5;I1=((C-C[9])/C[9])*100*0.5;J1=Accum((H+L+C)/3*V);J11=Accum(V);if sDate!=sDate[1]Then{K1=J1[1];K11=J11[1];} P1=(J1-K1)/(J11-K11);Q1=AccumN(iff(P1-P1[1]>0,P1-P1[1],0),17)/AccumN(iff(P1-P1[1]>0,P1-P1[1],P1[1]-P1),17)*100; R11=iff(ema(C,12)-ema(C,26)>ema(ema(C,12)-ema(C,26),9),1,-1); R12=iff(C>ma(C,20),1,-1); R13=iff((C-C[12])/C[12]*100>0,1,-1); R14=iff(ema((C-Lowest(L,5))/(Highest(H,5)-Lowest(L,5))*100,3)>50,1,-1); R15=iff(CCI(20)>0,1,-1); R16=iff(C>SAR(0.02,0.2),1,-1);R17=iff((ema(Accum(((C-L)-(H-C))/(H-L)*V),3)-ema(Accum(((C-L)-(H-C))/(H-L)*V),10))>0,1,-1); S1=(R11+R12+R13+R14+R15+R16+R17)*7.143; TT1=(((A1+B1+D1+E1+F1+G1+I1+Q1+S1)+266.7)*100)/900;var:EN1(0),EN2(0),EN3(0),EN4(0),EN5(0),EN6(0),EN7(0),EN8(0),EN9(0),EN10(0),EN11(0),EN12(0),EN13(0),EN14(0),EN15(0),EN16(0),EN17(0),EN18(0),EN19(0),EN20(0),TT2(0),TT(0),조건(False);EN1=iff(AccumN(C-C[1],1)>0, AccumN(C-C[1],1)*(100)/AccumN(iff(C>C[1],C-C[1],0),1),AccumN(C-C[1],1)*(-100)/AccumN(iff(C<C[1],C-C[1],0),1));EN2=iff(AccumN(C-C[1],2)>0, AccumN(C-C[1],2)*(100)/AccumN(iff(C>C[1],C-C[1],0),2),AccumN(C-C[1],2)*(-100)/AccumN(iff(C<C[1],C-C[1],0),2));EN3=iff(AccumN(C-C[1],3)>0, AccumN(C-C[1],3)*(100)/AccumN(iff(C>C[1],C-C[1],0),3),AccumN(C-C[1],3)*(-100)/AccumN(iff(C<C[1],C-C[1],0),3));EN4=iff(AccumN(C-C[1],4)>0, AccumN(C-C[1],4)*(100)/AccumN(iff(C>C[1],C-C[1],0),4),AccumN(C-C[1],4)*(-100)/AccumN(iff(C<C[1],C-C[1],0),4));EN5=iff(AccumN(C-C[1],5)>0, AccumN(C-C[1],5)*(100)/AccumN(iff(C>C[1],C-C[1],0),5),AccumN(C-C[1],5)*(-100)/AccumN(iff(C<C[1],C-C[1],0),5));EN6=iff(AccumN(C-C[1],6)>0, AccumN(C-C[1],6)*(100)/AccumN(iff(C>C[1],C-C[1],0),6),AccumN(C-C[1],6)*(-100)/AccumN(iff(C<C[1],C-C[1],0),6));EN7=iff(AccumN(C-C[1],7)>0, AccumN(C-C[1],7)*(100)/AccumN(iff(C>C[1],C-C[1],0),7),AccumN(C-C[1],7)*(-100)/AccumN(iff(C<C[1],C-C[1],0),7));EN8=iff(AccumN(C-C[1],8)>0, AccumN(C-C[1],8)*(100)/AccumN(iff(C>C[1],C-C[1],0),8),AccumN(C-C[1],8)*(-100)/AccumN(iff(C<C[1],C-C[1],0),8));EN9=iff(AccumN(C-C[1],9)>0, AccumN(C-C[1],9)*(100)/AccumN(iff(C>C[1],C-C[1],0),9),AccumN(C-C[1],9)*(-100)/AccumN(iff(C<C[1],C-C[1],0),9));EN10=iff(AccumN(C-C[1],10)>0, AccumN(C-C[1],10)*(100)/AccumN(iff (C>C[1],C-C[1],0),10),AccumN(C-C[1],10)*(-100)/AccumN(iff(C<C[1],C-C[1],0),10));EN11=iff(AccumN(C-C[1],11)>0, AccumN(C-C[1],11)*(100)/AccumN(iff(C>C[1],C-C[1],0),11),AccumN(C-C[1],11)*(-100)/AccumN(iff(C<C[1],C-C[1],0),11));EN12=iff(AccumN(C-C[1],12)>0, AccumN(C-C[1],12)*(100)/AccumN(iff(C>C[1],C-C[1],0),12),AccumN(C-C[1],12)*(-100)/AccumN(iff(C<C[1],C-C[1],0),12));EN13=iff(AccumN(C-C[1],13)>0, AccumN(C-C[1],13)*(100)/AccumN(iff(C>C[1],C-C[1],0),13),AccumN(C-C[1],13)*(-100)/AccumN(iff(C<C[1],C-C[1],0),13));EN14=iff(AccumN(C-C[1],14)>0, AccumN(C-C[1],14)*(100)/AccumN(iff(C>C[1],C-C[1],0),14),AccumN(C-C[1],14)*(-100)/AccumN(iff(C<C[1],C-C[1],0),14));EN15=iff(AccumN(C-C[1],15)>0, AccumN(C-C[1],15)*(100)/AccumN(iff(C>C[1],C-C[1],0),15),AccumN(C-C[1],15)*(-100)/AccumN(iff(C<C[1],C-C[1],0),15));EN16=iff(AccumN(C-C[1],16)>0, AccumN(C-C[1],16)*(100)/AccumN(iff(C>C[1],C-C[1],0),16),AccumN(C-C[1],16)*(-100)/AccumN(iff(C<C[1],C-C[1],0),16));EN17=iff(AccumN(C-C[1],17)>0, AccumN(C-C[1],17)*(100)/AccumN(iff(C>C[1],C-C[1],0),17),AccumN(C-C[1],17)*(-100)/AccumN(iff(C<C[1],C-C[1],0),17));EN18=iff(AccumN(C-C[1],18)>0, AccumN(C-C[1],18)*(100)/AccumN(iff(C>C[1],C-C[1],0),18),AccumN(C-C[1],18)*(-100)/AccumN(iff(C<C[1],C-C[1],0),18));EN19=iff(AccumN(C-C[1],19)>0, AccumN(C-C[1],19)*(100)/AccumN(iff(C>C[1],C-C[1],0),19),AccumN(C-C[1],19)*(-100)/AccumN(iff(C<C[1],C-C[1],0),19));EN20=iff(AccumN(C-C[1],20)>0, AccumN(C-C[1],20)*(100)/AccumN(iff(C>C[1],C-C[1],0),20),AccumN(C-C[1],20)*(-100)/AccumN(iff(C<C[1],C-C[1],0),20));TT2 =((EN1+EN2+EN3+EN4+EN5+EN6+EN7+EN8+EN9+EN10+EN11+EN12+EN13+EN14+EN15+EN16+EN17+EN18+EN19+EN20)+2000)/4000*100;TT=TT1+TT2;if(TT[10]<300 or TT[5]<300) && TT[3]<TT [1] && C >=C[5]*0.85 Then Find(1); ★참고로 분봉기준 변환시 위 수식중 "C>=C[1]*0.85" 부분은 현재가가 일봉기준 5일전 종가대비 -15% 이상 , 즉, 분봉에서의 현재가가 5일전 종가 대비 -15%이상을 의미를 가지도록위 전체 수식을 분봉(3분봉) 기준으로 변환하여 부탁드립니다
2026-05-15
433
글번호 232050
등정 님에 의해서 삭제되었습니다.
2026-05-15
30
글번호 232049
답변완료
문의 드립니다.
안녕하세요많은 도움을 받고 있음에 감사 드립니다. 현재가격이 아래의 신호를 돌파하는 종목의 검색식을 부탁 드립니다. RCI(9)<-50&& RCI(9,1)<-50&& RCI(9,1)>RCI(9)감사합니다
2026-05-15
124
글번호 232048
답변완료
중심선 연장
ㅇ 좋은 주말 되십시요.ㅇ 아래 로직에서 TL3 수평선을 기본으로 우측 50봉 까지 출력 되게 부탁 드림니다.50봉 넘으면 그대로 출력 ㅎ ( 중심선 로직 구현은 공뷰해도 어렵네요)##==================================================================================================##==================================================================================================Input : length(10),종가사용여부(0),굵기(1),텍스트크기(12);input : starttime(070000),Endtime(0);var : Tcond(False);Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL(0),Text1(0),TL1(0),TL2(0),TL11(0),TL21(0);Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTimevar : TL3(0),TL4(0),TX3(0),TX4(0);var : HHTL(0),LLTL(0);if sDate == CurrentDate and((sdate != sDate[1] and sTime >= Endtime) or(sdate == sDate[1] and sTime >= Endtime and sTime[1] < Endtime)) Then{Tcond = False;}if sDate == CurrentDate and((sdate != sDate[1] and sTime >= starttime) or(sdate == sDate[1] and sTime >= starttime and sTime[1] < starttime)) Then{Tcond = true;}#==========================================#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; TL = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);TL_SetColor(TL,Rgb(255,0,0));TL_SetSize(TL,0);if Tcond == true ThenTL_SetExtRight(HHTL,true); TL_SetColor(HHTL,Rgb(200,0,255));TL_SetSize(HHTL,1); Text_SetStyle(Text1, 2, 1); Text_SetSize(text1,텍스트크기); TL3 = TL_New(저[1,3],저[1,4],(고[1,1]+저[1,1])/2,고[1,3],고[1,4],(고[1,1]+저[1,1])/2); TL_SetColor(TL3,Rgb(255,0,0));TL_SetSize(TL3,5); Condition3 = False; } Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL,고[1,3],고[1,4],고[1,1]); TL_SetEnd(TL11,고[1,3],고[1,4],고[2,1]); TL_SetBegin(TL1,고[1,3],고[1,4],고[1,1]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr(고[1,1],2)); TL_SetBegin(TL3,저[1,3],저[1,4],(고[1,1]+저[1,1])/2); TL_SetEnd(TL3,고[1,3],고[1,4],(고[1,1]+저[1,1])/2);TL_SetEnd(HHTL,고[1,3],고[1,4],고[1,1]); if Condition3 == False Then { if 고[1,1] > 고[2,1] Then { } } Else { Text_SetLocation(TX3,고[1,3],고[1,4],고[1,1]); } } 최종꼭지점 = "고점";}#==========================================##==========================================##==========================================#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; TL = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetColor(TL,Rgb(0,0,255)); TL_SetSize(TL,0);if Tcond == true ThenTL_SetExtRight(LLTL,true); TL_SetColor(LLTL,RgB(0,0,255)); TL_SetSize(LLTL,1); Text_SetStyle(Text1, 2, 0); Text_SetSize(text1,텍스트크기); TL4 = TL_New(고[1,3],고[1,4],(고[1,1]+저[1,1])/2,저[1,3],저[1,4],(고[1,1]+저[1,1])/2); TL_SetColor(TL4,RgB(0,0,0));TL_SetSize(TL4,5); Condition4 = False; if 저[1,1] < 저[2,1] Then { } } ElseIf 저[1,1] > LL then { 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL_SetEnd(TL,저[1,3],저[1,4],저[1,1]); TL_SetEnd(TL21,저[1,3],저[1,4],저[2,1]); TL_SetBegin(TL2,저[1,3],저[1,4],저[1,1]);TL_SetEnd(LLTL,저[1,3],저[1,4],저[1,1]); Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); //Text_SetString(Text1,NumToStr(저[1,1],2)); TL_SetBegin(TL4,고[1,3],고[1,4],(고[1,1]+저[1,1])/2); TL_SetEnd(TL4,저[1,3],저[1,4],(고[1,1]+저[1,1])/2); } 최종꼭지점 = "저점";} 항상 많은 도음 고맙 습니다.좋은 주말 되십시요^^
2026-05-15
343
글번호 232047
답변완료
행복; 시스템식 작성 바랍니다
한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다시스템식 관련입니다주기; 일봉종목; 삼성전자<시스템식 조건>(매수 조건)----------- 종가 기준으로 5일선이 10일선을 상향 돌파하면- 1000만원 어치 종가에 매수(매도 조건)----------조건B- 매수 후 20% 상승- 종가 기준 당일 주가 >= 5일 이평선 유지- 매도 없음조건A- 매수 후 종가 기준 40% 상승- 매수 수량의 50% 남기고 나머지 종가 매도조건C1) 조건C1- 매수 시점 관계없이 종가 기준 10일 전보다 35% 이상 상승- 매수 수량의 20% 남기고 나머지 종가 매도2) 조건C2- 매수 시점 관계없이 고가 기준 10일 전보다 35% 이상 상승했다가- 당일 고점 대비 10% 이상 하락- 전량 즉시 매도조건D- 20일간 최고 고점 대비 종가 기준으로 22% 이상 하락- 전량 종가 매도조건E- 종가 기준 20일선 2일 이상 붕괴- 매수 수량의 50% 남기고 나머지 종가 매도조건F- 매수가 대비 10% 하락- 전량 즉시 매도---------------------------------------------------------추정되는 시스템식은 아래의 형식이 될 것 같은데조건에 따라즉시 매도와 종가 매도가 혼재되어 있어 다소 복잡합니다------------< 추정되는 수식 틀 >--------------------------if (조건C2 or 조건D or 조건F) then{ 잔량비율 = 0.00;}else if 조건C1 then{ 잔량비율 = 0.20;}else if (조건A or 조건E) then{ 잔량비율 = 0.50;}else if 조건B then{ 잔량비율 = 1.00;}else { 잔량비율 = 1.00;}----------------------------------------------------------수식 작성 바랍니다수고하십시요^^
2026-05-15
278
글번호 232046
답변완료
타주기 이평 설정에서...
안녕하세요?기본 차트 속성에서 분봉 틱봉 설정하는 곳에 있는 새로 만드신 Point ,변화횟수,체결 에서 체결을 타주기 설정은 안되는지요? 어떻게 설정 가능하게 하는 법이 없을까요? 답변 미리 감사드립니다. 즐거운 하루 되시길...
2026-05-14
240
글번호 232037
미래테크 님에 의해서 삭제되었습니다.
2026-05-14
2
글번호 232036
답변완료
수식 부탁합니다
주가 5일이동평균선 일목균형 전환성 두 선중 주가 높은선을 찾고 5분봉 종가 두선중 주가 높은선을 돌파한 시점을 기록하고 당일 장 종가 (15시30분) 까지 수익율 나타내는 검색식 부탁합니다
2026-05-14
151
글번호 232035