커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4331
글번호 230811
nams60 님에 의해서 삭제되었습니다.
2025-11-04
14
글번호 227652
nams60 님에 의해서 삭제되었습니다.
2025-11-04
4
글번호 227651
답변완료
RSI지표를 차트에 강조 표시
input : Period(14),sig(9);var : RSIv(0),RSIS(0);RSIv = RSI(Period);RSIS = ma(RSIv,sig);plot1(RSIv,"RSI");plot2(RSIs,"sig");PlotBaseLine1(30);PlotBaseLine2(70);위 내용을 보조지표로 사용하는데 밑에 사진처럼 차트에 봉 색깔이 아닌 배경 색깔로 RSI과열(연빨강)과 침체(연파랑)를 강조표시를 할 수 있을까요?
2025-11-04
284
글번호 227649
답변완료
종목검색식 부탁드립니다
1. 224일 동안에 (거래일 기준) , 최대거래량이 터진 종목검색식 부탁드립니다. (단, 0봉전 ~100봉전의 모든종목) ### "거래일 " 과 "0봉전~100봉전"은 변수처리 부탁드려요 ###2. 예스트레이더 수식입니다. 아래의 수식에 "0봉전~10봉전까지의 모든 종목"을 추가하여 수정 부탁드려요 -----아래--- Input : length(224); Vars : alpha(0), ATRV(0), emaValue(0), correction(0), zlma(0), signalUp(False), signalDn(False), check_signals(False), var1(0), box_begin_val(0), box_end_val(0), box_upper(0); alpha = 30 / 200; ATRV = Iff(IsNan(ATRV[1]) == true, Ma(TrueRange, 200), alpha * TrueRange + (1 - alpha) * Iff(IsNan(ATRV[1]) == true, 0, ATRV[1])); emaValue = Ema(Close, length); correction = Close + (Close - emaValue); zlma = Ema(correction, length); signalUp = CrossUp(zlma, emaValue); signalDn = CrossDown(zlma, emaValue); if signalUp == true then { var1 = zlma - ATRV; box_begin_val = zlma; box_end_val = var1; } else if signalDn == true then { var1 = zlma + ATRV; box_begin_val = zlma; box_end_val = var1; } else { var1 = var1[1]; box_begin_val = box_begin_val[1]; box_end_val = box_end_val[1]; } box_upper = Max(box_begin_val, box_end_val); check_signals = signalUp; if signalUp == true then { Find(1); } if CrossUp(Low, box_upper) and check_signals[1] == false and check_signals == false and emaValue < zlma then { Find(1); }
2025-11-04
313
글번호 227648
답변완료
문의
장 중 움직임을 반영하여 거래횟수를 조정하는 수식을 요청드립니다.아래 수식은 거래횟수 총3회 누적패수2회인 수식입니다. 선물 지수 500 돌파 후 하방 거래는 자제하기 위해 거래횟수를 적게 잡아 운용하였습니다. 선물 지수 600 돌파 후 금일 하방쪽으로 20포인트를 넘는 움직임이 비로소 생겼습니다.그렇다고 거래횟수를 고정하여 늘리고 싶진 않습니다.장 중에 bigdown 발생할 때만 거래횟수가 조정되는 수식을 요청드립니다.금일 아래 수식은 3회 거래 후 거래가 정지되었습니다. 요청드린 내용이 반영된다면 아래처럼 5회까지 운영하고 싶습니다. 변경 전input : 진입시간(084700),진입제한시간(125000); input : 거래횟수(3),누적패수(2); 변경 후input : 진입시간(084700),진입제한시간(125000),조정진입제한시간(144500); input : 거래횟수(3),누적패수(2),bigdown(15.00),조정거래횟수(5); 항상 고맙습니다.*******************************************************************************************************************************************input : 진입시간(084700),진입제한시간(125000);input : 거래횟수(3),누적패수(2);input : b1(54),진입눌림1(6),진입돌파1(4);input : b2(142),진입눌림2(6),진입돌파2(4);input : als(42),atr1(0),atr2(112);input : bls(70),btr1(0),btr2(132);var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0);var : Tcond(false);Var : loss(0); if bdate != bdate[1] Then loss = 0; if TotalTrades > TotalTrades[1] and PositionProfit(1) < 0 Then loss = loss+1; if (sdate != sdate[1] and stime >= 진입시간) or (sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) Then Tcond = true; if (sdate != sdate[1] and stime >= 진입제한시간) or (sdate == sdate[1] and stime >= 진입제한시간 and stime[1] < 진입제한시간) Then Tcond = false; if (sdate != sdate[1] and stime >= 진입시간) or (sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) Then{ T1 = TotalTrades; E1 = 0; HH = H; } if stime >= 진입시간 then{ if H > HH Then HH = H; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then{ if E1 == 0 and C <= HH-PriceScale*B1 Then{ E1 = 1; L1 = L; i1 = index; V1 = HH; //시작점 종가 } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; #고가가 시작봉종가보다 작을 때만 눌림체크 if H <= V1 and H >= L1+PriceScale*진입눌림1 Then{ E1 = 2; i1 = index; S1 = L1; } } //시작점 종가보다 높은 가격이 발생하면 초기화 if E1 >= 1 and H > V1 Then{ E1 = 0; HH = H; } if loss < 누적패수 and E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파1 and Tcond == true Then{ sell("s1"); } } if TotalTrades > TotalTrades[1] Then{ E1 = 0; HH = H; } if H > HH Then HH = H; if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{ if E1 == 0 and C <= HH-PriceScale*B2 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*진입눌림2 Then{ E1 = 2; i1 = index; S1 = L1; } } if loss < 누적패수 and E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파2 and Tcond == true Then{ sell("s2"); E1 = 0; } }} if MarketPosition== -1 Then{ if IsEntryName("s1") == true Then { SetStopLoss(PriceScale*als,PointStop); SetStopTrailing(PriceScale*atr2,PriceScale*atr1,PointStop,1); } Else if IsEntryName("s2") == true Then { SetStopLoss(PriceScale*bls,PointStop); SetStopTrailing(PriceScale*btr2,PriceScale*btr1,PointStop,1); } Else { SetStopLoss(0); SetStopTrailing(0,0); }}
진입제한시간조정
2025-11-04
386
글번호 227647
답변완료
문의 드립니다.
안녕하세요 ~ 수고 많으십니다. 현재가격이 200일선 위에서, RSI(5)선이 RSI(14)를 Cross up하는 종목의 검색식을 부탁드립니다. 감사합니다.
2025-11-04
237
글번호 227646
답변완료
검색식 부탁드립니다
M=DATE%10000-DATE%100; D1=M!=M(1); S=valuewhen(1,D1,O); 1,S지표값이 오늘 10%이상 하락한 종목 검색식 부탁 드립니다2,S지표값이 오늘 10%이상 상승한 종목 검색식 부탁 드립니다
2025-11-04
230
글번호 227643
종호 님에 의해서 삭제되었습니다.
2025-11-04
14
글번호 227641
답변완료
검색식 요청 드립니다.
안녕하세요항상 빠른 답변 감사 드립니다.아래 식을 종목 검색식으로 검색기간 500값으로 일봉에 검색을 하였을때 전혀 검색이 안됩니다. 기준봉을 1~10 여봉을 대입해도 전무합니다.아래 키움 지표식에서 신호는 발생이 되지만 , 예를 들어 1103 월요일, 드림텍 종목에서 신호 발생아래 종목 검색식에서는 미검색, 문제는 기준봉에 과거봉을 대입해도 전혀 검색이 안됩니다.이에식 작동에 문제가 없는지 검토를 희망합니다.그럼 좋은 하루 되세요1 사용자함수
함수명 : RangeCheck
반환값형 : 숫자형
input : 기준(Numeric),범위(Numeric);
var : C0(0),C1(0),C2(0),C3(0),C4(0);
var : C5(0),C6(0),C7(0),C8(0),C9(0);
var : C10(0),C11(0),C12(0),C13(0),C14(0);
var : C15(0),C16(0),C17(0),C18(0),C19(0);
C0=IFF(abs(C-기준)>범위,1,0);
C1=IFF(abs(C[1]-기준)>범위,1,0);
C2=IFF(abs(C[2]-기준)>범위,1,0);
C3=IFF(abs(C[3]-기준)>범위,1,0);
C4=IFF(abs(C[4]-기준)>범위,1,0);
C5=IFF(abs(C[5]-기준)>범위,1,0);
C6=IFF(abs(C[6]-기준)>범위,1,0);
C7=IFF(abs(C[7]-기준)>범위,1,0);
C8=IFF(abs(C[8]-기준)>범위,1,0);
C9=IFF(abs(C[9]-기준)>범위,1,0);
C10=IFF(abs(C[10]-기준)>범위,1,0);
C11=IFF(abs(C[11]-기준)>범위,1,0);
C12=IFF(abs(C[12]-기준)>범위,1,0);
C13=IFF(abs(C[13]-기준)>범위,1,0);
C14=IFF(abs(C[14]-기준)>범위,1,0);
C15=IFF(abs(C[15]-기준)>범위,1,0);
C16=IFF(abs(C[16]-기준)>범위,1,0);
C17=IFF(abs(C[17]-기준)>범위,1,0);
C18=IFF(abs(C[18]-기준)>범위,1,0);
C19=IFF(abs(C[19]-기준)>범위,1,0);
RangeCheck = C0+C1+C2+C3+C4+C5+C6+C7+C8+ C9+C10+C11+C12+C13+C14+C15+C16+C17+C18+C19/20 ;
2
input : 기간(20),rt(10);
var : at(0),mm(0),rg(0),chk(0),조건(False);
At=ATR(500);
Mm=avg(C,기간);
Rg=At*Rt/10;
Chk=RangeCheck(Mm,Rg);
조건=Chk == 0;
if 조건 Then
var1 = Mm+Rg;
if CrossUp(C,var1) Then
Find(1);키움 지표식
At = ATR(500);
Mm = avg(C, 기간);
Rg = At * Rt / 10;
Chk = RngChk(Mm, Rg);
// Range 구간 확인
Range중 = Chk == 0;
// Range 상단/하단선
상단 = Mm + Rg;
하단 = Mm - Rg;
// 상향 돌파: Range 중 → 상단 돌파 → 양봉
상향돌파 = Range중(1) && C > 상단 && C > O;
// 하향 돌파: Range 중 → 하단 돌파 → 음봉
하향돌파 = Range중(1) && C < 하단 && C < O;
// 신호 발생
상향돌파 //or 하향돌파
2025-11-04
368
글번호 227640